@webiny/app-aco 5.37.0 → 5.37.1-beta.1
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/components/Dialogs/index.d.ts +0 -1
- package/components/Dialogs/index.js +0 -11
- package/components/Dialogs/index.js.map +1 -1
- package/components/FolderGrid/styled.d.ts +1 -1
- package/contexts/acoList.js +32 -42
- package/contexts/acoList.js.map +1 -1
- package/contexts/records.js +23 -52
- package/contexts/records.js.map +1 -1
- package/dialogs/dialogs.js +12 -10
- package/dialogs/dialogs.js.map +1 -1
- package/hooks/useFolders.d.ts +1 -1
- package/package.json +14 -14
- package/components/Dialogs/DialogMove.d.ts +0 -10
- package/components/Dialogs/DialogMove.js +0 -108
- package/components/Dialogs/DialogMove.js.map +0 -1
|
@@ -25,17 +25,6 @@ Object.keys(_DialogDelete).forEach(function (key) {
|
|
|
25
25
|
}
|
|
26
26
|
});
|
|
27
27
|
});
|
|
28
|
-
var _DialogMove = require("./DialogMove");
|
|
29
|
-
Object.keys(_DialogMove).forEach(function (key) {
|
|
30
|
-
if (key === "default" || key === "__esModule") return;
|
|
31
|
-
if (key in exports && exports[key] === _DialogMove[key]) return;
|
|
32
|
-
Object.defineProperty(exports, key, {
|
|
33
|
-
enumerable: true,
|
|
34
|
-
get: function get() {
|
|
35
|
-
return _DialogMove[key];
|
|
36
|
-
}
|
|
37
|
-
});
|
|
38
|
-
});
|
|
39
28
|
var _DialogUpdate = require("./DialogUpdate");
|
|
40
29
|
Object.keys(_DialogUpdate).forEach(function (key) {
|
|
41
30
|
if (key === "default" || key === "__esModule") return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_DialogCreate","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_DialogDelete","
|
|
1
|
+
{"version":3,"names":["_DialogCreate","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_DialogDelete","_DialogUpdate"],"sources":["index.tsx"],"sourcesContent":["export * from \"./DialogCreate\";\nexport * from \"./DialogDelete\";\nexport * from \"./DialogUpdate\";\n"],"mappings":";;;;;AAAA,IAAAA,aAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,aAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,aAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAT,aAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,aAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,aAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,aAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAC,aAAA,CAAAL,GAAA;IAAA;EAAA;AAAA;AACA,IAAAM,aAAA,GAAAV,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAQ,aAAA,EAAAP,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAM,aAAA,CAAAN,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAE,aAAA,CAAAN,GAAA;IAAA;EAAA;AAAA"}
|
|
@@ -31,7 +31,7 @@ export declare const Actions: import("@emotion/styled").StyledComponent<Pick<imp
|
|
|
31
31
|
onOpen?: (() => void) | undefined;
|
|
32
32
|
onClose?: (() => void) | undefined;
|
|
33
33
|
"data-testid"?: string | undefined;
|
|
34
|
-
}, "anchor" | "className" | "
|
|
34
|
+
}, "anchor" | "className" | keyof import("@rmwc/menu").MenuProps | "handle" | "data-testid">> & Partial<Pick<Partial<import("@rmwc/menu").MenuProps & {
|
|
35
35
|
children: import("react").ReactNode;
|
|
36
36
|
handle?: import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>> | undefined;
|
|
37
37
|
anchor?: "bottomEnd" | "bottomLeft" | "bottomRight" | "bottomStart" | "topEnd" | "topLeft" | "topRight" | "topStart" | undefined;
|
package/contexts/acoList.js
CHANGED
|
@@ -86,10 +86,12 @@ var AcoListProvider = function AcoListProvider(_ref) {
|
|
|
86
86
|
_useState6 = (0, _slicedToArray2.default)(_useState5, 2),
|
|
87
87
|
listTitle = _useState6[0],
|
|
88
88
|
setListTitle = _useState6[1];
|
|
89
|
-
var
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
89
|
+
var _useReducer = (0, _react.useReducer)(function (state, newState) {
|
|
90
|
+
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, state), newState);
|
|
91
|
+
}, initializeAcoListState()),
|
|
92
|
+
_useReducer2 = (0, _slicedToArray2.default)(_useReducer, 2),
|
|
93
|
+
state = _useReducer2[0],
|
|
94
|
+
setState = _useReducer2[1];
|
|
93
95
|
var originalFolders = folderContext.folders,
|
|
94
96
|
foldersLoading = folderContext.loading,
|
|
95
97
|
listFolders = folderContext.listFolders,
|
|
@@ -116,15 +118,13 @@ var AcoListProvider = function AcoListProvider(_ref) {
|
|
|
116
118
|
if (!originalFolders) {
|
|
117
119
|
listFolders();
|
|
118
120
|
}
|
|
119
|
-
setState(
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
showingFilters: false
|
|
127
|
-
});
|
|
121
|
+
setState({
|
|
122
|
+
after: undefined,
|
|
123
|
+
filters: undefined,
|
|
124
|
+
folderId: currentFolderId,
|
|
125
|
+
isSearch: false,
|
|
126
|
+
searchQuery: "",
|
|
127
|
+
showingFilters: false
|
|
128
128
|
});
|
|
129
129
|
}, [currentFolderId]);
|
|
130
130
|
|
|
@@ -180,10 +180,8 @@ var AcoListProvider = function AcoListProvider(_ref) {
|
|
|
180
180
|
var hasMoreItems = meta.hasMoreItems,
|
|
181
181
|
cursor = meta.cursor;
|
|
182
182
|
if (hasMoreItems && cursor) {
|
|
183
|
-
setState(
|
|
184
|
-
|
|
185
|
-
after: cursor
|
|
186
|
-
});
|
|
183
|
+
setState({
|
|
184
|
+
after: cursor
|
|
187
185
|
});
|
|
188
186
|
}
|
|
189
187
|
}, [meta]);
|
|
@@ -229,10 +227,8 @@ var AcoListProvider = function AcoListProvider(_ref) {
|
|
|
229
227
|
_context.next = 8;
|
|
230
228
|
return listRecords(params);
|
|
231
229
|
case 8:
|
|
232
|
-
setState(
|
|
233
|
-
|
|
234
|
-
isSearch: isSearch
|
|
235
|
-
});
|
|
230
|
+
setState({
|
|
231
|
+
isSearch: isSearch
|
|
236
232
|
});
|
|
237
233
|
case 9:
|
|
238
234
|
case "end":
|
|
@@ -254,39 +250,33 @@ var AcoListProvider = function AcoListProvider(_ref) {
|
|
|
254
250
|
isListLoadingMore: Boolean(recordsLoading.LIST_MORE),
|
|
255
251
|
meta: meta,
|
|
256
252
|
setSearchQuery: function setSearchQuery(query) {
|
|
257
|
-
setState(
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
});
|
|
253
|
+
setState({
|
|
254
|
+
searchQuery: query,
|
|
255
|
+
after: undefined
|
|
261
256
|
});
|
|
262
257
|
},
|
|
263
258
|
setFilters: function setFilters(data) {
|
|
264
|
-
setState(
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
});
|
|
259
|
+
setState({
|
|
260
|
+
filters: data,
|
|
261
|
+
after: undefined
|
|
268
262
|
});
|
|
269
263
|
},
|
|
270
264
|
setListSort: function setListSort(sort) {
|
|
271
|
-
setState(
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
});
|
|
265
|
+
setState({
|
|
266
|
+
listSort: sort,
|
|
267
|
+
after: undefined
|
|
275
268
|
});
|
|
276
269
|
},
|
|
277
270
|
hideFilters: function hideFilters() {
|
|
278
|
-
setState(
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
});
|
|
271
|
+
setState({
|
|
272
|
+
filters: undefined,
|
|
273
|
+
showingFilters: false,
|
|
274
|
+
after: undefined
|
|
283
275
|
});
|
|
284
276
|
},
|
|
285
277
|
showFilters: function showFilters() {
|
|
286
|
-
setState(
|
|
287
|
-
|
|
288
|
-
showingFilters: true
|
|
289
|
-
});
|
|
278
|
+
setState({
|
|
279
|
+
showingFilters: true
|
|
290
280
|
});
|
|
291
281
|
},
|
|
292
282
|
listMoreRecords: listMoreRecords
|
package/contexts/acoList.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_hooks","_folders","_records","_sorting","_dotPropImmutable","_interopRequireDefault","_pick","_constants","_appSecurity","_excluded","AcoListContext","React","createContext","undefined","exports","initializeAcoListState","after","filters","folderId","isSearch","limit","listSort","searchQuery","showingFilters","getCurrentFolderList","folders","currentFolderId","toLowerCase","ROOT_FOLDER","filter","folder","parentId","getCurrentRecordList","records","folderIdPath","record","dotPropImmutable","get","AcoListProvider","_ref","children","props","_objectWithoutProperties2","default","_useSecurity","useSecurity","identity","_useNavigateFolder","useNavigateFolder","_useAcoApp","useAcoApp","folderIdInPath","folderContext","useContext","FoldersContext","searchContext","SearchRecordsContext","Error","_useState","useState","_useState2","_slicedToArray2","setFolders","_useState3","_useState4","setRecords","_useState5","_useState6","listTitle","setListTitle","_useState7","_useState8","state","setState","originalFolders","foldersLoading","loading","listFolders","getDescendantFolders","originalRecords","recordsLoading","listRecords","meta","useEffect","_objectSpread2","currentFolder","find","id","title","subFolders","sortTableItems","subRecords","prev","listMoreRecords","useCallback","hasMoreItems","cursor","listItems","_ref2","_asyncToGenerator2","_regeneratorRuntime2","mark","_callee","locationWhere","descendantFolderIds","params","wrap","_callee$","_context","next","abrupt","Boolean","Object","values","length","set","map","sort","validateOrGetDefaultDbSort","search","where","createdBy","own","stop","apply","arguments","context","pick","isListLoading","INIT","LIST","isListLoadingMore","LIST_MORE","setSearchQuery","query","setFilters","data","setListSort","hideFilters","showFilters","createElement","Provider","value"],"sources":["acoList.tsx"],"sourcesContent":["import React, { useCallback, useContext, useEffect, useState } from \"react\";\nimport {\n FolderItem,\n GenericSearchData,\n ListMeta,\n ListSearchRecordsQueryVariables,\n ListSearchRecordsSort,\n SearchRecordItem\n} from \"~/types\";\nimport { useAcoApp, useNavigateFolder } from \"~/hooks\";\nimport { FoldersContext } from \"~/contexts/folders\";\nimport { SearchRecordsContext } from \"~/contexts/records\";\nimport { sortTableItems, validateOrGetDefaultDbSort } from \"~/sorting\";\nimport dotPropImmutable from \"dot-prop-immutable\";\nimport pick from \"lodash/pick\";\nimport { ROOT_FOLDER } from \"~/constants\";\nimport { useSecurity } from \"@webiny/app-security\";\n\nexport interface AcoListContextData<T> {\n folders: FolderItem[];\n hideFilters: () => void;\n isListLoading: boolean;\n isListLoadingMore: boolean;\n isSearch: boolean;\n listMoreRecords: () => void;\n listTitle?: string;\n meta: ListMeta;\n records: SearchRecordItem<T>[];\n setFilters: (data: Record<string, any>) => void;\n setListSort: (state: ListSearchRecordsSort) => void;\n setSearchQuery: (query: string) => void;\n showFilters: () => void;\n showingFilters: boolean;\n}\n\nexport const AcoListContext = React.createContext<\n AcoListContextData<GenericSearchData> | undefined\n>(undefined);\n\nexport interface State {\n after?: string;\n filters?: Record<string, any>;\n folderId?: string;\n isSearch: boolean;\n limit: number;\n listSort: ListSearchRecordsSort;\n searchQuery: string;\n showingFilters: boolean;\n}\n\nconst initializeAcoListState = (): State => {\n return {\n after: undefined,\n filters: undefined,\n folderId: undefined,\n isSearch: false,\n limit: 50,\n listSort: [],\n searchQuery: \"\",\n showingFilters: false\n };\n};\n\nconst getCurrentFolderList = (\n folders?: FolderItem[] | null,\n currentFolderId?: string\n): FolderItem[] | [] => {\n if (!folders) {\n return [];\n }\n if (!currentFolderId || currentFolderId.toLowerCase() === ROOT_FOLDER) {\n return folders.filter(\n folder => !folder.parentId || folder.parentId.toLowerCase() === ROOT_FOLDER\n );\n }\n return folders.filter(folder => folder.parentId === currentFolderId);\n};\n\nconst getCurrentRecordList = <T = GenericSearchData,>(\n records: SearchRecordItem<T>[],\n folderIdPath: string,\n currentFolderId?: string\n): SearchRecordItem<T>[] => {\n if (!records) {\n return [];\n }\n\n if (!currentFolderId) {\n return records;\n }\n\n return records.filter(\n (record): record is SearchRecordItem<T> =>\n dotPropImmutable.get(record, folderIdPath) === currentFolderId\n );\n};\n\nexport interface AcoListProviderProps {\n children: React.ReactNode;\n own?: boolean;\n}\n\nexport const AcoListProvider: React.VFC<AcoListProviderProps> = ({ children, ...props }) => {\n const { identity } = useSecurity();\n const { currentFolderId } = useNavigateFolder();\n const { folderIdPath, folderIdInPath } = useAcoApp();\n const folderContext = useContext(FoldersContext);\n const searchContext = useContext(SearchRecordsContext);\n\n if (!folderContext || !searchContext) {\n throw new Error(\"useAcoList must be used within a ACOProvider\");\n }\n\n const [folders, setFolders] = useState<FolderItem[]>([]);\n const [records, setRecords] = useState<SearchRecordItem[]>([]);\n const [listTitle, setListTitle] = useState<string | undefined>();\n const [state, setState] = useState(initializeAcoListState());\n\n const {\n folders: originalFolders,\n loading: foldersLoading,\n listFolders,\n getDescendantFolders\n } = folderContext;\n const { records: originalRecords, loading: recordsLoading, listRecords, meta } = searchContext;\n\n /**\n * On first mount, call `listFolders` and `setState`, which will either issue a network request, or load folders and records from cache.\n * We don't need to store the result of it to any local state; that is managed by the context provider.\n *\n * IMPORTANT: we check if the folders[type] array exists: the hook can be used from multiple components and\n * fetch the outdated list from Apollo Cache. Since the state is managed locally, we fetch the folders only\n * at the first mount.\n *\n * We don't call `listRecords` directly, instead we call `setState` making it the only driver to fetch records from the apis.\n */\n useEffect(() => {\n if (!currentFolderId) {\n return;\n }\n\n if (!originalFolders) {\n listFolders();\n }\n\n setState(state => {\n return {\n ...state,\n after: undefined,\n filters: undefined,\n folderId: currentFolderId,\n isSearch: false,\n searchQuery: \"\",\n showingFilters: false\n };\n });\n }, [currentFolderId]);\n\n /**\n * Any time we receive a `folders` list update:\n * - we set an empty array in case of search;\n * - we set the list filtered by the current `type` and parent `folderId`, sorted according to the current `sort` value;\n * - we set the current folder name.\n */\n useEffect(() => {\n const currentFolder = originalFolders?.find(\n folder => folder.id === (state.folderId || ROOT_FOLDER)\n );\n\n setListTitle(currentFolder?.title);\n\n if (state.isSearch) {\n setFolders([]);\n return;\n }\n\n const subFolders = getCurrentFolderList(originalFolders, state.folderId);\n setFolders(() => {\n return sortTableItems(subFolders, state.listSort);\n });\n }, [originalFolders, state.folderId, state.isSearch]);\n\n /**\n * Any time we receive a `records` list or `folderId` update:\n * - we set all `records` in case of search query;\n * - we set the `records` list filtered by the current `folderId`.\n */\n useEffect(() => {\n if (state.isSearch) {\n setRecords(originalRecords as SearchRecordItem[]);\n return;\n }\n\n const subRecords = getCurrentRecordList(\n originalRecords as SearchRecordItem[],\n folderIdPath,\n state.folderId\n );\n setRecords(subRecords);\n }, [originalRecords, state.folderId, state.isSearch]);\n\n /**\n * Any time we receive a new `sort` value:\n * - we sort the current `folders` list according to `sorting` value;\n */\n useEffect(() => {\n setFolders(prev => {\n return sortTableItems(prev, state.listSort);\n });\n }, [state.listSort]);\n\n /**\n * Utility function to list/load more records, the `meta` state is tracked internally.\n */\n const listMoreRecords = useCallback(() => {\n const { hasMoreItems, cursor } = meta;\n if (hasMoreItems && cursor) {\n setState(state => ({\n ...state,\n after: cursor\n }));\n }\n }, [meta]);\n\n /**\n * Any time we receive new useful `state` params:\n * - we fetch records according to the new params\n */\n useEffect(() => {\n const listItems = async () => {\n if (!state.folderId) {\n return;\n }\n\n const isSearch = Boolean(\n state.searchQuery ||\n (state.filters && Object.values(state.filters).filter(Boolean).length)\n );\n\n let locationWhere = dotPropImmutable.set({}, folderIdPath, state.folderId);\n\n if (isSearch) {\n if (state.folderId === ROOT_FOLDER) {\n locationWhere = undefined;\n } else {\n const descendantFolderIds = getDescendantFolders(state.folderId).map(\n folder => folder.id\n );\n locationWhere = dotPropImmutable.set({}, folderIdInPath, descendantFolderIds);\n }\n }\n\n const params: ListSearchRecordsQueryVariables = {\n limit: state.limit,\n sort: validateOrGetDefaultDbSort(state.listSort),\n search: state.searchQuery,\n after: state.after,\n where: {\n createdBy: props.own ? identity!.id : undefined,\n ...locationWhere,\n ...state.filters\n }\n };\n\n await listRecords(params);\n\n setState(state => ({\n ...state,\n isSearch\n }));\n };\n\n listItems();\n }, [state.folderId, state.filters, state.searchQuery, state.after, state.listSort]);\n\n const context: AcoListContextData<GenericSearchData> = {\n ...pick(state, [\"isSearch\", \"showingFilters\"]),\n folders,\n records,\n listTitle,\n isListLoading: Boolean(\n recordsLoading.INIT || foldersLoading.INIT || recordsLoading.LIST || foldersLoading.LIST\n ),\n isListLoadingMore: Boolean(recordsLoading.LIST_MORE),\n meta,\n setSearchQuery(query) {\n setState(state => ({\n ...state,\n searchQuery: query\n }));\n },\n setFilters(data) {\n setState(state => ({\n ...state,\n filters: data\n }));\n },\n setListSort(sort: ListSearchRecordsSort) {\n setState(state => ({\n ...state,\n listSort: sort\n }));\n },\n hideFilters() {\n setState(state => ({\n ...state,\n filters: undefined,\n showingFilters: false\n }));\n },\n showFilters() {\n setState(state => ({\n ...state,\n showingFilters: true\n }));\n },\n listMoreRecords\n };\n\n return <AcoListContext.Provider value={context}>{children}</AcoListContext.Provider>;\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_hooks","_folders","_records","_sorting","_dotPropImmutable","_interopRequireDefault","_pick","_constants","_appSecurity","_excluded","AcoListContext","React","createContext","undefined","exports","initializeAcoListState","after","filters","folderId","isSearch","limit","listSort","searchQuery","showingFilters","getCurrentFolderList","folders","currentFolderId","toLowerCase","ROOT_FOLDER","filter","folder","parentId","getCurrentRecordList","records","folderIdPath","record","dotPropImmutable","get","AcoListProvider","_ref","children","props","_objectWithoutProperties2","default","_useSecurity","useSecurity","identity","_useNavigateFolder","useNavigateFolder","_useAcoApp","useAcoApp","folderIdInPath","folderContext","useContext","FoldersContext","searchContext","SearchRecordsContext","Error","_useState","useState","_useState2","_slicedToArray2","setFolders","_useState3","_useState4","setRecords","_useState5","_useState6","listTitle","setListTitle","_useReducer","useReducer","state","newState","_objectSpread2","_useReducer2","setState","originalFolders","foldersLoading","loading","listFolders","getDescendantFolders","originalRecords","recordsLoading","listRecords","meta","useEffect","currentFolder","find","id","title","subFolders","sortTableItems","subRecords","prev","listMoreRecords","useCallback","hasMoreItems","cursor","listItems","_ref2","_asyncToGenerator2","_regeneratorRuntime2","mark","_callee","locationWhere","descendantFolderIds","params","wrap","_callee$","_context","next","abrupt","Boolean","Object","values","length","set","map","sort","validateOrGetDefaultDbSort","search","where","createdBy","own","stop","apply","arguments","context","pick","isListLoading","INIT","LIST","isListLoadingMore","LIST_MORE","setSearchQuery","query","setFilters","data","setListSort","hideFilters","showFilters","createElement","Provider","value"],"sources":["acoList.tsx"],"sourcesContent":["import React, { useCallback, useContext, useEffect, useReducer, useState } from \"react\";\nimport {\n FolderItem,\n GenericSearchData,\n ListMeta,\n ListSearchRecordsQueryVariables,\n ListSearchRecordsSort,\n SearchRecordItem\n} from \"~/types\";\nimport { useAcoApp, useNavigateFolder } from \"~/hooks\";\nimport { FoldersContext } from \"~/contexts/folders\";\nimport { SearchRecordsContext } from \"~/contexts/records\";\nimport { sortTableItems, validateOrGetDefaultDbSort } from \"~/sorting\";\nimport dotPropImmutable from \"dot-prop-immutable\";\nimport pick from \"lodash/pick\";\nimport { ROOT_FOLDER } from \"~/constants\";\nimport { useSecurity } from \"@webiny/app-security\";\n\nexport interface AcoListContextData<T> {\n folders: FolderItem[];\n hideFilters: () => void;\n isListLoading: boolean;\n isListLoadingMore: boolean;\n isSearch: boolean;\n listMoreRecords: () => void;\n listTitle?: string;\n meta: ListMeta;\n records: SearchRecordItem<T>[];\n setFilters: (data: Record<string, any>) => void;\n setListSort: (state: ListSearchRecordsSort) => void;\n setSearchQuery: (query: string) => void;\n showFilters: () => void;\n showingFilters: boolean;\n}\n\nexport const AcoListContext = React.createContext<\n AcoListContextData<GenericSearchData> | undefined\n>(undefined);\n\nexport interface State {\n after?: string;\n filters?: Record<string, any>;\n folderId?: string;\n isSearch: boolean;\n limit: number;\n listSort: ListSearchRecordsSort;\n searchQuery: string;\n showingFilters: boolean;\n}\n\nconst initializeAcoListState = (): State => {\n return {\n after: undefined,\n filters: undefined,\n folderId: undefined,\n isSearch: false,\n limit: 50,\n listSort: [],\n searchQuery: \"\",\n showingFilters: false\n };\n};\n\nconst getCurrentFolderList = (\n folders?: FolderItem[] | null,\n currentFolderId?: string\n): FolderItem[] | [] => {\n if (!folders) {\n return [];\n }\n if (!currentFolderId || currentFolderId.toLowerCase() === ROOT_FOLDER) {\n return folders.filter(\n folder => !folder.parentId || folder.parentId.toLowerCase() === ROOT_FOLDER\n );\n }\n return folders.filter(folder => folder.parentId === currentFolderId);\n};\n\nconst getCurrentRecordList = <T = GenericSearchData,>(\n records: SearchRecordItem<T>[],\n folderIdPath: string,\n currentFolderId?: string\n): SearchRecordItem<T>[] => {\n if (!records) {\n return [];\n }\n\n if (!currentFolderId) {\n return records;\n }\n\n return records.filter(\n (record): record is SearchRecordItem<T> =>\n dotPropImmutable.get(record, folderIdPath) === currentFolderId\n );\n};\n\nexport interface AcoListProviderProps {\n children: React.ReactNode;\n own?: boolean;\n}\n\nexport const AcoListProvider: React.VFC<AcoListProviderProps> = ({ children, ...props }) => {\n const { identity } = useSecurity();\n const { currentFolderId } = useNavigateFolder();\n const { folderIdPath, folderIdInPath } = useAcoApp();\n const folderContext = useContext(FoldersContext);\n const searchContext = useContext(SearchRecordsContext);\n\n if (!folderContext || !searchContext) {\n throw new Error(\"useAcoList must be used within a ACOProvider\");\n }\n\n const [folders, setFolders] = useState<FolderItem[]>([]);\n const [records, setRecords] = useState<SearchRecordItem[]>([]);\n const [listTitle, setListTitle] = useState<string | undefined>();\n const [state, setState] = useReducer(\n (state: State, newState: Partial<State>) => ({\n ...state,\n ...newState\n }),\n initializeAcoListState()\n );\n\n const {\n folders: originalFolders,\n loading: foldersLoading,\n listFolders,\n getDescendantFolders\n } = folderContext;\n const { records: originalRecords, loading: recordsLoading, listRecords, meta } = searchContext;\n\n /**\n * On first mount, call `listFolders` and `setState`, which will either issue a network request, or load folders and records from cache.\n * We don't need to store the result of it to any local state; that is managed by the context provider.\n *\n * IMPORTANT: we check if the folders[type] array exists: the hook can be used from multiple components and\n * fetch the outdated list from Apollo Cache. Since the state is managed locally, we fetch the folders only\n * at the first mount.\n *\n * We don't call `listRecords` directly, instead we call `setState` making it the only driver to fetch records from the apis.\n */\n useEffect(() => {\n if (!currentFolderId) {\n return;\n }\n\n if (!originalFolders) {\n listFolders();\n }\n\n setState({\n after: undefined,\n filters: undefined,\n folderId: currentFolderId,\n isSearch: false,\n searchQuery: \"\",\n showingFilters: false\n });\n }, [currentFolderId]);\n\n /**\n * Any time we receive a `folders` list update:\n * - we set an empty array in case of search;\n * - we set the list filtered by the current `type` and parent `folderId`, sorted according to the current `sort` value;\n * - we set the current folder name.\n */\n useEffect(() => {\n const currentFolder = originalFolders?.find(\n folder => folder.id === (state.folderId || ROOT_FOLDER)\n );\n\n setListTitle(currentFolder?.title);\n\n if (state.isSearch) {\n setFolders([]);\n return;\n }\n\n const subFolders = getCurrentFolderList(originalFolders, state.folderId);\n setFolders(() => {\n return sortTableItems(subFolders, state.listSort);\n });\n }, [originalFolders, state.folderId, state.isSearch]);\n\n /**\n * Any time we receive a `records` list or `folderId` update:\n * - we set all `records` in case of search query;\n * - we set the `records` list filtered by the current `folderId`.\n */\n useEffect(() => {\n if (state.isSearch) {\n setRecords(originalRecords as SearchRecordItem[]);\n return;\n }\n\n const subRecords = getCurrentRecordList(\n originalRecords as SearchRecordItem[],\n folderIdPath,\n state.folderId\n );\n setRecords(subRecords);\n }, [originalRecords, state.folderId, state.isSearch]);\n\n /**\n * Any time we receive a new `sort` value:\n * - we sort the current `folders` list according to `sorting` value;\n */\n useEffect(() => {\n setFolders(prev => {\n return sortTableItems(prev, state.listSort);\n });\n }, [state.listSort]);\n\n /**\n * Utility function to list/load more records, the `meta` state is tracked internally.\n */\n const listMoreRecords = useCallback(() => {\n const { hasMoreItems, cursor } = meta;\n if (hasMoreItems && cursor) {\n setState({ after: cursor });\n }\n }, [meta]);\n\n /**\n * Any time we receive new useful `state` params:\n * - we fetch records according to the new params\n */\n useEffect(() => {\n const listItems = async () => {\n if (!state.folderId) {\n return;\n }\n\n const isSearch = Boolean(\n state.searchQuery ||\n (state.filters && Object.values(state.filters).filter(Boolean).length)\n );\n\n let locationWhere = dotPropImmutable.set({}, folderIdPath, state.folderId);\n\n if (isSearch) {\n if (state.folderId === ROOT_FOLDER) {\n locationWhere = undefined;\n } else {\n const descendantFolderIds = getDescendantFolders(state.folderId).map(\n folder => folder.id\n );\n locationWhere = dotPropImmutable.set({}, folderIdInPath, descendantFolderIds);\n }\n }\n\n const params: ListSearchRecordsQueryVariables = {\n limit: state.limit,\n sort: validateOrGetDefaultDbSort(state.listSort),\n search: state.searchQuery,\n after: state.after,\n where: {\n createdBy: props.own ? identity!.id : undefined,\n ...locationWhere,\n ...state.filters\n }\n };\n\n await listRecords(params);\n\n setState({ isSearch });\n };\n\n listItems();\n }, [state.folderId, state.filters, state.searchQuery, state.after, state.listSort]);\n\n const context: AcoListContextData<GenericSearchData> = {\n ...pick(state, [\"isSearch\", \"showingFilters\"]),\n folders,\n records,\n listTitle,\n isListLoading: Boolean(\n recordsLoading.INIT || foldersLoading.INIT || recordsLoading.LIST || foldersLoading.LIST\n ),\n isListLoadingMore: Boolean(recordsLoading.LIST_MORE),\n meta,\n setSearchQuery(query) {\n setState({ searchQuery: query, after: undefined });\n },\n setFilters(data) {\n setState({ filters: data, after: undefined });\n },\n setListSort(sort: ListSearchRecordsSort) {\n setState({ listSort: sort, after: undefined });\n },\n hideFilters() {\n setState({ filters: undefined, showingFilters: false, after: undefined });\n },\n showFilters() {\n setState({ showingFilters: true });\n },\n listMoreRecords\n };\n\n return <AcoListContext.Provider value={context}>{children}</AcoListContext.Provider>;\n};\n"],"mappings":"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"}
|
package/contexts/records.js
CHANGED
|
@@ -9,10 +9,9 @@ exports.SearchRecordsProvider = exports.SearchRecordsContext = void 0;
|
|
|
9
9
|
var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime"));
|
|
10
10
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
11
11
|
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
12
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
13
12
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
13
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
14
14
|
var _react = _interopRequireWildcard(require("react"));
|
|
15
|
-
var _dotPropImmutable = _interopRequireDefault(require("dot-prop-immutable"));
|
|
16
15
|
var _sortBy = _interopRequireDefault(require("lodash/sortBy"));
|
|
17
16
|
var _unionBy = _interopRequireDefault(require("lodash/unionBy"));
|
|
18
17
|
var _handlers = require("../handlers");
|
|
@@ -32,32 +31,6 @@ var defaultLoading = {
|
|
|
32
31
|
UPDATE: false,
|
|
33
32
|
DELETE: false
|
|
34
33
|
};
|
|
35
|
-
var mergeRecords = function mergeRecords(oldRecords, newRecords) {
|
|
36
|
-
if (!newRecords.length) {
|
|
37
|
-
return oldRecords;
|
|
38
|
-
}
|
|
39
|
-
var mergedRecords = newRecords.reduce(function (items, record) {
|
|
40
|
-
var index = items.findIndex(function (item) {
|
|
41
|
-
return item.id === record.id;
|
|
42
|
-
});
|
|
43
|
-
if (index === -1) {
|
|
44
|
-
items.push(record);
|
|
45
|
-
return items;
|
|
46
|
-
}
|
|
47
|
-
items[index] = record;
|
|
48
|
-
return items;
|
|
49
|
-
}, (0, _toConsumableArray2.default)(oldRecords)); // merge the two arrays
|
|
50
|
-
|
|
51
|
-
return (0, _sortBy.default)(mergedRecords, ["title"]);
|
|
52
|
-
};
|
|
53
|
-
var getRecordCount = function getRecordCount(records, folderIdPath, folderId) {
|
|
54
|
-
if (!folderId) {
|
|
55
|
-
return records.length;
|
|
56
|
-
}
|
|
57
|
-
return records.filter(function (record) {
|
|
58
|
-
return _dotPropImmutable.default.get(record, folderIdPath) === folderId;
|
|
59
|
-
}).length;
|
|
60
|
-
};
|
|
61
34
|
var mergeAndSortTags = function mergeAndSortTags(oldTagItems, newTags) {
|
|
62
35
|
if (!newTags.length) {
|
|
63
36
|
return oldTagItems;
|
|
@@ -88,8 +61,7 @@ var SearchRecordsProvider = function SearchRecordsProvider(_ref) {
|
|
|
88
61
|
var _useAcoApp = (0, _hooks.useAcoApp)(),
|
|
89
62
|
app = _useAcoApp.app,
|
|
90
63
|
client = _useAcoApp.client,
|
|
91
|
-
mode = _useAcoApp.mode
|
|
92
|
-
folderIdPath = _useAcoApp.folderIdPath;
|
|
64
|
+
mode = _useAcoApp.mode;
|
|
93
65
|
var model = app.model;
|
|
94
66
|
var _useState = (0, _react.useState)([]),
|
|
95
67
|
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
@@ -162,31 +134,25 @@ var SearchRecordsProvider = function SearchRecordsProvider(_ref) {
|
|
|
162
134
|
},
|
|
163
135
|
listRecords: function listRecords(params) {
|
|
164
136
|
return (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee() {
|
|
165
|
-
var after, limit, sorting, search, where,
|
|
137
|
+
var after, limit, sorting, search, where, totalCount, action, sort, _yield$apolloFetching, response, _getResponseData, data, responseMeta, error;
|
|
166
138
|
return (0, _regeneratorRuntime2.default)().wrap(function _callee$(_context) {
|
|
167
139
|
while (1) switch (_context.prev = _context.next) {
|
|
168
140
|
case 0:
|
|
169
141
|
after = params.after, limit = params.limit, sorting = params.sort, search = params.search, where = params.where;
|
|
170
|
-
folderId = _dotPropImmutable.default.get(where, folderIdPath);
|
|
171
142
|
/**
|
|
172
143
|
* Avoiding to fetch records in case they have already been fetched.
|
|
173
144
|
* This happens when visiting a list with all records loaded and receives "after" param.
|
|
174
145
|
*/
|
|
175
|
-
recordsCount = getRecordCount(records, folderIdPath, folderId);
|
|
176
146
|
totalCount = (meta === null || meta === void 0 ? void 0 : meta.totalCount) || 0;
|
|
177
|
-
if (!(after &&
|
|
178
|
-
_context.next =
|
|
147
|
+
if (!(after && records.length === totalCount)) {
|
|
148
|
+
_context.next = 4;
|
|
179
149
|
break;
|
|
180
150
|
}
|
|
181
151
|
return _context.abrupt("return", records);
|
|
182
|
-
case
|
|
183
|
-
// Remove records in case of sorting change and not a paginated request.
|
|
184
|
-
if (sorting && !after) {
|
|
185
|
-
setRecords([]);
|
|
186
|
-
}
|
|
152
|
+
case 4:
|
|
187
153
|
action = after ? "LIST_MORE" : "LIST";
|
|
188
154
|
sort = (0, _sorting.validateOrGetDefaultDbSort)(sorting);
|
|
189
|
-
_context.next =
|
|
155
|
+
_context.next = 8;
|
|
190
156
|
return (0, _handlers.apolloFetchingHandler)((0, _handlers.loadingHandler)(action, setLoading), function () {
|
|
191
157
|
var variables = {
|
|
192
158
|
where: where,
|
|
@@ -201,28 +167,33 @@ var SearchRecordsProvider = function SearchRecordsProvider(_ref) {
|
|
|
201
167
|
fetchPolicy: "network-only"
|
|
202
168
|
});
|
|
203
169
|
});
|
|
204
|
-
case
|
|
170
|
+
case 8:
|
|
205
171
|
_yield$apolloFetching = _context.sent;
|
|
206
172
|
response = _yield$apolloFetching.data;
|
|
207
173
|
if (response) {
|
|
208
|
-
_context.next =
|
|
174
|
+
_context.next = 12;
|
|
209
175
|
break;
|
|
210
176
|
}
|
|
211
177
|
throw new Error("Could not fetch records - no response.");
|
|
212
|
-
case
|
|
178
|
+
case 12:
|
|
213
179
|
_getResponseData = getResponseData(response, mode), data = _getResponseData.data, responseMeta = _getResponseData.meta, error = _getResponseData.error;
|
|
214
180
|
if (!(!data || !responseMeta)) {
|
|
215
|
-
_context.next =
|
|
181
|
+
_context.next = 15;
|
|
216
182
|
break;
|
|
217
183
|
}
|
|
218
184
|
throw new Error((error === null || error === void 0 ? void 0 : error.message) || "Could not fetch records.");
|
|
219
|
-
case
|
|
185
|
+
case 15:
|
|
220
186
|
setRecords(function (prev) {
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
187
|
+
// If no data received, return the previous state
|
|
188
|
+
if (!data.length) {
|
|
189
|
+
return prev;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
// If there's no cursor, it means we're receiving a new list of records from scratch.
|
|
193
|
+
if (!after) {
|
|
194
|
+
return data;
|
|
195
|
+
}
|
|
196
|
+
return [].concat((0, _toConsumableArray2.default)(prev), (0, _toConsumableArray2.default)(data));
|
|
226
197
|
});
|
|
227
198
|
setMeta(function () {
|
|
228
199
|
return responseMeta;
|
|
@@ -233,7 +204,7 @@ var SearchRecordsProvider = function SearchRecordsProvider(_ref) {
|
|
|
233
204
|
});
|
|
234
205
|
});
|
|
235
206
|
return _context.abrupt("return", data);
|
|
236
|
-
case
|
|
207
|
+
case 19:
|
|
237
208
|
case "end":
|
|
238
209
|
return _context.stop();
|
|
239
210
|
}
|
package/contexts/records.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_dotPropImmutable","_interopRequireDefault","_sortBy","_unionBy","_handlers","_records","_sorting","_hooks","_utils","SearchRecordsContext","React","createContext","undefined","exports","defaultLoading","INIT","LIST","LIST_MORE","GET","MOVE","CREATE","UPDATE","DELETE","mergeRecords","oldRecords","newRecords","length","mergedRecords","reduce","items","record","index","findIndex","item","id","push","_toConsumableArray2","default","sortBy","getRecordCount","records","folderIdPath","folderId","filter","dotPropImmutable","get","mergeAndSortTags","oldTagItems","newTags","newTagItems","map","tag","mergedTagItems","unionBy","getResponseData","response","mode","_response$search","content","search","defaultMeta","totalCount","hasMoreItems","cursor","SearchRecordsProvider","_ref","children","_useAcoApp","useAcoApp","app","client","model","_useState","useState","_useState2","_slicedToArray2","setRecords","_useState3","_useState4","tags","setTags","_useState5","_useState6","loading","setLoading","_useState7","Object","create","_useState8","meta","setMeta","_useMemo","useMemo","LIST_RECORDS","createListRecords","UPDATE_RECORD","createUpdateRecord","MOVE_RECORD","createMoveRecord","GET_RECORD","createGetRecord","LIST_TAGS","createListTags","DELETE_RECORD","createDeleteRecord","CREATE_RECORD","createCreateRecord","modelId","context","addRecordToCache","prev","concat","updateRecordInCache","_parseIdentifier","parseIdentifier","recordId","_parseIdentifier2","itemId","next","_objectSpread2","removeRecordFromCache","listRecords","params","_asyncToGenerator2","_regeneratorRuntime2","mark","_callee","after","limit","sorting","where","recordsCount","action","sort","_yield$apolloFetching","_getResponseData","data","responseMeta","error","wrap","_callee$","_context","abrupt","validateOrGetDefaultDbSort","apolloFetchingHandler","loadingHandler","variables","query","fetchPolicy","sent","Error","message","sortTableItems","stop","getRecord","_callee2","_yield$apolloFetching2","_getResponseData2","_callee2$","_context2","code","createRecord","_callee3","_yield$apolloFetching3","_getResponseData3","_callee3$","_context3","mutate","mutation","updateRecord","contextFolderId","_callee4","location","title","_yield$apolloFetching4","_getResponseData4","result","_callee4$","_context4","moveRecord","_moveRecord","_callee5","_yield$apolloFetching5","_getResponseData5","_callee5$","_context5","_x","apply","arguments","deleteRecord","_callee6","_yield$apolloFetching6","_getResponseData6","_callee6$","_context6","listTags","_callee7","_yield$apolloFetching7","_getResponseData7","_callee7$","_context7","createElement","Provider","value"],"sources":["records.tsx"],"sourcesContent":["import React, { ReactNode, useMemo, useState } from \"react\";\nimport dotPropImmutable from \"dot-prop-immutable\";\nimport sortBy from \"lodash/sortBy\";\nimport unionBy from \"lodash/unionBy\";\nimport { apolloFetchingHandler, loadingHandler } from \"~/handlers\";\nimport {\n createCreateRecord,\n createDeleteRecord,\n createGetRecord,\n createListRecords,\n createListTags,\n createMoveRecord,\n createUpdateRecord\n} from \"~/graphql/records.gql\";\nimport {\n AcoAppMode,\n CreateSearchRecordResponse,\n CreateSearchRecordVariables,\n DeletableSearchRecordItem,\n DeleteSearchRecordResponse,\n DeleteSearchRecordVariables,\n GetSearchRecordQueryVariables,\n GetSearchRecordResponse,\n ListMeta,\n ListSearchRecordsQueryVariables,\n ListSearchRecordsResponse,\n ListTagsQueryVariables,\n ListTagsResponse,\n ListTagsWhereQueryVariables,\n Loading,\n LoadingActions,\n MovableSearchRecordItem,\n MoveSearchRecordResponse,\n MoveSearchRecordVariables,\n SearchRecordItem,\n TagItem,\n UpdateSearchRecordResponse,\n UpdateSearchRecordVariables\n} from \"~/types\";\nimport { sortTableItems, validateOrGetDefaultDbSort } from \"~/sorting\";\nimport { useAcoApp } from \"~/hooks\";\nimport { parseIdentifier } from \"@webiny/utils\";\n\ninterface ListTagsParams {\n where?: ListTagsWhereQueryVariables;\n}\n\nexport type ListRecordsParams = ListSearchRecordsQueryVariables;\n\ninterface SearchRecordsContext {\n records: SearchRecordItem[];\n tags: TagItem[];\n loading: Loading<LoadingActions>;\n meta: ListMeta;\n listRecords: (params: ListRecordsParams) => Promise<SearchRecordItem[]>;\n getRecord: (id: string) => Promise<SearchRecordItem | null>;\n createRecord: (record: Omit<SearchRecordItem, \"id\">) => Promise<SearchRecordItem>;\n updateRecord: (record: SearchRecordItem, contextFolderId?: string) => Promise<SearchRecordItem>;\n moveRecord: (record: MovableSearchRecordItem) => Promise<void>;\n deleteRecord(record: DeletableSearchRecordItem): Promise<true>;\n listTags: (params: ListTagsParams) => Promise<TagItem[]>;\n addRecordToCache: (record: any) => void;\n updateRecordInCache: (record: any) => void;\n removeRecordFromCache: (id: string) => void;\n}\n\nexport const SearchRecordsContext = React.createContext<SearchRecordsContext | undefined>(\n undefined\n);\n\ninterface Props {\n children: ReactNode;\n}\n\nconst defaultLoading: Record<LoadingActions, boolean> = {\n INIT: true,\n LIST: false,\n LIST_MORE: false,\n GET: false,\n MOVE: false,\n CREATE: false,\n UPDATE: false,\n DELETE: false\n};\n\nconst mergeRecords = (\n oldRecords: SearchRecordItem[],\n newRecords: SearchRecordItem[]\n): SearchRecordItem[] => {\n if (!newRecords.length) {\n return oldRecords;\n }\n\n const mergedRecords = newRecords.reduce(\n (items, record) => {\n const index = items.findIndex(item => item.id === record.id);\n if (index === -1) {\n items.push(record);\n return items;\n }\n items[index] = record;\n return items;\n },\n [...oldRecords]\n ); // merge the two arrays\n\n return sortBy(mergedRecords, [\"title\"]);\n};\n\nconst getRecordCount = (\n records: SearchRecordItem[],\n folderIdPath: string,\n folderId?: string | null\n) => {\n if (!folderId) {\n return records.length;\n }\n return records.filter(record => dotPropImmutable.get(record, folderIdPath) === folderId).length;\n};\n\nconst mergeAndSortTags = (oldTagItems: TagItem[], newTags: string[]): TagItem[] => {\n if (!newTags.length) {\n return oldTagItems;\n }\n\n const newTagItems = newTags.map((tag: string) => ({ tag })); // create TagItem[] from array of strings\n const mergedTagItems = unionBy(oldTagItems, newTagItems, \"tag\"); // merge the two arrays\n\n return sortBy(mergedTagItems, [\"tag\"]);\n};\n\nconst getResponseData = (response: any, mode: AcoAppMode): any => {\n if (mode === \"cms\") {\n return response?.content || {};\n }\n return response.search?.content || {};\n};\n\nconst defaultMeta: ListMeta = {\n totalCount: 0,\n hasMoreItems: false,\n cursor: null\n};\n\nexport const SearchRecordsProvider: React.VFC<Props> = ({ children }) => {\n const { app, client, mode, folderIdPath } = useAcoApp();\n const { model } = app;\n\n const [records, setRecords] = useState<SearchRecordItem[]>([]);\n const [tags, setTags] = useState<TagItem[]>([]);\n const [loading, setLoading] = useState<Loading<LoadingActions>>(defaultLoading);\n const [meta, setMeta] = useState<ListMeta>(Object.create(defaultMeta));\n\n const {\n GET_RECORD,\n LIST_RECORDS,\n UPDATE_RECORD,\n MOVE_RECORD,\n DELETE_RECORD,\n CREATE_RECORD,\n LIST_TAGS\n } = useMemo(() => {\n return {\n LIST_RECORDS: createListRecords(model, mode),\n UPDATE_RECORD: createUpdateRecord(model, mode),\n MOVE_RECORD: createMoveRecord(model, mode),\n GET_RECORD: createGetRecord(model, mode),\n LIST_TAGS: createListTags(model, mode),\n DELETE_RECORD: createDeleteRecord(model, mode),\n CREATE_RECORD: createCreateRecord(model, mode)\n };\n }, [app.id, model.modelId]);\n\n const context = useMemo<SearchRecordsContext>(() => {\n return {\n records,\n tags,\n loading,\n meta,\n addRecordToCache: (record: any) => {\n setRecords(prev => {\n return [record, ...prev];\n });\n },\n updateRecordInCache: (record: any) => {\n const { id: recordId } = parseIdentifier(record.id);\n const index = records.findIndex(item => {\n const { id: itemId } = parseIdentifier(item.id);\n return itemId === recordId;\n });\n if (index === -1) {\n return;\n }\n setRecords(prev => {\n const next = [...prev];\n\n next[index] = {\n ...prev[index],\n ...record\n };\n\n return next;\n });\n },\n removeRecordFromCache: (id: string) => {\n setRecords(prev => {\n return prev.filter(record => record.id !== id);\n });\n },\n\n async listRecords(params) {\n const { after, limit, sort: sorting, search, where } = params;\n\n const folderId = dotPropImmutable.get(where, folderIdPath);\n\n /**\n * Avoiding to fetch records in case they have already been fetched.\n * This happens when visiting a list with all records loaded and receives \"after\" param.\n */\n const recordsCount = getRecordCount(records, folderIdPath, folderId);\n const totalCount = meta?.totalCount || 0;\n if (after && recordsCount === totalCount) {\n return records;\n }\n\n // Remove records in case of sorting change and not a paginated request.\n if (sorting && !after) {\n setRecords([]);\n }\n\n const action = after ? \"LIST_MORE\" : \"LIST\";\n const sort = validateOrGetDefaultDbSort(sorting);\n\n const { data: response } = await apolloFetchingHandler<ListSearchRecordsResponse>(\n loadingHandler(action, setLoading),\n () => {\n const variables: ListSearchRecordsQueryVariables = {\n where,\n search,\n limit,\n after,\n sort\n };\n return client.query<\n ListSearchRecordsResponse,\n ListSearchRecordsQueryVariables\n >({\n query: LIST_RECORDS,\n variables,\n fetchPolicy: \"network-only\"\n });\n }\n );\n\n if (!response) {\n throw new Error(\"Could not fetch records - no response.\");\n }\n\n const { data, meta: responseMeta, error } = getResponseData(response, mode);\n\n if (!data || !responseMeta) {\n throw new Error(error?.message || \"Could not fetch records.\");\n }\n\n setRecords(prev => {\n /**\n * In case of paginated request, we merge the fetched records with the existing ones, and then sort them.\n * Otherwise, we sort the fetched records and set them as the new records.\n */\n return sortTableItems(mergeRecords(after ? prev : [], data), sort);\n });\n\n setMeta(() => responseMeta);\n\n setLoading(prev => {\n return {\n ...prev,\n INIT: false\n };\n });\n\n return data;\n },\n async getRecord(id) {\n if (!id) {\n throw new Error(\"Record `id` is mandatory\");\n }\n\n const { data: response } = await apolloFetchingHandler<GetSearchRecordResponse>(\n loadingHandler(\"GET\", setLoading),\n () =>\n client.query<GetSearchRecordResponse, GetSearchRecordQueryVariables>({\n query: GET_RECORD,\n variables: { id },\n fetchPolicy: \"network-only\"\n })\n );\n\n if (!response) {\n throw new Error(`Could not fetch record \"${id}\" - no response.`);\n }\n\n const { data, error } = getResponseData(response, mode);\n\n if (error && error.code !== \"NOT_FOUND\") {\n throw new Error(\"Network error while syncing record\");\n }\n\n if (!data) {\n // No record found - must be deleted by previous operation\n setRecords(prev => {\n return prev.filter(record => record.id !== id);\n });\n return data;\n }\n setRecords(prev => {\n const index = prev.findIndex(record => record.id === id);\n\n // No record found in the list - must be added by previous operation\n if (index === -1) {\n return [data, ...prev];\n }\n const next = [...prev];\n next[index] = data;\n return next;\n });\n\n setTags(tags => {\n if (!data.tags || data.tags.length === 0) {\n return tags;\n }\n\n return mergeAndSortTags(tags, data.tags);\n });\n\n return data;\n },\n async createRecord(record) {\n if (!CREATE_RECORD) {\n throw new Error(\"Missing CREATE_RECORD operation.\");\n }\n\n const { data: response } = await apolloFetchingHandler<CreateSearchRecordResponse>(\n loadingHandler(\"CREATE\", setLoading),\n () =>\n client.mutate<CreateSearchRecordResponse, CreateSearchRecordVariables>({\n mutation: CREATE_RECORD,\n variables: {\n data: record\n }\n })\n );\n\n if (!response) {\n throw new Error(\"Network error while creating search record.\");\n }\n\n const { data, error } = getResponseData(response, mode);\n\n if (!data) {\n throw new Error(error?.message || \"Could not create record\");\n }\n\n setRecords(prev => {\n return [...prev, data];\n });\n\n setMeta(meta => ({\n ...meta,\n totalCount: ++meta.totalCount\n }));\n\n setTags(tags => {\n if (!data.tags || data.tags.length === 0) {\n return tags;\n }\n\n return mergeAndSortTags(tags, data.tags);\n });\n\n return data;\n },\n async updateRecord(record, contextFolderId) {\n if (!contextFolderId) {\n throw new Error(\"`folderId` is mandatory\");\n }\n if (!UPDATE_RECORD) {\n throw new Error(\"Missing UPDATE_RECORD operation.\");\n }\n\n const { id, location, data, title, content } = record;\n\n const { data: response } = await apolloFetchingHandler(\n loadingHandler(\"UPDATE\", setLoading),\n () =>\n client.mutate<UpdateSearchRecordResponse, UpdateSearchRecordVariables>({\n mutation: UPDATE_RECORD,\n variables: { id, data: { title, content, location, data } }\n })\n );\n\n if (!response) {\n throw new Error(\"Network error while updating record\");\n }\n\n const { data: result, error } = getResponseData(response, mode);\n\n if (!result) {\n throw new Error(error?.message || \"Could not update record\");\n }\n\n setRecords(records => {\n const index = records.findIndex(record => record.id === id);\n if (index === -1) {\n return [result, ...records];\n }\n\n const next = [...records];\n\n next[index] = result;\n\n return next;\n });\n\n setTags(tags => {\n if (!data.tags || data.tags.length === 0) {\n return tags;\n }\n\n return mergeAndSortTags(tags, data.tags);\n });\n\n return result;\n },\n moveRecord: async (record: MovableSearchRecordItem) => {\n const { id, location } = record;\n const { folderId } = location;\n\n const { data: response } = await apolloFetchingHandler(\n loadingHandler(\"MOVE\", setLoading),\n () =>\n client.mutate<MoveSearchRecordResponse, MoveSearchRecordVariables>({\n mutation: MOVE_RECORD,\n variables: {\n id,\n folderId\n }\n })\n );\n\n if (!response) {\n throw new Error(\"Network error while moving record.\");\n }\n\n const { data, error } = getResponseData(response, mode);\n\n if (!data) {\n throw new Error(error?.message || \"Could not move record.\");\n }\n setRecords(prev => {\n return prev.filter(record => record.id !== id);\n });\n setMeta(meta => ({\n ...meta,\n totalCount: --meta.totalCount\n }));\n },\n async deleteRecord(record) {\n if (!DELETE_RECORD) {\n throw new Error(\"Missing DELETE_RECORD operation.\");\n }\n const { id } = record;\n\n const { data: response } = await apolloFetchingHandler(\n loadingHandler(\"DELETE\", setLoading),\n () =>\n client.mutate<DeleteSearchRecordResponse, DeleteSearchRecordVariables>({\n mutation: DELETE_RECORD,\n variables: { id }\n })\n );\n\n if (!response) {\n throw new Error(\"Network error while deleting record.\");\n }\n\n const { data, error } = getResponseData(response, mode);\n\n if (!data) {\n throw new Error(error?.message || \"Could not delete record\");\n }\n\n setRecords(prev => {\n return prev.filter(record => record.id !== id);\n });\n\n setMeta(meta => ({\n ...meta,\n totalCount: --meta.totalCount\n }));\n\n return true;\n },\n async listTags(params) {\n if (!LIST_TAGS) {\n throw new Error(\"Missing LIST_TAGS operation.\");\n }\n\n const { data: response } = await apolloFetchingHandler(\n loadingHandler(\"LIST\", setLoading),\n () =>\n client.query<ListTagsResponse, ListTagsQueryVariables>({\n query: LIST_TAGS,\n variables: {\n where: params.where\n }\n })\n );\n\n if (!response) {\n throw new Error(\"Network error while fetching tags.\");\n }\n\n const { data, error } = getResponseData(response, mode);\n\n if (!data) {\n throw new Error(error?.message || \"Could not fetch tags\");\n }\n\n setTags(data);\n\n return data;\n }\n };\n }, [\n app.id,\n model.modelId,\n records,\n setRecords,\n tags,\n meta,\n loading,\n GET_RECORD,\n LIST_RECORDS,\n UPDATE_RECORD,\n DELETE_RECORD,\n MOVE_RECORD,\n CREATE_RECORD,\n LIST_TAGS\n ]);\n\n return (\n <SearchRecordsContext.Provider value={context}>{children}</SearchRecordsContext.Provider>\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_sortBy","_interopRequireDefault","_unionBy","_handlers","_records","_sorting","_hooks","_utils","SearchRecordsContext","React","createContext","undefined","exports","defaultLoading","INIT","LIST","LIST_MORE","GET","MOVE","CREATE","UPDATE","DELETE","mergeAndSortTags","oldTagItems","newTags","length","newTagItems","map","tag","mergedTagItems","unionBy","sortBy","getResponseData","response","mode","_response$search","content","search","defaultMeta","totalCount","hasMoreItems","cursor","SearchRecordsProvider","_ref","children","_useAcoApp","useAcoApp","app","client","model","_useState","useState","_useState2","_slicedToArray2","default","records","setRecords","_useState3","_useState4","tags","setTags","_useState5","_useState6","loading","setLoading","_useState7","Object","create","_useState8","meta","setMeta","_useMemo","useMemo","LIST_RECORDS","createListRecords","UPDATE_RECORD","createUpdateRecord","MOVE_RECORD","createMoveRecord","GET_RECORD","createGetRecord","LIST_TAGS","createListTags","DELETE_RECORD","createDeleteRecord","CREATE_RECORD","createCreateRecord","id","modelId","context","addRecordToCache","record","prev","concat","_toConsumableArray2","updateRecordInCache","_parseIdentifier","parseIdentifier","recordId","index","findIndex","item","_parseIdentifier2","itemId","next","_objectSpread2","removeRecordFromCache","filter","listRecords","params","_asyncToGenerator2","_regeneratorRuntime2","mark","_callee","after","limit","sorting","where","action","sort","_yield$apolloFetching","_getResponseData","data","responseMeta","error","wrap","_callee$","_context","abrupt","validateOrGetDefaultDbSort","apolloFetchingHandler","loadingHandler","variables","query","fetchPolicy","sent","Error","message","stop","getRecord","_callee2","_yield$apolloFetching2","_getResponseData2","_callee2$","_context2","code","createRecord","_callee3","_yield$apolloFetching3","_getResponseData3","_callee3$","_context3","mutate","mutation","updateRecord","contextFolderId","_callee4","location","title","_yield$apolloFetching4","_getResponseData4","result","_callee4$","_context4","moveRecord","_moveRecord","_callee5","folderId","_yield$apolloFetching5","_getResponseData5","_callee5$","_context5","_x","apply","arguments","deleteRecord","_callee6","_yield$apolloFetching6","_getResponseData6","_callee6$","_context6","listTags","_callee7","_yield$apolloFetching7","_getResponseData7","_callee7$","_context7","createElement","Provider","value"],"sources":["records.tsx"],"sourcesContent":["import React, { ReactNode, useMemo, useState } from \"react\";\nimport sortBy from \"lodash/sortBy\";\nimport unionBy from \"lodash/unionBy\";\nimport { apolloFetchingHandler, loadingHandler } from \"~/handlers\";\nimport {\n createCreateRecord,\n createDeleteRecord,\n createGetRecord,\n createListRecords,\n createListTags,\n createMoveRecord,\n createUpdateRecord\n} from \"~/graphql/records.gql\";\nimport {\n AcoAppMode,\n CreateSearchRecordResponse,\n CreateSearchRecordVariables,\n DeletableSearchRecordItem,\n DeleteSearchRecordResponse,\n DeleteSearchRecordVariables,\n GetSearchRecordQueryVariables,\n GetSearchRecordResponse,\n ListMeta,\n ListSearchRecordsQueryVariables,\n ListSearchRecordsResponse,\n ListTagsQueryVariables,\n ListTagsResponse,\n ListTagsWhereQueryVariables,\n Loading,\n LoadingActions,\n MovableSearchRecordItem,\n MoveSearchRecordResponse,\n MoveSearchRecordVariables,\n SearchRecordItem,\n TagItem,\n UpdateSearchRecordResponse,\n UpdateSearchRecordVariables\n} from \"~/types\";\nimport { validateOrGetDefaultDbSort } from \"~/sorting\";\nimport { useAcoApp } from \"~/hooks\";\nimport { parseIdentifier } from \"@webiny/utils\";\n\ninterface ListTagsParams {\n where?: ListTagsWhereQueryVariables;\n}\n\nexport type ListRecordsParams = ListSearchRecordsQueryVariables;\n\ninterface SearchRecordsContext {\n records: SearchRecordItem[];\n tags: TagItem[];\n loading: Loading<LoadingActions>;\n meta: ListMeta;\n listRecords: (params: ListRecordsParams) => Promise<SearchRecordItem[]>;\n getRecord: (id: string) => Promise<SearchRecordItem | null>;\n createRecord: (record: Omit<SearchRecordItem, \"id\">) => Promise<SearchRecordItem>;\n updateRecord: (record: SearchRecordItem, contextFolderId?: string) => Promise<SearchRecordItem>;\n moveRecord: (record: MovableSearchRecordItem) => Promise<void>;\n deleteRecord(record: DeletableSearchRecordItem): Promise<true>;\n listTags: (params: ListTagsParams) => Promise<TagItem[]>;\n addRecordToCache: (record: any) => void;\n updateRecordInCache: (record: any) => void;\n removeRecordFromCache: (id: string) => void;\n}\n\nexport const SearchRecordsContext = React.createContext<SearchRecordsContext | undefined>(\n undefined\n);\n\ninterface Props {\n children: ReactNode;\n}\n\nconst defaultLoading: Record<LoadingActions, boolean> = {\n INIT: true,\n LIST: false,\n LIST_MORE: false,\n GET: false,\n MOVE: false,\n CREATE: false,\n UPDATE: false,\n DELETE: false\n};\n\nconst mergeAndSortTags = (oldTagItems: TagItem[], newTags: string[]): TagItem[] => {\n if (!newTags.length) {\n return oldTagItems;\n }\n\n const newTagItems = newTags.map((tag: string) => ({ tag })); // create TagItem[] from array of strings\n const mergedTagItems = unionBy(oldTagItems, newTagItems, \"tag\"); // merge the two arrays\n\n return sortBy(mergedTagItems, [\"tag\"]);\n};\n\nconst getResponseData = (response: any, mode: AcoAppMode): any => {\n if (mode === \"cms\") {\n return response?.content || {};\n }\n return response.search?.content || {};\n};\n\nconst defaultMeta: ListMeta = {\n totalCount: 0,\n hasMoreItems: false,\n cursor: null\n};\n\nexport const SearchRecordsProvider: React.VFC<Props> = ({ children }) => {\n const { app, client, mode } = useAcoApp();\n const { model } = app;\n\n const [records, setRecords] = useState<SearchRecordItem[]>([]);\n const [tags, setTags] = useState<TagItem[]>([]);\n const [loading, setLoading] = useState<Loading<LoadingActions>>(defaultLoading);\n const [meta, setMeta] = useState<ListMeta>(Object.create(defaultMeta));\n\n const {\n GET_RECORD,\n LIST_RECORDS,\n UPDATE_RECORD,\n MOVE_RECORD,\n DELETE_RECORD,\n CREATE_RECORD,\n LIST_TAGS\n } = useMemo(() => {\n return {\n LIST_RECORDS: createListRecords(model, mode),\n UPDATE_RECORD: createUpdateRecord(model, mode),\n MOVE_RECORD: createMoveRecord(model, mode),\n GET_RECORD: createGetRecord(model, mode),\n LIST_TAGS: createListTags(model, mode),\n DELETE_RECORD: createDeleteRecord(model, mode),\n CREATE_RECORD: createCreateRecord(model, mode)\n };\n }, [app.id, model.modelId]);\n\n const context = useMemo<SearchRecordsContext>(() => {\n return {\n records,\n tags,\n loading,\n meta,\n addRecordToCache: (record: any) => {\n setRecords(prev => {\n return [record, ...prev];\n });\n },\n updateRecordInCache: (record: any) => {\n const { id: recordId } = parseIdentifier(record.id);\n const index = records.findIndex(item => {\n const { id: itemId } = parseIdentifier(item.id);\n return itemId === recordId;\n });\n if (index === -1) {\n return;\n }\n setRecords(prev => {\n const next = [...prev];\n\n next[index] = {\n ...prev[index],\n ...record\n };\n\n return next;\n });\n },\n removeRecordFromCache: (id: string) => {\n setRecords(prev => {\n return prev.filter(record => record.id !== id);\n });\n },\n\n async listRecords(params) {\n const { after, limit, sort: sorting, search, where } = params;\n\n /**\n * Avoiding to fetch records in case they have already been fetched.\n * This happens when visiting a list with all records loaded and receives \"after\" param.\n */\n const totalCount = meta?.totalCount || 0;\n if (after && records.length === totalCount) {\n return records;\n }\n\n const action = after ? \"LIST_MORE\" : \"LIST\";\n const sort = validateOrGetDefaultDbSort(sorting);\n\n const { data: response } = await apolloFetchingHandler<ListSearchRecordsResponse>(\n loadingHandler(action, setLoading),\n () => {\n const variables: ListSearchRecordsQueryVariables = {\n where,\n search,\n limit,\n after,\n sort\n };\n return client.query<\n ListSearchRecordsResponse,\n ListSearchRecordsQueryVariables\n >({\n query: LIST_RECORDS,\n variables,\n fetchPolicy: \"network-only\"\n });\n }\n );\n\n if (!response) {\n throw new Error(\"Could not fetch records - no response.\");\n }\n\n const { data, meta: responseMeta, error } = getResponseData(response, mode);\n\n if (!data || !responseMeta) {\n throw new Error(error?.message || \"Could not fetch records.\");\n }\n\n setRecords(prev => {\n // If no data received, return the previous state\n if (!data.length) {\n return prev;\n }\n\n // If there's no cursor, it means we're receiving a new list of records from scratch.\n if (!after) {\n return data;\n }\n\n return [...prev, ...data];\n });\n\n setMeta(() => responseMeta);\n\n setLoading(prev => {\n return {\n ...prev,\n INIT: false\n };\n });\n\n return data;\n },\n async getRecord(id) {\n if (!id) {\n throw new Error(\"Record `id` is mandatory\");\n }\n\n const { data: response } = await apolloFetchingHandler<GetSearchRecordResponse>(\n loadingHandler(\"GET\", setLoading),\n () =>\n client.query<GetSearchRecordResponse, GetSearchRecordQueryVariables>({\n query: GET_RECORD,\n variables: { id },\n fetchPolicy: \"network-only\"\n })\n );\n\n if (!response) {\n throw new Error(`Could not fetch record \"${id}\" - no response.`);\n }\n\n const { data, error } = getResponseData(response, mode);\n\n if (error && error.code !== \"NOT_FOUND\") {\n throw new Error(\"Network error while syncing record\");\n }\n\n if (!data) {\n // No record found - must be deleted by previous operation\n setRecords(prev => {\n return prev.filter(record => record.id !== id);\n });\n return data;\n }\n setRecords(prev => {\n const index = prev.findIndex(record => record.id === id);\n\n // No record found in the list - must be added by previous operation\n if (index === -1) {\n return [data, ...prev];\n }\n const next = [...prev];\n next[index] = data;\n return next;\n });\n\n setTags(tags => {\n if (!data.tags || data.tags.length === 0) {\n return tags;\n }\n\n return mergeAndSortTags(tags, data.tags);\n });\n\n return data;\n },\n async createRecord(record) {\n if (!CREATE_RECORD) {\n throw new Error(\"Missing CREATE_RECORD operation.\");\n }\n\n const { data: response } = await apolloFetchingHandler<CreateSearchRecordResponse>(\n loadingHandler(\"CREATE\", setLoading),\n () =>\n client.mutate<CreateSearchRecordResponse, CreateSearchRecordVariables>({\n mutation: CREATE_RECORD,\n variables: {\n data: record\n }\n })\n );\n\n if (!response) {\n throw new Error(\"Network error while creating search record.\");\n }\n\n const { data, error } = getResponseData(response, mode);\n\n if (!data) {\n throw new Error(error?.message || \"Could not create record\");\n }\n\n setRecords(prev => {\n return [...prev, data];\n });\n\n setMeta(meta => ({\n ...meta,\n totalCount: ++meta.totalCount\n }));\n\n setTags(tags => {\n if (!data.tags || data.tags.length === 0) {\n return tags;\n }\n\n return mergeAndSortTags(tags, data.tags);\n });\n\n return data;\n },\n async updateRecord(record, contextFolderId) {\n if (!contextFolderId) {\n throw new Error(\"`folderId` is mandatory\");\n }\n if (!UPDATE_RECORD) {\n throw new Error(\"Missing UPDATE_RECORD operation.\");\n }\n\n const { id, location, data, title, content } = record;\n\n const { data: response } = await apolloFetchingHandler(\n loadingHandler(\"UPDATE\", setLoading),\n () =>\n client.mutate<UpdateSearchRecordResponse, UpdateSearchRecordVariables>({\n mutation: UPDATE_RECORD,\n variables: { id, data: { title, content, location, data } }\n })\n );\n\n if (!response) {\n throw new Error(\"Network error while updating record\");\n }\n\n const { data: result, error } = getResponseData(response, mode);\n\n if (!result) {\n throw new Error(error?.message || \"Could not update record\");\n }\n\n setRecords(records => {\n const index = records.findIndex(record => record.id === id);\n if (index === -1) {\n return [result, ...records];\n }\n\n const next = [...records];\n\n next[index] = result;\n\n return next;\n });\n\n setTags(tags => {\n if (!data.tags || data.tags.length === 0) {\n return tags;\n }\n\n return mergeAndSortTags(tags, data.tags);\n });\n\n return result;\n },\n moveRecord: async (record: MovableSearchRecordItem) => {\n const { id, location } = record;\n const { folderId } = location;\n\n const { data: response } = await apolloFetchingHandler(\n loadingHandler(\"MOVE\", setLoading),\n () =>\n client.mutate<MoveSearchRecordResponse, MoveSearchRecordVariables>({\n mutation: MOVE_RECORD,\n variables: {\n id,\n folderId\n }\n })\n );\n\n if (!response) {\n throw new Error(\"Network error while moving record.\");\n }\n\n const { data, error } = getResponseData(response, mode);\n\n if (!data) {\n throw new Error(error?.message || \"Could not move record.\");\n }\n setRecords(prev => {\n return prev.filter(record => record.id !== id);\n });\n setMeta(meta => ({\n ...meta,\n totalCount: --meta.totalCount\n }));\n },\n async deleteRecord(record) {\n if (!DELETE_RECORD) {\n throw new Error(\"Missing DELETE_RECORD operation.\");\n }\n const { id } = record;\n\n const { data: response } = await apolloFetchingHandler(\n loadingHandler(\"DELETE\", setLoading),\n () =>\n client.mutate<DeleteSearchRecordResponse, DeleteSearchRecordVariables>({\n mutation: DELETE_RECORD,\n variables: { id }\n })\n );\n\n if (!response) {\n throw new Error(\"Network error while deleting record.\");\n }\n\n const { data, error } = getResponseData(response, mode);\n\n if (!data) {\n throw new Error(error?.message || \"Could not delete record\");\n }\n\n setRecords(prev => {\n return prev.filter(record => record.id !== id);\n });\n\n setMeta(meta => ({\n ...meta,\n totalCount: --meta.totalCount\n }));\n\n return true;\n },\n async listTags(params) {\n if (!LIST_TAGS) {\n throw new Error(\"Missing LIST_TAGS operation.\");\n }\n\n const { data: response } = await apolloFetchingHandler(\n loadingHandler(\"LIST\", setLoading),\n () =>\n client.query<ListTagsResponse, ListTagsQueryVariables>({\n query: LIST_TAGS,\n variables: {\n where: params.where\n }\n })\n );\n\n if (!response) {\n throw new Error(\"Network error while fetching tags.\");\n }\n\n const { data, error } = getResponseData(response, mode);\n\n if (!data) {\n throw new Error(error?.message || \"Could not fetch tags\");\n }\n\n setTags(data);\n\n return data;\n }\n };\n }, [\n app.id,\n model.modelId,\n records,\n setRecords,\n tags,\n meta,\n loading,\n GET_RECORD,\n LIST_RECORDS,\n UPDATE_RECORD,\n DELETE_RECORD,\n MOVE_RECORD,\n CREATE_RECORD,\n LIST_TAGS\n ]);\n\n return (\n <SearchRecordsContext.Provider value={context}>{children}</SearchRecordsContext.Provider>\n );\n};\n"],"mappings":"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"}
|
package/dialogs/dialogs.js
CHANGED
|
@@ -65,7 +65,7 @@ var DialogsProvider = function DialogsProvider(_ref) {
|
|
|
65
65
|
case 0:
|
|
66
66
|
_context.prev = 0;
|
|
67
67
|
if (!(typeof state.onAccept === "function")) {
|
|
68
|
-
_context.next =
|
|
68
|
+
_context.next = 5;
|
|
69
69
|
break;
|
|
70
70
|
}
|
|
71
71
|
setState(function (state) {
|
|
@@ -76,24 +76,26 @@ var DialogsProvider = function DialogsProvider(_ref) {
|
|
|
76
76
|
_context.next = 5;
|
|
77
77
|
return state.onAccept(data);
|
|
78
78
|
case 5:
|
|
79
|
+
_context.next = 10;
|
|
80
|
+
break;
|
|
81
|
+
case 7:
|
|
82
|
+
_context.prev = 7;
|
|
83
|
+
_context.t0 = _context["catch"](0);
|
|
84
|
+
showSnackbar(_context.t0.message);
|
|
85
|
+
case 10:
|
|
86
|
+
_context.prev = 10;
|
|
79
87
|
setState(function (state) {
|
|
80
88
|
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, state), {}, {
|
|
81
89
|
loading: false
|
|
82
90
|
});
|
|
83
91
|
});
|
|
84
|
-
case 6:
|
|
85
92
|
closeDialog();
|
|
86
|
-
_context.
|
|
87
|
-
|
|
88
|
-
case 9:
|
|
89
|
-
_context.prev = 9;
|
|
90
|
-
_context.t0 = _context["catch"](0);
|
|
91
|
-
showSnackbar(_context.t0.message);
|
|
92
|
-
case 12:
|
|
93
|
+
return _context.finish(10);
|
|
94
|
+
case 14:
|
|
93
95
|
case "end":
|
|
94
96
|
return _context.stop();
|
|
95
97
|
}
|
|
96
|
-
}, _callee, null, [[0,
|
|
98
|
+
}, _callee, null, [[0, 7, 10, 14]]);
|
|
97
99
|
}));
|
|
98
100
|
return function onSubmit(_x) {
|
|
99
101
|
return _ref2.apply(this, arguments);
|
package/dialogs/dialogs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_i18n","_appAdmin","_Dialog","_templateObject","_templateObject2","_templateObject3","_templateObject4","t","i18n","ns","initializeState","title","_taggedTemplateLiteral2","default","message","undefined","acceptLabel","cancelLabel","loadingLabel","onAccept","onClose","open","loading","exports","Dialogs","React","createContext","DialogsProvider","_ref","children","_useSnackbar","useSnackbar","showSnackbar","_useState","useState","_useState2","_slicedToArray2","state","setState","showDialog","params","_objectSpread2","closeDialog","onSubmit","_ref2","_asyncToGenerator2","_regeneratorRuntime2","mark","_callee","data","wrap","_callee$","_context","prev","next","t0","stop","_x","apply","arguments","context","createElement","Provider","value","Dialog"],"sources":["dialogs.tsx"],"sourcesContent":["import React, { ReactNode, useState } from \"react\";\n\nimport { i18n } from \"@webiny/app/i18n\";\nimport { useSnackbar } from \"@webiny/app-admin\";\n\nimport { Dialog } from \"~/dialogs/Dialog\";\nimport { GenericFormData } from \"@webiny/form\";\n\nconst t = i18n.ns(\"app-aco/contexts/dialogs\");\n\ninterface ShowDialogParams {\n title: ReactNode;\n message: ReactNode;\n acceptLabel: ReactNode;\n cancelLabel: ReactNode;\n loadingLabel: ReactNode;\n onAccept?: Function;\n onClose?: Function;\n}\n\nexport interface DialogsContext {\n showDialog: (params: ShowDialogParams) => void;\n}\n\ninterface DialogsProviderProps {\n children: ReactNode;\n}\n\ninterface State {\n title: ReactNode;\n message: ReactNode;\n acceptLabel: ReactNode;\n cancelLabel: ReactNode;\n loadingLabel: ReactNode;\n onAccept?: Function;\n onClose?: Function;\n open: boolean;\n loading: boolean;\n}\n\nexport const initializeState = (): State => ({\n title: t`Confirmation`,\n message: undefined,\n acceptLabel: t`Confirm`,\n cancelLabel: t`Cancel`,\n loadingLabel: t`Loading`,\n onAccept: undefined,\n onClose: undefined,\n open: false,\n loading: false\n});\n\nexport const Dialogs = React.createContext<DialogsContext | undefined>(undefined);\n\nexport const DialogsProvider: React.VFC<DialogsProviderProps> = ({ children }) => {\n const { showSnackbar } = useSnackbar();\n\n const [state, setState] = useState(initializeState());\n\n const showDialog = (params: ShowDialogParams) => {\n setState(state => ({\n ...state,\n ...params,\n open: true\n }));\n };\n\n const closeDialog = () => {\n if (typeof state.onClose === \"function\") {\n state.onClose();\n }\n\n setState(state => ({\n ...state,\n open: false\n }));\n };\n\n const onSubmit = async (data: GenericFormData) => {\n try {\n if (typeof state.onAccept === \"function\") {\n setState(state => ({\n ...state,\n loading: true\n }));\n\n await state.onAccept(data);\n\n
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_i18n","_appAdmin","_Dialog","_templateObject","_templateObject2","_templateObject3","_templateObject4","t","i18n","ns","initializeState","title","_taggedTemplateLiteral2","default","message","undefined","acceptLabel","cancelLabel","loadingLabel","onAccept","onClose","open","loading","exports","Dialogs","React","createContext","DialogsProvider","_ref","children","_useSnackbar","useSnackbar","showSnackbar","_useState","useState","_useState2","_slicedToArray2","state","setState","showDialog","params","_objectSpread2","closeDialog","onSubmit","_ref2","_asyncToGenerator2","_regeneratorRuntime2","mark","_callee","data","wrap","_callee$","_context","prev","next","t0","finish","stop","_x","apply","arguments","context","createElement","Provider","value","Dialog"],"sources":["dialogs.tsx"],"sourcesContent":["import React, { ReactNode, useState } from \"react\";\n\nimport { i18n } from \"@webiny/app/i18n\";\nimport { useSnackbar } from \"@webiny/app-admin\";\n\nimport { Dialog } from \"~/dialogs/Dialog\";\nimport { GenericFormData } from \"@webiny/form\";\n\nconst t = i18n.ns(\"app-aco/contexts/dialogs\");\n\ninterface ShowDialogParams {\n title: ReactNode;\n message: ReactNode;\n acceptLabel: ReactNode;\n cancelLabel: ReactNode;\n loadingLabel: ReactNode;\n onAccept?: Function;\n onClose?: Function;\n}\n\nexport interface DialogsContext {\n showDialog: (params: ShowDialogParams) => void;\n}\n\ninterface DialogsProviderProps {\n children: ReactNode;\n}\n\ninterface State {\n title: ReactNode;\n message: ReactNode;\n acceptLabel: ReactNode;\n cancelLabel: ReactNode;\n loadingLabel: ReactNode;\n onAccept?: Function;\n onClose?: Function;\n open: boolean;\n loading: boolean;\n}\n\nexport const initializeState = (): State => ({\n title: t`Confirmation`,\n message: undefined,\n acceptLabel: t`Confirm`,\n cancelLabel: t`Cancel`,\n loadingLabel: t`Loading`,\n onAccept: undefined,\n onClose: undefined,\n open: false,\n loading: false\n});\n\nexport const Dialogs = React.createContext<DialogsContext | undefined>(undefined);\n\nexport const DialogsProvider: React.VFC<DialogsProviderProps> = ({ children }) => {\n const { showSnackbar } = useSnackbar();\n\n const [state, setState] = useState(initializeState());\n\n const showDialog = (params: ShowDialogParams) => {\n setState(state => ({\n ...state,\n ...params,\n open: true\n }));\n };\n\n const closeDialog = () => {\n if (typeof state.onClose === \"function\") {\n state.onClose();\n }\n\n setState(state => ({\n ...state,\n open: false\n }));\n };\n\n const onSubmit = async (data: GenericFormData) => {\n try {\n if (typeof state.onAccept === \"function\") {\n setState(state => ({\n ...state,\n loading: true\n }));\n\n await state.onAccept(data);\n }\n } catch (error) {\n showSnackbar(error.message);\n } finally {\n setState(state => ({\n ...state,\n loading: false\n }));\n closeDialog();\n }\n };\n\n const context = {\n showDialog,\n closeDialog\n };\n\n return (\n <Dialogs.Provider value={context}>\n {children}\n <Dialog\n title={state.title}\n message={state.message}\n open={state.open}\n acceptLabel={state.acceptLabel}\n cancelLabel={state.cancelLabel}\n loadingLabel={state.loadingLabel}\n loading={state.loading}\n closeDialog={closeDialog}\n onSubmit={onSubmit}\n />\n </Dialogs.Provider>\n );\n};\n"],"mappings":"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"}
|
package/hooks/useFolders.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export declare const useFolders: () => {
|
|
2
2
|
getFolder: (id: string) => Promise<import("../types").FolderItem>;
|
|
3
|
-
createFolder: (folder: Omit<import("../types").FolderItem, "
|
|
3
|
+
createFolder: (folder: Omit<import("../types").FolderItem, "id" | "type">) => Promise<import("../types").FolderItem>;
|
|
4
4
|
updateFolder: (folder: Omit<import("../types").FolderItem, "type">) => Promise<import("../types").FolderItem>;
|
|
5
5
|
deleteFolder(folder: Pick<import("../types").FolderItem, "id">): Promise<true>;
|
|
6
6
|
getDescendantFolders(id?: string | undefined): import("../types").FolderItem[];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webiny/app-aco",
|
|
3
|
-
"version": "5.37.
|
|
3
|
+
"version": "5.37.1-beta.1",
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -17,16 +17,16 @@
|
|
|
17
17
|
"@material-design-icons/svg": "0.12.1",
|
|
18
18
|
"@material-symbols/svg-400": "0.4.3",
|
|
19
19
|
"@minoru/react-dnd-treeview": "3.2.1",
|
|
20
|
-
"@webiny/app": "5.37.
|
|
21
|
-
"@webiny/app-admin": "5.37.
|
|
22
|
-
"@webiny/app-headless-cms-common": "5.37.
|
|
23
|
-
"@webiny/app-security": "5.37.
|
|
24
|
-
"@webiny/form": "5.37.
|
|
25
|
-
"@webiny/plugins": "5.37.
|
|
26
|
-
"@webiny/react-router": "5.37.
|
|
27
|
-
"@webiny/ui": "5.37.
|
|
28
|
-
"@webiny/utils": "5.37.
|
|
29
|
-
"@webiny/validation": "5.37.
|
|
20
|
+
"@webiny/app": "5.37.1-beta.1",
|
|
21
|
+
"@webiny/app-admin": "5.37.1-beta.1",
|
|
22
|
+
"@webiny/app-headless-cms-common": "5.37.1-beta.1",
|
|
23
|
+
"@webiny/app-security": "5.37.1-beta.1",
|
|
24
|
+
"@webiny/form": "5.37.1-beta.1",
|
|
25
|
+
"@webiny/plugins": "5.37.1-beta.1",
|
|
26
|
+
"@webiny/react-router": "5.37.1-beta.1",
|
|
27
|
+
"@webiny/ui": "5.37.1-beta.1",
|
|
28
|
+
"@webiny/utils": "5.37.1-beta.1",
|
|
29
|
+
"@webiny/validation": "5.37.1-beta.1",
|
|
30
30
|
"dot-prop-immutable": "2.1.1",
|
|
31
31
|
"graphql": "15.8.0",
|
|
32
32
|
"graphql-tag": "2.12.6",
|
|
@@ -45,8 +45,8 @@
|
|
|
45
45
|
"@babel/preset-typescript": "7.22.5",
|
|
46
46
|
"@babel/runtime": "7.22.6",
|
|
47
47
|
"@types/react": "17.0.39",
|
|
48
|
-
"@webiny/cli": "5.37.
|
|
49
|
-
"@webiny/project-utils": "5.37.
|
|
48
|
+
"@webiny/cli": "5.37.1-beta.1",
|
|
49
|
+
"@webiny/project-utils": "5.37.1-beta.1",
|
|
50
50
|
"apollo-client": "2.6.10",
|
|
51
51
|
"apollo-link": "1.2.14",
|
|
52
52
|
"rimraf": "3.0.2",
|
|
@@ -61,5 +61,5 @@
|
|
|
61
61
|
"build": "yarn webiny run build",
|
|
62
62
|
"watch": "yarn webiny run watch"
|
|
63
63
|
},
|
|
64
|
-
"gitHead": "
|
|
64
|
+
"gitHead": "f5994ecafcb1eeb9aa9f0ea6bac0fa1d95936278"
|
|
65
65
|
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
import { DialogOnClose } from "@webiny/ui/Dialog";
|
|
3
|
-
import { MovableSearchRecordItem } from "../../types";
|
|
4
|
-
interface EntryDialogMoveProps {
|
|
5
|
-
searchRecord: MovableSearchRecordItem;
|
|
6
|
-
open: boolean;
|
|
7
|
-
onClose: DialogOnClose;
|
|
8
|
-
}
|
|
9
|
-
export declare const EntryDialogMove: React.VFC<EntryDialogMoveProps>;
|
|
10
|
-
export {};
|
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports.EntryDialogMove = void 0;
|
|
9
|
-
var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime"));
|
|
10
|
-
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
11
|
-
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
12
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
13
|
-
var _react = _interopRequireWildcard(require("react"));
|
|
14
|
-
var _appAdmin = require("@webiny/app-admin");
|
|
15
|
-
var _i18n = require("@webiny/app/i18n");
|
|
16
|
-
var _Button = require("@webiny/ui/Button");
|
|
17
|
-
var _Dialog = require("@webiny/ui/Dialog");
|
|
18
|
-
var _Progress = require("@webiny/ui/Progress");
|
|
19
|
-
var _Typography = require("@webiny/ui/Typography");
|
|
20
|
-
var _ = require("./..");
|
|
21
|
-
var _hooks = require("../../hooks");
|
|
22
|
-
var _styled = require("./styled");
|
|
23
|
-
var _constants = require("../../constants");
|
|
24
|
-
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
|
|
25
|
-
var t = _i18n.i18n.ns("app-aco/dialogs/dialog-move");
|
|
26
|
-
var EntryDialogMove = function EntryDialogMove(_ref) {
|
|
27
|
-
var searchRecord = _ref.searchRecord,
|
|
28
|
-
onClose = _ref.onClose,
|
|
29
|
-
open = _ref.open;
|
|
30
|
-
var _useRecords = (0, _hooks.useRecords)(searchRecord.location.folderId || _constants.ROOT_FOLDER),
|
|
31
|
-
moveRecord = _useRecords.moveRecord,
|
|
32
|
-
loading = _useRecords.loading;
|
|
33
|
-
var _useState = (0, _react.useState)(false),
|
|
34
|
-
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
35
|
-
dialogOpen = _useState2[0],
|
|
36
|
-
setDialogOpen = _useState2[1];
|
|
37
|
-
var _useState3 = (0, _react.useState)(),
|
|
38
|
-
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
|
39
|
-
folderId = _useState4[0],
|
|
40
|
-
setFolderId = _useState4[1];
|
|
41
|
-
var _useSnackbar = (0, _appAdmin.useSnackbar)(),
|
|
42
|
-
showSnackbar = _useSnackbar.showSnackbar;
|
|
43
|
-
var onSubmit = /*#__PURE__*/function () {
|
|
44
|
-
var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee() {
|
|
45
|
-
var id;
|
|
46
|
-
return (0, _regeneratorRuntime2.default)().wrap(function _callee$(_context) {
|
|
47
|
-
while (1) switch (_context.prev = _context.next) {
|
|
48
|
-
case 0:
|
|
49
|
-
_context.prev = 0;
|
|
50
|
-
if (folderId) {
|
|
51
|
-
_context.next = 4;
|
|
52
|
-
break;
|
|
53
|
-
}
|
|
54
|
-
setDialogOpen(false);
|
|
55
|
-
return _context.abrupt("return");
|
|
56
|
-
case 4:
|
|
57
|
-
id = searchRecord.id;
|
|
58
|
-
_context.next = 7;
|
|
59
|
-
return moveRecord({
|
|
60
|
-
id: id,
|
|
61
|
-
location: {
|
|
62
|
-
folderId: folderId
|
|
63
|
-
}
|
|
64
|
-
});
|
|
65
|
-
case 7:
|
|
66
|
-
showSnackbar(t(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["Item moved successfully!"]))));
|
|
67
|
-
setDialogOpen(false);
|
|
68
|
-
_context.next = 14;
|
|
69
|
-
break;
|
|
70
|
-
case 11:
|
|
71
|
-
_context.prev = 11;
|
|
72
|
-
_context.t0 = _context["catch"](0);
|
|
73
|
-
showSnackbar(_context.t0.message);
|
|
74
|
-
case 14:
|
|
75
|
-
case "end":
|
|
76
|
-
return _context.stop();
|
|
77
|
-
}
|
|
78
|
-
}, _callee, null, [[0, 11]]);
|
|
79
|
-
}));
|
|
80
|
-
return function onSubmit() {
|
|
81
|
-
return _ref2.apply(this, arguments);
|
|
82
|
-
};
|
|
83
|
-
}();
|
|
84
|
-
(0, _react.useEffect)(function () {
|
|
85
|
-
setDialogOpen(open);
|
|
86
|
-
}, [open]);
|
|
87
|
-
return /*#__PURE__*/_react.default.createElement(_styled.DialogContainer, {
|
|
88
|
-
open: dialogOpen,
|
|
89
|
-
onClose: onClose
|
|
90
|
-
}, dialogOpen && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_Dialog.DialogTitle, null, t(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["Move item"])))), loading.UPDATE && /*#__PURE__*/_react.default.createElement(_Progress.CircularProgress, {
|
|
91
|
-
label: t(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["Moving item..."])))
|
|
92
|
-
}), /*#__PURE__*/_react.default.createElement(_Dialog.DialogContent, null, /*#__PURE__*/_react.default.createElement(_Typography.Typography, {
|
|
93
|
-
use: "body1"
|
|
94
|
-
}, t(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["Choose the folder where you want to move the item. You can always create a new one if you prefer."])))), /*#__PURE__*/_react.default.createElement(_styled.DialogFoldersContainer, null, /*#__PURE__*/_react.default.createElement(_.FolderTree, {
|
|
95
|
-
focusedFolderId: folderId || searchRecord.location.folderId,
|
|
96
|
-
onFolderClick: function onFolderClick(data) {
|
|
97
|
-
return setFolderId(data === null || data === void 0 ? void 0 : data.id);
|
|
98
|
-
},
|
|
99
|
-
enableCreate: true
|
|
100
|
-
}))), /*#__PURE__*/_react.default.createElement(_Dialog.DialogActions, null, /*#__PURE__*/_react.default.createElement(_Dialog.DialogCancel, {
|
|
101
|
-
onClick: function onClick() {
|
|
102
|
-
setDialogOpen(false);
|
|
103
|
-
}
|
|
104
|
-
}, t(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2.default)(["Cancel"])))), /*#__PURE__*/_react.default.createElement(_Button.ButtonPrimary, {
|
|
105
|
-
onClick: onSubmit
|
|
106
|
-
}, t(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2.default)(["Move item"])))))));
|
|
107
|
-
};
|
|
108
|
-
exports.EntryDialogMove = EntryDialogMove;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_appAdmin","_i18n","_Button","_Dialog","_Progress","_Typography","_","_hooks","_styled","_constants","_templateObject","_templateObject2","_templateObject3","_templateObject4","_templateObject5","_templateObject6","t","i18n","ns","EntryDialogMove","_ref","searchRecord","onClose","open","_useRecords","useRecords","location","folderId","ROOT_FOLDER","moveRecord","loading","_useState","useState","_useState2","_slicedToArray2","default","dialogOpen","setDialogOpen","_useState3","_useState4","setFolderId","_useSnackbar","useSnackbar","showSnackbar","onSubmit","_ref2","_asyncToGenerator2","_regeneratorRuntime2","mark","_callee","id","wrap","_callee$","_context","prev","next","abrupt","_taggedTemplateLiteral2","t0","message","stop","apply","arguments","useEffect","createElement","DialogContainer","Fragment","DialogTitle","UPDATE","CircularProgress","label","DialogContent","Typography","use","DialogFoldersContainer","FolderTree","focusedFolderId","onFolderClick","data","enableCreate","DialogActions","DialogCancel","onClick","ButtonPrimary","exports"],"sources":["DialogMove.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport { useSnackbar } from \"@webiny/app-admin\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { ButtonPrimary } from \"@webiny/ui/Button\";\nimport {\n DialogActions,\n DialogCancel,\n DialogContent,\n DialogOnClose,\n DialogTitle\n} from \"@webiny/ui/Dialog\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\nimport { Typography } from \"@webiny/ui/Typography\";\nimport { FolderTree } from \"~/components\";\nimport { useRecords } from \"~/hooks\";\nimport { DialogContainer, DialogFoldersContainer } from \"./styled\";\nimport { MovableSearchRecordItem } from \"~/types\";\nimport { ROOT_FOLDER } from \"~/constants\";\n\ninterface EntryDialogMoveProps {\n searchRecord: MovableSearchRecordItem;\n open: boolean;\n onClose: DialogOnClose;\n}\n\nconst t = i18n.ns(\"app-aco/dialogs/dialog-move\");\n\nexport const EntryDialogMove: React.VFC<EntryDialogMoveProps> = ({\n searchRecord,\n onClose,\n open\n}) => {\n const { moveRecord, loading } = useRecords(searchRecord.location.folderId || ROOT_FOLDER);\n const [dialogOpen, setDialogOpen] = useState(false);\n const [folderId, setFolderId] = useState<string>();\n const { showSnackbar } = useSnackbar();\n\n const onSubmit = async () => {\n try {\n if (!folderId) {\n setDialogOpen(false);\n return;\n }\n const { id } = searchRecord;\n await moveRecord({\n id,\n location: {\n folderId\n }\n });\n\n showSnackbar(t`Item moved successfully!`);\n setDialogOpen(false);\n } catch (error) {\n showSnackbar(error.message);\n }\n };\n\n useEffect(() => {\n setDialogOpen(open);\n }, [open]);\n\n return (\n <DialogContainer open={dialogOpen} onClose={onClose}>\n {dialogOpen && (\n <>\n <DialogTitle>{t`Move item`}</DialogTitle>\n {loading.UPDATE && <CircularProgress label={t`Moving item...`} />}\n <DialogContent>\n <Typography use=\"body1\">{t`Choose the folder where you want to move the item. You can always create a new one if you prefer.`}</Typography>\n <DialogFoldersContainer>\n <FolderTree\n focusedFolderId={folderId || searchRecord.location.folderId}\n onFolderClick={data => setFolderId(data?.id)}\n enableCreate={true}\n />\n </DialogFoldersContainer>\n </DialogContent>\n <DialogActions>\n <DialogCancel\n onClick={() => {\n setDialogOpen(false);\n }}\n >\n {t`Cancel`}\n </DialogCancel>\n <ButtonPrimary onClick={onSubmit}>{t`Move item`}</ButtonPrimary>\n </DialogActions>\n </>\n )}\n </DialogContainer>\n );\n};\n"],"mappings":"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"}
|