@knovator/pagecreator-admin 0.8.0 → 0.8.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -4
- package/index.cjs +18 -61
- package/index.js +18 -61
- package/package.json +1 -1
- package/src/lib/api/list.d.ts +0 -4
- package/src/lib/constants/common.d.ts +0 -2
- package/src/lib/context/WidgetContext.d.ts +1 -1
- package/src/lib/hooks/useWidget.d.ts +2 -3
- package/src/lib/types/api.d.ts +1 -5
- package/src/lib/types/context.d.ts +1 -2
package/README.md
CHANGED
|
@@ -91,7 +91,7 @@
|
|
|
91
91
|
|
|
92
92
|
### Prerequisites
|
|
93
93
|
|
|
94
|
-
|
|
94
|
+
Create one reactjs/nextjs application if you don't have one,
|
|
95
95
|
* Project
|
|
96
96
|
```sh
|
|
97
97
|
npx create-react-app my-app
|
|
@@ -104,8 +104,7 @@ We can use `@knovator/pagecreator-admin` in React/Next application, we can creat
|
|
|
104
104
|
|
|
105
105
|
### Installation
|
|
106
106
|
|
|
107
|
-
|
|
108
|
-
1. Install NPM packages
|
|
107
|
+
1. Add pagecreator package
|
|
109
108
|
```sh
|
|
110
109
|
npm install @knovator/pagecreator-admin
|
|
111
110
|
# or
|
|
@@ -121,7 +120,7 @@ We can use `@knovator/pagecreator-admin` in React/Next application, we can creat
|
|
|
121
120
|
|
|
122
121
|
### Provider
|
|
123
122
|
|
|
124
|
-
`@knovator/pagecreator-admin` uses **Context API
|
|
123
|
+
In order to support communication between components `@knovator/pagecreator-admin` uses **Context API**. So, `Widget`/`Page` components should be wrapped by Provider.
|
|
125
124
|
```jsx
|
|
126
125
|
import { Provider } from '@knovator/pagecreator-admin';
|
|
127
126
|
|
package/index.cjs
CHANGED
|
@@ -1758,8 +1758,6 @@ const TRANSLATION_PAIRS_WIDGET = {
|
|
|
1758
1758
|
'widget.widgetTitleInfo': 'HTML is supported',
|
|
1759
1759
|
'widget.minPerRow': 'Value must be greater than zero',
|
|
1760
1760
|
'widget.actionsLabel': 'Actions',
|
|
1761
|
-
'widget.category': 'Category',
|
|
1762
|
-
'widget.categoryPlaceholder': 'Select Category',
|
|
1763
1761
|
'widget.tabNameRequired': 'Tab Name is required'
|
|
1764
1762
|
};
|
|
1765
1763
|
const TRANSLATION_PAIRS_ITEM = {
|
|
@@ -2694,12 +2692,6 @@ const apiList = {
|
|
|
2694
2692
|
url: `${prefix}/collection-data`,
|
|
2695
2693
|
method: 'POST'
|
|
2696
2694
|
}),
|
|
2697
|
-
CATEGORIES: ({
|
|
2698
|
-
prefix
|
|
2699
|
-
}) => ({
|
|
2700
|
-
url: `${prefix}/categories`,
|
|
2701
|
-
method: 'GET'
|
|
2702
|
-
}),
|
|
2703
2695
|
// Image Upload API
|
|
2704
2696
|
IMAGE_UPLOAD: ({
|
|
2705
2697
|
prefix
|
|
@@ -2887,6 +2879,11 @@ const usePage = ({
|
|
|
2887
2879
|
}
|
|
2888
2880
|
}), [baseUrl, currentPageRef, limitRef, offsetRef, handleError, pageRoutesPrefix, routes, token]);
|
|
2889
2881
|
const onPageFormSubmit = data => __awaiter(void 0, void 0, void 0, function* () {
|
|
2882
|
+
if (selectedWidgets.length) {
|
|
2883
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
2884
|
+
// @ts-ignore
|
|
2885
|
+
data.widgets = selectedWidgets.map(item => item.value);
|
|
2886
|
+
}
|
|
2890
2887
|
setLoading(true);
|
|
2891
2888
|
const code = formState === 'ADD' ? CALLBACK_CODES.CREATE : CALLBACK_CODES.UPDATE;
|
|
2892
2889
|
try {
|
|
@@ -2977,6 +2974,7 @@ const usePage = ({
|
|
|
2977
2974
|
}
|
|
2978
2975
|
};
|
|
2979
2976
|
const onChangeWidgetSequence = (sourceIndex, destinationIndex) => {
|
|
2977
|
+
console.log(sourceIndex, destinationIndex);
|
|
2980
2978
|
setSelectedWidgets(listData => {
|
|
2981
2979
|
const temporaryData = [...listData];
|
|
2982
2980
|
const [selectedRow] = temporaryData.splice(sourceIndex, 1);
|
|
@@ -4518,7 +4516,6 @@ const useWidget = ({
|
|
|
4518
4516
|
const [formState, setFormState] = React.useState();
|
|
4519
4517
|
const [itemsTypes, setItemsTypes] = React.useState([]);
|
|
4520
4518
|
const [widgetTypes, setWidgetTypes] = React.useState([]);
|
|
4521
|
-
const [categories, setCategories] = React.useState([]);
|
|
4522
4519
|
const [collectionDataLoading, setCollectionDataLoading] = React.useState(false);
|
|
4523
4520
|
const [collectionData, setCollectionData] = React.useState([]);
|
|
4524
4521
|
const {
|
|
@@ -4697,27 +4694,6 @@ const useWidget = ({
|
|
|
4697
4694
|
}
|
|
4698
4695
|
setLoading(false);
|
|
4699
4696
|
});
|
|
4700
|
-
const getCategories = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
4701
|
-
if ((categories === null || categories === void 0 ? void 0 : categories.length) > 0) return;
|
|
4702
|
-
setLoading(true);
|
|
4703
|
-
const api = getApiType({
|
|
4704
|
-
routes,
|
|
4705
|
-
action: 'CATEGORIES',
|
|
4706
|
-
prefix: widgetRoutesPrefix
|
|
4707
|
-
});
|
|
4708
|
-
const response = yield commonApi({
|
|
4709
|
-
baseUrl,
|
|
4710
|
-
token,
|
|
4711
|
-
method: api.method,
|
|
4712
|
-
url: api.url,
|
|
4713
|
-
onError: handleError(CALLBACK_CODES.GET_ALL)
|
|
4714
|
-
});
|
|
4715
|
-
if ((response === null || response === void 0 ? void 0 : response.code) === 'SUCCESS') {
|
|
4716
|
-
setLoading(false);
|
|
4717
|
-
return setCategories(dataGatter(response));
|
|
4718
|
-
}
|
|
4719
|
-
setLoading(false);
|
|
4720
|
-
});
|
|
4721
4697
|
const getCollectionData = (collectionName, search, callback, collectionItems) => __awaiter(void 0, void 0, void 0, function* () {
|
|
4722
4698
|
setCollectionDataLoading(true);
|
|
4723
4699
|
const api = getApiType({
|
|
@@ -4820,7 +4796,6 @@ const useWidget = ({
|
|
|
4820
4796
|
if (state === 'ADD' || state === 'UPDATE') {
|
|
4821
4797
|
getWidgetsTypes();
|
|
4822
4798
|
getWidgetTypes();
|
|
4823
|
-
getCategories();
|
|
4824
4799
|
}
|
|
4825
4800
|
// get Item data if widget is updating
|
|
4826
4801
|
if (state === 'UPDATE' && data) {
|
|
@@ -4915,7 +4890,6 @@ const useWidget = ({
|
|
|
4915
4890
|
// Form
|
|
4916
4891
|
formState,
|
|
4917
4892
|
itemData,
|
|
4918
|
-
categories,
|
|
4919
4893
|
onChangeFormState,
|
|
4920
4894
|
onCloseForm,
|
|
4921
4895
|
onWidgetFormSubmit,
|
|
@@ -6025,7 +5999,6 @@ const WidgetContextProvider = ({
|
|
|
6025
5999
|
onImageRemove: _onImageRemove = id => __awaiter(void 0, void 0, void 0, function* () {}),
|
|
6026
6000
|
itemsTypes: _itemsTypes = [],
|
|
6027
6001
|
widgetTypes: _widgetTypes = [],
|
|
6028
|
-
categories: _categories = [],
|
|
6029
6002
|
getCollectionData: _getCollectionData = () => Promise.resolve(),
|
|
6030
6003
|
collectionDataLoading: _collectionDataLoading = false,
|
|
6031
6004
|
collectionData: _collectionData = [],
|
|
@@ -6073,7 +6046,6 @@ const WidgetContextProvider = ({
|
|
|
6073
6046
|
onImageRemove: _onImageRemove,
|
|
6074
6047
|
onPartialUpdateWidget: _onPartialUpdateWidget,
|
|
6075
6048
|
itemsTypes: _itemsTypes,
|
|
6076
|
-
categories: _categories,
|
|
6077
6049
|
widgetTypes: _widgetTypes,
|
|
6078
6050
|
getCollectionData: _getCollectionData,
|
|
6079
6051
|
collectionDataLoading: _collectionDataLoading,
|
|
@@ -6756,7 +6728,6 @@ const Tabs = ({
|
|
|
6756
6728
|
};
|
|
6757
6729
|
|
|
6758
6730
|
const constants = {
|
|
6759
|
-
categoryTypeAccessor: 'category',
|
|
6760
6731
|
widgetTypeAccessor: 'widgetType',
|
|
6761
6732
|
itemTypeAccessor: 'itemsType',
|
|
6762
6733
|
collectionNameAccessor: 'collectionName',
|
|
@@ -6800,7 +6771,6 @@ const WidgetForm = ({
|
|
|
6800
6771
|
canUpdate,
|
|
6801
6772
|
formState,
|
|
6802
6773
|
itemsTypes,
|
|
6803
|
-
categories,
|
|
6804
6774
|
widgetTypes,
|
|
6805
6775
|
loading,
|
|
6806
6776
|
onWidgetFormSubmit,
|
|
@@ -6824,7 +6794,8 @@ const WidgetForm = ({
|
|
|
6824
6794
|
const [tabCollectionItemsUpdated, setTabCollectionItemsUpdated] = React.useState([]);
|
|
6825
6795
|
React.useEffect(() => {
|
|
6826
6796
|
if (data && formState === 'UPDATE') {
|
|
6827
|
-
|
|
6797
|
+
const widgetType = widgetTypes.find(type => type.value === (data === null || data === void 0 ? void 0 : data.widgetType));
|
|
6798
|
+
setSelectedWidgetType(widgetType);
|
|
6828
6799
|
if ((data === null || data === void 0 ? void 0 : data.itemsType) === 'Image') {
|
|
6829
6800
|
setItemsEnabled(true);
|
|
6830
6801
|
} else {
|
|
@@ -6834,7 +6805,7 @@ const WidgetForm = ({
|
|
|
6834
6805
|
setSelectedCollectionType(itemsTypes.find(item => item.value === (data === null || data === void 0 ? void 0 : data.collectionName)));
|
|
6835
6806
|
}
|
|
6836
6807
|
}
|
|
6837
|
-
}, [data, formState, itemsTypes]);
|
|
6808
|
+
}, [data, formState, itemsTypes, widgetTypes]);
|
|
6838
6809
|
React.useEffect(() => {
|
|
6839
6810
|
if (formState === 'ADD') {
|
|
6840
6811
|
setSelectedCollectionItems([]);
|
|
@@ -6912,13 +6883,11 @@ const WidgetForm = ({
|
|
|
6912
6883
|
const getFirstWidgetTypeValue = React.useCallback(() => {
|
|
6913
6884
|
return widgetTypes[0].value;
|
|
6914
6885
|
}, [widgetTypes]);
|
|
6915
|
-
const getFirstCategoryValue = React.useCallback(() => {
|
|
6916
|
-
return categories[0].value;
|
|
6917
|
-
}, [categories]);
|
|
6918
6886
|
// Widget Form Functions
|
|
6919
6887
|
const onWidgetFormInputChange = React.useCallback((value, name) => {
|
|
6920
6888
|
if (name === 'widgetType') {
|
|
6921
|
-
|
|
6889
|
+
const widgetType = widgetTypes.find(type => type.value === value[name]);
|
|
6890
|
+
setSelectedWidgetType(widgetType);
|
|
6922
6891
|
if (value[name] === 'Tabs') {
|
|
6923
6892
|
const firstItemType = getFirstItemTypeValue(value[name]);
|
|
6924
6893
|
if (firstItemType) {
|
|
@@ -6937,13 +6906,10 @@ const WidgetForm = ({
|
|
|
6937
6906
|
} else if ((name === null || name === void 0 ? void 0 : name.includes(constants.tabsAccessor)) && Array.isArray(value[constants.tabsAccessor])) {
|
|
6938
6907
|
setTabCollectionItems(value[constants.tabsAccessor].map(tabItem => tabItem[constants.tabCollectionItemsAccessor]));
|
|
6939
6908
|
}
|
|
6940
|
-
}, [getFirstItemTypeValue, itemsTypes]);
|
|
6909
|
+
}, [getFirstItemTypeValue, itemsTypes, widgetTypes]);
|
|
6941
6910
|
const onFormSubmit = data => {
|
|
6942
6911
|
var _a, _b;
|
|
6943
6912
|
const formData = Object.assign({}, data);
|
|
6944
|
-
if (!formData[constants.categoryTypeAccessor] && categories && categories.length > 0) {
|
|
6945
|
-
formData[constants.categoryTypeAccessor] = getFirstCategoryValue();
|
|
6946
|
-
}
|
|
6947
6913
|
// setting widget type if undefined
|
|
6948
6914
|
if (!formData[constants.widgetTypeAccessor] && formState === 'ADD') {
|
|
6949
6915
|
formData[constants.widgetTypeAccessor] = getFirstWidgetTypeValue();
|
|
@@ -7061,18 +7027,11 @@ const WidgetForm = ({
|
|
|
7061
7027
|
required: t('widget.widgetTypeRequired')
|
|
7062
7028
|
},
|
|
7063
7029
|
options: widgetTypes
|
|
7064
|
-
}, {
|
|
7065
|
-
label: `${t('widget.category')}`,
|
|
7066
|
-
placeholder: t('widget.categoryPlaceholder'),
|
|
7067
|
-
accessor: 'category',
|
|
7068
|
-
type: 'select',
|
|
7069
|
-
show: categories && categories.length > 0,
|
|
7070
|
-
options: categories
|
|
7071
7030
|
}, {
|
|
7072
7031
|
label: t('widget.autoPlay'),
|
|
7073
7032
|
accessor: 'autoPlay',
|
|
7074
7033
|
type: 'checkbox',
|
|
7075
|
-
show: selectedWidgetType === 'Carousel',
|
|
7034
|
+
show: (selectedWidgetType === null || selectedWidgetType === void 0 ? void 0 : selectedWidgetType.value) === 'Carousel',
|
|
7076
7035
|
switchClass: switchClass
|
|
7077
7036
|
}, {
|
|
7078
7037
|
label: `${t('widget.itemsType')}`,
|
|
@@ -7083,7 +7042,7 @@ const WidgetForm = ({
|
|
|
7083
7042
|
validations: {
|
|
7084
7043
|
required: t('widget.itemsTypePlaceholder')
|
|
7085
7044
|
},
|
|
7086
|
-
options: selectedWidgetType === 'Tabs' ? itemsTypes.filter(item => item.label !== 'Image') : itemsTypes
|
|
7045
|
+
options: (selectedWidgetType === null || selectedWidgetType === void 0 ? void 0 : selectedWidgetType.value) === 'Tabs' || (selectedWidgetType === null || selectedWidgetType === void 0 ? void 0 : selectedWidgetType.collectionsOnly) ? itemsTypes.filter(item => item.label !== 'Image') : (selectedWidgetType === null || selectedWidgetType === void 0 ? void 0 : selectedWidgetType.imageOnly) ? itemsTypes.filter(item => item.label === 'Image') : itemsTypes
|
|
7087
7046
|
}, {
|
|
7088
7047
|
label: t('widget.color'),
|
|
7089
7048
|
accessor: 'backgroundColor',
|
|
@@ -7143,7 +7102,7 @@ const WidgetForm = ({
|
|
|
7143
7102
|
onChange: setSelectedCollectionItems,
|
|
7144
7103
|
loadOptions: onChangeSearch,
|
|
7145
7104
|
isLoading: collectionDataLoading,
|
|
7146
|
-
show: !itemsEnabled && selectedWidgetType !== 'Tabs',
|
|
7105
|
+
show: !itemsEnabled && (selectedWidgetType === null || selectedWidgetType === void 0 ? void 0 : selectedWidgetType.value) !== 'Tabs',
|
|
7147
7106
|
formatOptionLabel: formatOptionLabel,
|
|
7148
7107
|
listCode: selectedCollectionType === null || selectedCollectionType === void 0 ? void 0 : selectedCollectionType.value,
|
|
7149
7108
|
customStyles: reactSelectStyles || {},
|
|
@@ -7163,7 +7122,7 @@ const WidgetForm = ({
|
|
|
7163
7122
|
setValue: setValue,
|
|
7164
7123
|
control: control,
|
|
7165
7124
|
setError: setError
|
|
7166
|
-
}), selectedWidgetType === 'Tabs' ? /*#__PURE__*/React__default["default"].createElement(Tabs, {
|
|
7125
|
+
}), (selectedWidgetType === null || selectedWidgetType === void 0 ? void 0 : selectedWidgetType.value) === 'Tabs' ? /*#__PURE__*/React__default["default"].createElement(Tabs, {
|
|
7167
7126
|
control: control,
|
|
7168
7127
|
register: register,
|
|
7169
7128
|
deleteTitle: t('widget.tabDeleteTitle'),
|
|
@@ -7182,12 +7141,12 @@ const WidgetForm = ({
|
|
|
7182
7141
|
customStyles: reactSelectStyles || {},
|
|
7183
7142
|
activeTab: activeTab,
|
|
7184
7143
|
setActiveTab: setActiveTab
|
|
7185
|
-
}) : null, !itemsEnabled && selectedWidgetType !== 'Tabs' && /*#__PURE__*/React__default["default"].createElement(DNDItemsList, {
|
|
7144
|
+
}) : null, !itemsEnabled && (selectedWidgetType === null || selectedWidgetType === void 0 ? void 0 : selectedWidgetType.value) !== 'Tabs' && /*#__PURE__*/React__default["default"].createElement(DNDItemsList, {
|
|
7186
7145
|
items: selectedCollectionItems,
|
|
7187
7146
|
onDragEnd: onCollectionIndexChange,
|
|
7188
7147
|
formatItem: formatListItem,
|
|
7189
7148
|
listCode: selectedCollectionType === null || selectedCollectionType === void 0 ? void 0 : selectedCollectionType.value
|
|
7190
|
-
}), itemsEnabled && selectedWidgetType !== 'Tabs' && /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(ItemsAccordian, {
|
|
7149
|
+
}), itemsEnabled && (selectedWidgetType === null || selectedWidgetType === void 0 ? void 0 : selectedWidgetType.value) !== 'Tabs' && /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(ItemsAccordian, {
|
|
7191
7150
|
clearError: clearErrors,
|
|
7192
7151
|
collapseId: constants.webItems,
|
|
7193
7152
|
title: t('widget.webItems'),
|
|
@@ -7367,7 +7326,6 @@ const Widget = ({
|
|
|
7367
7326
|
onImageUpload,
|
|
7368
7327
|
onPartialUpdateWidget,
|
|
7369
7328
|
itemsTypes,
|
|
7370
|
-
categories,
|
|
7371
7329
|
widgetTypes,
|
|
7372
7330
|
getCollectionData,
|
|
7373
7331
|
collectionData,
|
|
@@ -7400,7 +7358,6 @@ const Widget = ({
|
|
|
7400
7358
|
onImageRemove: onImageRemove,
|
|
7401
7359
|
onImageUpload: onImageUpload,
|
|
7402
7360
|
onPartialUpdateWidget: onPartialUpdateWidget,
|
|
7403
|
-
categories: categories,
|
|
7404
7361
|
itemsTypes: itemsTypes,
|
|
7405
7362
|
widgetTypes: widgetTypes,
|
|
7406
7363
|
getCollectionData: getCollectionData,
|
package/index.js
CHANGED
|
@@ -1746,8 +1746,6 @@ const TRANSLATION_PAIRS_WIDGET = {
|
|
|
1746
1746
|
'widget.widgetTitleInfo': 'HTML is supported',
|
|
1747
1747
|
'widget.minPerRow': 'Value must be greater than zero',
|
|
1748
1748
|
'widget.actionsLabel': 'Actions',
|
|
1749
|
-
'widget.category': 'Category',
|
|
1750
|
-
'widget.categoryPlaceholder': 'Select Category',
|
|
1751
1749
|
'widget.tabNameRequired': 'Tab Name is required'
|
|
1752
1750
|
};
|
|
1753
1751
|
const TRANSLATION_PAIRS_ITEM = {
|
|
@@ -2682,12 +2680,6 @@ const apiList = {
|
|
|
2682
2680
|
url: `${prefix}/collection-data`,
|
|
2683
2681
|
method: 'POST'
|
|
2684
2682
|
}),
|
|
2685
|
-
CATEGORIES: ({
|
|
2686
|
-
prefix
|
|
2687
|
-
}) => ({
|
|
2688
|
-
url: `${prefix}/categories`,
|
|
2689
|
-
method: 'GET'
|
|
2690
|
-
}),
|
|
2691
2683
|
// Image Upload API
|
|
2692
2684
|
IMAGE_UPLOAD: ({
|
|
2693
2685
|
prefix
|
|
@@ -2875,6 +2867,11 @@ const usePage = ({
|
|
|
2875
2867
|
}
|
|
2876
2868
|
}), [baseUrl, currentPageRef, limitRef, offsetRef, handleError, pageRoutesPrefix, routes, token]);
|
|
2877
2869
|
const onPageFormSubmit = data => __awaiter(void 0, void 0, void 0, function* () {
|
|
2870
|
+
if (selectedWidgets.length) {
|
|
2871
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
2872
|
+
// @ts-ignore
|
|
2873
|
+
data.widgets = selectedWidgets.map(item => item.value);
|
|
2874
|
+
}
|
|
2878
2875
|
setLoading(true);
|
|
2879
2876
|
const code = formState === 'ADD' ? CALLBACK_CODES.CREATE : CALLBACK_CODES.UPDATE;
|
|
2880
2877
|
try {
|
|
@@ -2965,6 +2962,7 @@ const usePage = ({
|
|
|
2965
2962
|
}
|
|
2966
2963
|
};
|
|
2967
2964
|
const onChangeWidgetSequence = (sourceIndex, destinationIndex) => {
|
|
2965
|
+
console.log(sourceIndex, destinationIndex);
|
|
2968
2966
|
setSelectedWidgets(listData => {
|
|
2969
2967
|
const temporaryData = [...listData];
|
|
2970
2968
|
const [selectedRow] = temporaryData.splice(sourceIndex, 1);
|
|
@@ -4506,7 +4504,6 @@ const useWidget = ({
|
|
|
4506
4504
|
const [formState, setFormState] = useState();
|
|
4507
4505
|
const [itemsTypes, setItemsTypes] = useState([]);
|
|
4508
4506
|
const [widgetTypes, setWidgetTypes] = useState([]);
|
|
4509
|
-
const [categories, setCategories] = useState([]);
|
|
4510
4507
|
const [collectionDataLoading, setCollectionDataLoading] = useState(false);
|
|
4511
4508
|
const [collectionData, setCollectionData] = useState([]);
|
|
4512
4509
|
const {
|
|
@@ -4685,27 +4682,6 @@ const useWidget = ({
|
|
|
4685
4682
|
}
|
|
4686
4683
|
setLoading(false);
|
|
4687
4684
|
});
|
|
4688
|
-
const getCategories = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
4689
|
-
if ((categories === null || categories === void 0 ? void 0 : categories.length) > 0) return;
|
|
4690
|
-
setLoading(true);
|
|
4691
|
-
const api = getApiType({
|
|
4692
|
-
routes,
|
|
4693
|
-
action: 'CATEGORIES',
|
|
4694
|
-
prefix: widgetRoutesPrefix
|
|
4695
|
-
});
|
|
4696
|
-
const response = yield commonApi({
|
|
4697
|
-
baseUrl,
|
|
4698
|
-
token,
|
|
4699
|
-
method: api.method,
|
|
4700
|
-
url: api.url,
|
|
4701
|
-
onError: handleError(CALLBACK_CODES.GET_ALL)
|
|
4702
|
-
});
|
|
4703
|
-
if ((response === null || response === void 0 ? void 0 : response.code) === 'SUCCESS') {
|
|
4704
|
-
setLoading(false);
|
|
4705
|
-
return setCategories(dataGatter(response));
|
|
4706
|
-
}
|
|
4707
|
-
setLoading(false);
|
|
4708
|
-
});
|
|
4709
4685
|
const getCollectionData = (collectionName, search, callback, collectionItems) => __awaiter(void 0, void 0, void 0, function* () {
|
|
4710
4686
|
setCollectionDataLoading(true);
|
|
4711
4687
|
const api = getApiType({
|
|
@@ -4808,7 +4784,6 @@ const useWidget = ({
|
|
|
4808
4784
|
if (state === 'ADD' || state === 'UPDATE') {
|
|
4809
4785
|
getWidgetsTypes();
|
|
4810
4786
|
getWidgetTypes();
|
|
4811
|
-
getCategories();
|
|
4812
4787
|
}
|
|
4813
4788
|
// get Item data if widget is updating
|
|
4814
4789
|
if (state === 'UPDATE' && data) {
|
|
@@ -4903,7 +4878,6 @@ const useWidget = ({
|
|
|
4903
4878
|
// Form
|
|
4904
4879
|
formState,
|
|
4905
4880
|
itemData,
|
|
4906
|
-
categories,
|
|
4907
4881
|
onChangeFormState,
|
|
4908
4882
|
onCloseForm,
|
|
4909
4883
|
onWidgetFormSubmit,
|
|
@@ -6013,7 +5987,6 @@ const WidgetContextProvider = ({
|
|
|
6013
5987
|
onImageRemove: _onImageRemove = id => __awaiter(void 0, void 0, void 0, function* () {}),
|
|
6014
5988
|
itemsTypes: _itemsTypes = [],
|
|
6015
5989
|
widgetTypes: _widgetTypes = [],
|
|
6016
|
-
categories: _categories = [],
|
|
6017
5990
|
getCollectionData: _getCollectionData = () => Promise.resolve(),
|
|
6018
5991
|
collectionDataLoading: _collectionDataLoading = false,
|
|
6019
5992
|
collectionData: _collectionData = [],
|
|
@@ -6061,7 +6034,6 @@ const WidgetContextProvider = ({
|
|
|
6061
6034
|
onImageRemove: _onImageRemove,
|
|
6062
6035
|
onPartialUpdateWidget: _onPartialUpdateWidget,
|
|
6063
6036
|
itemsTypes: _itemsTypes,
|
|
6064
|
-
categories: _categories,
|
|
6065
6037
|
widgetTypes: _widgetTypes,
|
|
6066
6038
|
getCollectionData: _getCollectionData,
|
|
6067
6039
|
collectionDataLoading: _collectionDataLoading,
|
|
@@ -6744,7 +6716,6 @@ const Tabs = ({
|
|
|
6744
6716
|
};
|
|
6745
6717
|
|
|
6746
6718
|
const constants = {
|
|
6747
|
-
categoryTypeAccessor: 'category',
|
|
6748
6719
|
widgetTypeAccessor: 'widgetType',
|
|
6749
6720
|
itemTypeAccessor: 'itemsType',
|
|
6750
6721
|
collectionNameAccessor: 'collectionName',
|
|
@@ -6788,7 +6759,6 @@ const WidgetForm = ({
|
|
|
6788
6759
|
canUpdate,
|
|
6789
6760
|
formState,
|
|
6790
6761
|
itemsTypes,
|
|
6791
|
-
categories,
|
|
6792
6762
|
widgetTypes,
|
|
6793
6763
|
loading,
|
|
6794
6764
|
onWidgetFormSubmit,
|
|
@@ -6812,7 +6782,8 @@ const WidgetForm = ({
|
|
|
6812
6782
|
const [tabCollectionItemsUpdated, setTabCollectionItemsUpdated] = useState([]);
|
|
6813
6783
|
useEffect(() => {
|
|
6814
6784
|
if (data && formState === 'UPDATE') {
|
|
6815
|
-
|
|
6785
|
+
const widgetType = widgetTypes.find(type => type.value === (data === null || data === void 0 ? void 0 : data.widgetType));
|
|
6786
|
+
setSelectedWidgetType(widgetType);
|
|
6816
6787
|
if ((data === null || data === void 0 ? void 0 : data.itemsType) === 'Image') {
|
|
6817
6788
|
setItemsEnabled(true);
|
|
6818
6789
|
} else {
|
|
@@ -6822,7 +6793,7 @@ const WidgetForm = ({
|
|
|
6822
6793
|
setSelectedCollectionType(itemsTypes.find(item => item.value === (data === null || data === void 0 ? void 0 : data.collectionName)));
|
|
6823
6794
|
}
|
|
6824
6795
|
}
|
|
6825
|
-
}, [data, formState, itemsTypes]);
|
|
6796
|
+
}, [data, formState, itemsTypes, widgetTypes]);
|
|
6826
6797
|
useEffect(() => {
|
|
6827
6798
|
if (formState === 'ADD') {
|
|
6828
6799
|
setSelectedCollectionItems([]);
|
|
@@ -6900,13 +6871,11 @@ const WidgetForm = ({
|
|
|
6900
6871
|
const getFirstWidgetTypeValue = useCallback(() => {
|
|
6901
6872
|
return widgetTypes[0].value;
|
|
6902
6873
|
}, [widgetTypes]);
|
|
6903
|
-
const getFirstCategoryValue = useCallback(() => {
|
|
6904
|
-
return categories[0].value;
|
|
6905
|
-
}, [categories]);
|
|
6906
6874
|
// Widget Form Functions
|
|
6907
6875
|
const onWidgetFormInputChange = useCallback((value, name) => {
|
|
6908
6876
|
if (name === 'widgetType') {
|
|
6909
|
-
|
|
6877
|
+
const widgetType = widgetTypes.find(type => type.value === value[name]);
|
|
6878
|
+
setSelectedWidgetType(widgetType);
|
|
6910
6879
|
if (value[name] === 'Tabs') {
|
|
6911
6880
|
const firstItemType = getFirstItemTypeValue(value[name]);
|
|
6912
6881
|
if (firstItemType) {
|
|
@@ -6925,13 +6894,10 @@ const WidgetForm = ({
|
|
|
6925
6894
|
} else if ((name === null || name === void 0 ? void 0 : name.includes(constants.tabsAccessor)) && Array.isArray(value[constants.tabsAccessor])) {
|
|
6926
6895
|
setTabCollectionItems(value[constants.tabsAccessor].map(tabItem => tabItem[constants.tabCollectionItemsAccessor]));
|
|
6927
6896
|
}
|
|
6928
|
-
}, [getFirstItemTypeValue, itemsTypes]);
|
|
6897
|
+
}, [getFirstItemTypeValue, itemsTypes, widgetTypes]);
|
|
6929
6898
|
const onFormSubmit = data => {
|
|
6930
6899
|
var _a, _b;
|
|
6931
6900
|
const formData = Object.assign({}, data);
|
|
6932
|
-
if (!formData[constants.categoryTypeAccessor] && categories && categories.length > 0) {
|
|
6933
|
-
formData[constants.categoryTypeAccessor] = getFirstCategoryValue();
|
|
6934
|
-
}
|
|
6935
6901
|
// setting widget type if undefined
|
|
6936
6902
|
if (!formData[constants.widgetTypeAccessor] && formState === 'ADD') {
|
|
6937
6903
|
formData[constants.widgetTypeAccessor] = getFirstWidgetTypeValue();
|
|
@@ -7049,18 +7015,11 @@ const WidgetForm = ({
|
|
|
7049
7015
|
required: t('widget.widgetTypeRequired')
|
|
7050
7016
|
},
|
|
7051
7017
|
options: widgetTypes
|
|
7052
|
-
}, {
|
|
7053
|
-
label: `${t('widget.category')}`,
|
|
7054
|
-
placeholder: t('widget.categoryPlaceholder'),
|
|
7055
|
-
accessor: 'category',
|
|
7056
|
-
type: 'select',
|
|
7057
|
-
show: categories && categories.length > 0,
|
|
7058
|
-
options: categories
|
|
7059
7018
|
}, {
|
|
7060
7019
|
label: t('widget.autoPlay'),
|
|
7061
7020
|
accessor: 'autoPlay',
|
|
7062
7021
|
type: 'checkbox',
|
|
7063
|
-
show: selectedWidgetType === 'Carousel',
|
|
7022
|
+
show: (selectedWidgetType === null || selectedWidgetType === void 0 ? void 0 : selectedWidgetType.value) === 'Carousel',
|
|
7064
7023
|
switchClass: switchClass
|
|
7065
7024
|
}, {
|
|
7066
7025
|
label: `${t('widget.itemsType')}`,
|
|
@@ -7071,7 +7030,7 @@ const WidgetForm = ({
|
|
|
7071
7030
|
validations: {
|
|
7072
7031
|
required: t('widget.itemsTypePlaceholder')
|
|
7073
7032
|
},
|
|
7074
|
-
options: selectedWidgetType === 'Tabs' ? itemsTypes.filter(item => item.label !== 'Image') : itemsTypes
|
|
7033
|
+
options: (selectedWidgetType === null || selectedWidgetType === void 0 ? void 0 : selectedWidgetType.value) === 'Tabs' || (selectedWidgetType === null || selectedWidgetType === void 0 ? void 0 : selectedWidgetType.collectionsOnly) ? itemsTypes.filter(item => item.label !== 'Image') : (selectedWidgetType === null || selectedWidgetType === void 0 ? void 0 : selectedWidgetType.imageOnly) ? itemsTypes.filter(item => item.label === 'Image') : itemsTypes
|
|
7075
7034
|
}, {
|
|
7076
7035
|
label: t('widget.color'),
|
|
7077
7036
|
accessor: 'backgroundColor',
|
|
@@ -7131,7 +7090,7 @@ const WidgetForm = ({
|
|
|
7131
7090
|
onChange: setSelectedCollectionItems,
|
|
7132
7091
|
loadOptions: onChangeSearch,
|
|
7133
7092
|
isLoading: collectionDataLoading,
|
|
7134
|
-
show: !itemsEnabled && selectedWidgetType !== 'Tabs',
|
|
7093
|
+
show: !itemsEnabled && (selectedWidgetType === null || selectedWidgetType === void 0 ? void 0 : selectedWidgetType.value) !== 'Tabs',
|
|
7135
7094
|
formatOptionLabel: formatOptionLabel,
|
|
7136
7095
|
listCode: selectedCollectionType === null || selectedCollectionType === void 0 ? void 0 : selectedCollectionType.value,
|
|
7137
7096
|
customStyles: reactSelectStyles || {},
|
|
@@ -7151,7 +7110,7 @@ const WidgetForm = ({
|
|
|
7151
7110
|
setValue: setValue,
|
|
7152
7111
|
control: control,
|
|
7153
7112
|
setError: setError
|
|
7154
|
-
}), selectedWidgetType === 'Tabs' ? /*#__PURE__*/React.createElement(Tabs, {
|
|
7113
|
+
}), (selectedWidgetType === null || selectedWidgetType === void 0 ? void 0 : selectedWidgetType.value) === 'Tabs' ? /*#__PURE__*/React.createElement(Tabs, {
|
|
7155
7114
|
control: control,
|
|
7156
7115
|
register: register,
|
|
7157
7116
|
deleteTitle: t('widget.tabDeleteTitle'),
|
|
@@ -7170,12 +7129,12 @@ const WidgetForm = ({
|
|
|
7170
7129
|
customStyles: reactSelectStyles || {},
|
|
7171
7130
|
activeTab: activeTab,
|
|
7172
7131
|
setActiveTab: setActiveTab
|
|
7173
|
-
}) : null, !itemsEnabled && selectedWidgetType !== 'Tabs' && /*#__PURE__*/React.createElement(DNDItemsList, {
|
|
7132
|
+
}) : null, !itemsEnabled && (selectedWidgetType === null || selectedWidgetType === void 0 ? void 0 : selectedWidgetType.value) !== 'Tabs' && /*#__PURE__*/React.createElement(DNDItemsList, {
|
|
7174
7133
|
items: selectedCollectionItems,
|
|
7175
7134
|
onDragEnd: onCollectionIndexChange,
|
|
7176
7135
|
formatItem: formatListItem,
|
|
7177
7136
|
listCode: selectedCollectionType === null || selectedCollectionType === void 0 ? void 0 : selectedCollectionType.value
|
|
7178
|
-
}), itemsEnabled && selectedWidgetType !== 'Tabs' && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ItemsAccordian, {
|
|
7137
|
+
}), itemsEnabled && (selectedWidgetType === null || selectedWidgetType === void 0 ? void 0 : selectedWidgetType.value) !== 'Tabs' && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ItemsAccordian, {
|
|
7179
7138
|
clearError: clearErrors,
|
|
7180
7139
|
collapseId: constants.webItems,
|
|
7181
7140
|
title: t('widget.webItems'),
|
|
@@ -7355,7 +7314,6 @@ const Widget = ({
|
|
|
7355
7314
|
onImageUpload,
|
|
7356
7315
|
onPartialUpdateWidget,
|
|
7357
7316
|
itemsTypes,
|
|
7358
|
-
categories,
|
|
7359
7317
|
widgetTypes,
|
|
7360
7318
|
getCollectionData,
|
|
7361
7319
|
collectionData,
|
|
@@ -7388,7 +7346,6 @@ const Widget = ({
|
|
|
7388
7346
|
onImageRemove: onImageRemove,
|
|
7389
7347
|
onImageUpload: onImageUpload,
|
|
7390
7348
|
onPartialUpdateWidget: onPartialUpdateWidget,
|
|
7391
|
-
categories: categories,
|
|
7392
7349
|
itemsTypes: itemsTypes,
|
|
7393
7350
|
widgetTypes: widgetTypes,
|
|
7394
7351
|
getCollectionData: getCollectionData,
|
package/package.json
CHANGED
package/src/lib/api/list.d.ts
CHANGED
|
@@ -87,8 +87,6 @@ declare const TRANSLATION_PAIRS_WIDGET: {
|
|
|
87
87
|
'widget.widgetTitleInfo': string;
|
|
88
88
|
'widget.minPerRow': string;
|
|
89
89
|
'widget.actionsLabel': string;
|
|
90
|
-
'widget.category': string;
|
|
91
|
-
'widget.categoryPlaceholder': string;
|
|
92
90
|
'widget.tabNameRequired': string;
|
|
93
91
|
};
|
|
94
92
|
declare const TRANSLATION_PAIRS_ITEM: {
|
|
@@ -2,6 +2,6 @@ import React from 'react';
|
|
|
2
2
|
import { WidgetContextType } from '../types';
|
|
3
3
|
interface WidgetContextProviderProps extends React.PropsWithChildren, Partial<WidgetContextType> {
|
|
4
4
|
}
|
|
5
|
-
declare const WidgetContextProvider: ({ t, list, imageBaseUrl, searchText, changeSearch, formState, closeForm, loading, onChangeFormState, onWidgetFormSubmit, updateData, canAdd, canUpdate, onDeleteItem, getWidgets, onImageUpload, onImageRemove, itemsTypes, widgetTypes,
|
|
5
|
+
declare const WidgetContextProvider: ({ t, list, imageBaseUrl, searchText, changeSearch, formState, closeForm, loading, onChangeFormState, onWidgetFormSubmit, updateData, canAdd, canUpdate, onDeleteItem, getWidgets, onImageUpload, onImageRemove, itemsTypes, widgetTypes, getCollectionData, collectionDataLoading, collectionData, formatListItem, formatOptionLabel, currentPage, limits, pageSize, setCurrentPage, setPageSize, totalPages, totalRecords, canList, canPartialUpdate, columns, data, canDelete, loader, onPartialUpdateWidget, reactSelectStyles, children, }: WidgetContextProviderProps) => JSX.Element;
|
|
6
6
|
export declare function useWidgetState(): WidgetContextType;
|
|
7
7
|
export default WidgetContextProvider;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import { Routes_Input, WidgetType, ItemsType
|
|
2
|
+
import { Routes_Input, WidgetType, ItemsType } from '../types';
|
|
3
3
|
import { FormActionTypes, ObjectType } from '../types/common';
|
|
4
4
|
interface UseWidgetProps {
|
|
5
5
|
canList?: boolean;
|
|
@@ -10,7 +10,7 @@ interface UseWidgetProps {
|
|
|
10
10
|
}) => Promise<boolean>;
|
|
11
11
|
imageBaseUrl?: string;
|
|
12
12
|
}
|
|
13
|
-
declare const useWidget: ({ canList, defaultLimit, routes, preConfirmDelete, imageBaseUrl
|
|
13
|
+
declare const useWidget: ({ canList, defaultLimit, routes, preConfirmDelete, imageBaseUrl }: UseWidgetProps) => {
|
|
14
14
|
list: ObjectType[];
|
|
15
15
|
getWidgets: (search?: string) => Promise<void>;
|
|
16
16
|
loading: boolean;
|
|
@@ -24,7 +24,6 @@ declare const useWidget: ({ canList, defaultLimit, routes, preConfirmDelete, ima
|
|
|
24
24
|
setPageSize: (value: number) => void;
|
|
25
25
|
formState: FormActionTypes | undefined;
|
|
26
26
|
itemData: ObjectType | null;
|
|
27
|
-
categories: Category[];
|
|
28
27
|
onChangeFormState: (state: FormActionTypes, data?: ObjectType) => Promise<void>;
|
|
29
28
|
onCloseForm: () => void;
|
|
30
29
|
onWidgetFormSubmit: (data: ObjectType) => Promise<void>;
|
package/src/lib/types/api.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type ACTION_TYPES = 'IMAGE_UPLOAD' | 'IMAGE_REMOVE' | 'CREATE' | 'LIST' | 'DELETE' | 'UPDATE' | 'ITEM' | 'PARTIAL_UPDATE' | 'WIDGET_TYPES' | 'SELECTION_TYPES' | 'COLLECTION_DATA' | 'GET_ONE'
|
|
1
|
+
export type ACTION_TYPES = 'IMAGE_UPLOAD' | 'IMAGE_REMOVE' | 'CREATE' | 'LIST' | 'DELETE' | 'UPDATE' | 'ITEM' | 'PARTIAL_UPDATE' | 'WIDGET_TYPES' | 'SELECTION_TYPES' | 'COLLECTION_DATA' | 'GET_ONE';
|
|
2
2
|
export type API_TYPE = {
|
|
3
3
|
url: string;
|
|
4
4
|
method: string;
|
|
@@ -18,10 +18,6 @@ export type WidgetType = {
|
|
|
18
18
|
value: string;
|
|
19
19
|
label: string;
|
|
20
20
|
};
|
|
21
|
-
export type Category = {
|
|
22
|
-
value: string;
|
|
23
|
-
label: string;
|
|
24
|
-
};
|
|
25
21
|
export interface BaseAPIProps {
|
|
26
22
|
config?: any;
|
|
27
23
|
baseUrl: string;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import { WidgetType, ItemsType
|
|
2
|
+
import { WidgetType, ItemsType } from './api';
|
|
3
3
|
import { FormActionTypes, OptionType } from './common';
|
|
4
4
|
export interface ProviderContextType {
|
|
5
5
|
baseUrl: string;
|
|
@@ -43,7 +43,6 @@ export interface WidgetContextType {
|
|
|
43
43
|
onImageRemove: (id: string) => Promise<void>;
|
|
44
44
|
itemsTypes: ItemsType[];
|
|
45
45
|
widgetTypes: WidgetType[];
|
|
46
|
-
categories: Category[];
|
|
47
46
|
getCollectionData: (collectionName: string, search?: string, callback?: (options: OptionType[]) => void, collectionItems?: string[]) => Promise<void>;
|
|
48
47
|
collectionDataLoading: boolean;
|
|
49
48
|
collectionData: any[];
|