@bigbinary/neeto-folders-frontend 1.2.0 → 2.0.0
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 +292 -27
- package/app/javascript/src/translations/en.json +19 -16
- package/dist/cjs/components.js +615 -217
- package/dist/cjs/components.js.map +1 -1
- package/dist/cjs/hooks.js +3 -1
- package/dist/cjs/hooks.js.map +1 -1
- package/dist/cjs/utils.js +7 -2
- package/dist/cjs/utils.js.map +1 -1
- package/dist/components.js +593 -195
- package/dist/components.js.map +1 -1
- package/dist/hooks.js +3 -1
- package/dist/hooks.js.map +1 -1
- package/dist/{pathUtils-CHuLm_t6.js → index-BFO1zYNo.js} +42 -16
- package/dist/index-BFO1zYNo.js.map +1 -0
- package/dist/{pathUtils-B2uokQlx.js → index-Cq1DyvVr.js} +41 -17
- package/dist/index-Cq1DyvVr.js.map +1 -0
- package/dist/internal-CS6_tPWL.js +21 -0
- package/dist/internal-CS6_tPWL.js.map +1 -0
- package/dist/internal-G6z0jIQe.js +17 -0
- package/dist/internal-G6z0jIQe.js.map +1 -0
- package/dist/{useFolderActions-BoLQ9bAf.js → useFolderActions-BLpmmlOf.js} +33 -42
- package/dist/useFolderActions-BLpmmlOf.js.map +1 -0
- package/dist/{useFolderActions-BaDwQAdE.js → useFolderActions-D8xGNhk0.js} +33 -44
- package/dist/useFolderActions-D8xGNhk0.js.map +1 -0
- package/dist/utils.js +5 -1
- package/dist/utils.js.map +1 -1
- package/package.json +11 -11
- package/types.d.ts +89 -1
- package/dist/pathUtils-B2uokQlx.js.map +0 -1
- package/dist/pathUtils-CHuLm_t6.js.map +0 -1
- package/dist/useFolderActions-BaDwQAdE.js.map +0 -1
- package/dist/useFolderActions-BoLQ9bAf.js.map +0 -1
|
@@ -1,15 +1,44 @@
|
|
|
1
|
+
import { isNil, pipe, values } from 'ramda';
|
|
1
2
|
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
3
|
+
import { isNotPresent } from '@bigbinary/neeto-cist';
|
|
4
|
+
import { i as isArray } from './internal-G6z0jIQe.js';
|
|
2
5
|
|
|
3
6
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
4
7
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
8
|
+
var sortByIndex = function sortByIndex(a, b) {
|
|
9
|
+
if (isNil(a.meta.__index) && isNil(b.meta.__index)) {
|
|
10
|
+
return a.meta.index - b.meta.index;
|
|
11
|
+
} else if (isNil(a.meta.__index)) {
|
|
12
|
+
return a.meta.index < b.meta.__index ? -1 : 1;
|
|
13
|
+
} else if (isNil(b.meta.__index)) {
|
|
14
|
+
return a.meta.__index <= b.meta.index ? -1 : 1;
|
|
15
|
+
}
|
|
16
|
+
return a.meta.__index - b.meta.__index;
|
|
17
|
+
};
|
|
18
|
+
var foldersToTree = function foldersToTree(folders) {
|
|
19
|
+
var map = {};
|
|
20
|
+
var root;
|
|
21
|
+
folders.forEach(function (item) {
|
|
22
|
+
map[item.id] = _objectSpread(_objectSpread({}, item), {}, {
|
|
23
|
+
children: []
|
|
24
|
+
});
|
|
25
|
+
// Destroy existing temporary meta attributes.
|
|
26
|
+
delete map[item.id].meta.__index;
|
|
27
|
+
});
|
|
28
|
+
folders.forEach(function (item) {
|
|
29
|
+
if (!item.meta.parent) root = map[item.id];else map[item.meta.parent.id].children.push(map[item.id]);
|
|
30
|
+
});
|
|
31
|
+
return root;
|
|
32
|
+
};
|
|
5
33
|
var _walkTree = function walkTree(tree, fn) {
|
|
6
34
|
var meta = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {
|
|
7
35
|
index: 0,
|
|
8
36
|
depth: 0,
|
|
9
37
|
parent: null
|
|
10
38
|
};
|
|
39
|
+
if (!tree) return;
|
|
11
40
|
fn(tree, meta);
|
|
12
|
-
if (tree.children) {
|
|
41
|
+
if (isArray(tree.children)) {
|
|
13
42
|
tree.children.forEach(function (folder, index) {
|
|
14
43
|
return _walkTree(folder, fn, {
|
|
15
44
|
parent: tree,
|
|
@@ -30,7 +59,8 @@ var measureDepth = function measureDepth(tree) {
|
|
|
30
59
|
// Convert tree to lookup table
|
|
31
60
|
var treeToMap = function treeToMap(tree) {
|
|
32
61
|
var key = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "id";
|
|
33
|
-
|
|
62
|
+
if (isNotPresent(tree)) return {};
|
|
63
|
+
var roots = isArray(tree) ? tree : [tree];
|
|
34
64
|
var foldersMap = {};
|
|
35
65
|
roots.forEach(function (root) {
|
|
36
66
|
_walkTree(root, function (folder, meta) {
|
|
@@ -44,31 +74,25 @@ var treeToMap = function treeToMap(tree) {
|
|
|
44
74
|
|
|
45
75
|
// Convert result of treeToMap back to tree
|
|
46
76
|
var mapToTree = function mapToTree(foldersMap) {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
children: []
|
|
52
|
-
});
|
|
53
|
-
});
|
|
54
|
-
Object.values(foldersMap).forEach(function (item) {
|
|
55
|
-
if (!item.meta.parent) root = map[item.id];else map[item.meta.parent.id].children.push(map[item.id]);
|
|
56
|
-
});
|
|
57
|
-
return root;
|
|
77
|
+
return foldersToTree(Object.values(foldersMap));
|
|
78
|
+
};
|
|
79
|
+
var mapToSortedTree = function mapToSortedTree(foldersMap) {
|
|
80
|
+
return foldersToTree(Object.values(foldersMap).sort(sortByIndex));
|
|
58
81
|
};
|
|
59
82
|
|
|
83
|
+
var flattenTree = pipe(treeToMap, values);
|
|
60
84
|
var pathToFolder = function pathToFolder(folders, folderId) {
|
|
61
85
|
var path = [];
|
|
62
86
|
var folderMap = treeToMap(folders);
|
|
63
87
|
if (!folderMap[folderId]) return path;
|
|
64
88
|
var current = folderMap[folderId];
|
|
65
89
|
while (current) {
|
|
66
|
-
var _current$meta;
|
|
90
|
+
var _current$meta$parent;
|
|
67
91
|
path.unshift(current);
|
|
68
|
-
current = (_current$meta = current.meta) === null || _current$meta === void 0 ? void 0 : _current$meta.
|
|
92
|
+
current = folderMap[(_current$meta$parent = current.meta.parent) === null || _current$meta$parent === void 0 ? void 0 : _current$meta$parent.id];
|
|
69
93
|
}
|
|
70
94
|
return path;
|
|
71
95
|
};
|
|
72
96
|
|
|
73
|
-
export { mapToTree as a, measureDepth as m, pathToFolder as p, treeToMap as t };
|
|
74
|
-
//# sourceMappingURL=
|
|
97
|
+
export { mapToTree as a, mapToSortedTree as b, flattenTree as f, measureDepth as m, pathToFolder as p, treeToMap as t };
|
|
98
|
+
//# sourceMappingURL=index-Cq1DyvVr.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-Cq1DyvVr.js","sources":["../app/javascript/src/utils/treeUtils.js","../app/javascript/src/utils/index.js"],"sourcesContent":["import { isNotPresent } from \"neetocist\";\nimport { isNil } from \"ramda\";\n\nimport { isArray } from \"./internal\";\n\nconst sortByIndex = (a, b) => {\n if (isNil(a.meta.__index) && isNil(b.meta.__index)) {\n return a.meta.index - b.meta.index;\n } else if (isNil(a.meta.__index)) {\n return a.meta.index < b.meta.__index ? -1 : 1;\n } else if (isNil(b.meta.__index)) {\n return a.meta.__index <= b.meta.index ? -1 : 1;\n }\n\n return a.meta.__index - b.meta.__index;\n};\n\nexport const foldersToTree = folders => {\n const map = {};\n let root;\n\n folders.forEach(item => {\n map[item.id] = { ...item, children: [] };\n // Destroy existing temporary meta attributes.\n delete map[item.id].meta.__index;\n });\n\n folders.forEach(item => {\n if (!item.meta.parent) root = map[item.id];\n else map[item.meta.parent.id].children.push(map[item.id]);\n });\n\n return root;\n};\n\nexport const walkTree = (\n tree,\n fn,\n meta = { index: 0, depth: 0, parent: null }\n) => {\n if (!tree) return;\n\n fn(tree, meta);\n if (isArray(tree.children)) {\n tree.children.forEach((folder, index) =>\n walkTree(folder, fn, { parent: tree, index, depth: meta.depth + 1 })\n );\n }\n};\n\n// Measures the maximum depth to bottom of the tree\nexport const measureDepth = tree => {\n let maxDepth = 0;\n\n walkTree(tree, (_, meta) => {\n if (meta.depth > maxDepth) maxDepth = meta.depth;\n });\n\n return maxDepth;\n};\n\n// Convert tree to lookup table\nexport const treeToMap = (tree, key = \"id\") => {\n if (isNotPresent(tree)) return {};\n\n const roots = isArray(tree) ? tree : [tree];\n const foldersMap = {};\n\n roots.forEach(root => {\n walkTree(root, (folder, meta) => {\n foldersMap[folder[key]] = { ...folder, meta };\n });\n });\n\n return foldersMap;\n};\n\n// Convert result of treeToMap back to tree\nexport const mapToTree = foldersMap => foldersToTree(Object.values(foldersMap));\nexport const mapToSortedTree = foldersMap =>\n foldersToTree(Object.values(foldersMap).sort(sortByIndex));\n","import { pipe, values } from \"ramda\";\n\nimport { treeToMap } from \"./treeUtils\";\n\nconst flattenTree = pipe(treeToMap, values);\n\nconst pathToFolder = (folders, folderId) => {\n const path = [];\n const folderMap = treeToMap(folders);\n if (!folderMap[folderId]) return path;\n\n let current = folderMap[folderId];\n while (current) {\n path.unshift(current);\n current = folderMap[current.meta.parent?.id];\n }\n\n return path;\n};\n\nexport { pathToFolder, flattenTree };\n"],"names":["sortByIndex","a","b","isNil","meta","__index","index","foldersToTree","folders","map","root","forEach","item","id","_objectSpread","children","parent","push","walkTree","tree","fn","arguments","length","undefined","depth","isArray","folder","measureDepth","maxDepth","_","treeToMap","key","isNotPresent","roots","foldersMap","mapToTree","Object","values","mapToSortedTree","sort","flattenTree","pipe","pathToFolder","folderId","path","folderMap","current","_current$meta$parent","unshift"],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var ramda = require('ramda');
|
|
4
|
+
var reactRouterDom = require('react-router-dom');
|
|
5
|
+
|
|
6
|
+
var getActiveFolderId = function getActiveFolderId(config) {
|
|
7
|
+
var _matchPath;
|
|
8
|
+
return (_matchPath = reactRouterDom.matchPath(window.location.pathname, config.folderPath)) === null || _matchPath === void 0 || (_matchPath = _matchPath.params) === null || _matchPath === void 0 ? void 0 : _matchPath.folderId;
|
|
9
|
+
};
|
|
10
|
+
var isActiveFolder = function isActiveFolder(config, folderId) {
|
|
11
|
+
var activeFolderId = getActiveFolderId(config);
|
|
12
|
+
return activeFolderId && activeFolderId === folderId;
|
|
13
|
+
};
|
|
14
|
+
var isArray = function isArray(arg) {
|
|
15
|
+
return ramda.isNotNil(arg) && Array.isArray(arg);
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
exports.getActiveFolderId = getActiveFolderId;
|
|
19
|
+
exports.isActiveFolder = isActiveFolder;
|
|
20
|
+
exports.isArray = isArray;
|
|
21
|
+
//# sourceMappingURL=internal-CS6_tPWL.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"internal-CS6_tPWL.js","sources":["../app/javascript/src/utils/internal.js"],"sourcesContent":["import { isNotNil } from \"ramda\";\nimport { matchPath } from \"react-router-dom\";\n\nexport const getActiveFolderId = config =>\n matchPath(window.location.pathname, config.folderPath)?.params?.folderId;\n\nexport const isActiveFolder = (config, folderId) => {\n const activeFolderId = getActiveFolderId(config);\n\n return activeFolderId && activeFolderId === folderId;\n};\n\nexport const isArray = arg => isNotNil(arg) && Array.isArray(arg);\n"],"names":["getActiveFolderId","config","_matchPath","matchPath","window","location","pathname","folderPath","params","folderId","isActiveFolder","activeFolderId","isArray","arg","isNotNil","Array"],"mappings":";;;;;IAGaA,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAGC,MAAM,EAAA;AAAA,EAAA,IAAAC,UAAA;EAAA,OAAAA,CAAAA,UAAA,GACrCC,wBAAS,CAACC,MAAM,CAACC,QAAQ,CAACC,QAAQ,EAAEL,MAAM,CAACM,UAAU,CAAC,MAAA,IAAA,IAAAL,UAAA,KAAA,KAAA,CAAA,IAAA,CAAAA,UAAA,GAAtDA,UAAA,CAAwDM,MAAM,MAAA,IAAA,IAAAN,UAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAA9DA,UAAA,CAAgEO,QAAQ;AAAA;AAEnE,IAAMC,cAAc,GAAG,SAAjBA,cAAcA,CAAIT,MAAM,EAAEQ,QAAQ,EAAK;AAClD,EAAA,IAAME,cAAc,GAAGX,iBAAiB,CAACC,MAAM,CAAC;AAEhD,EAAA,OAAOU,cAAc,IAAIA,cAAc,KAAKF,QAAQ;AACtD;IAEaG,OAAO,GAAG,SAAVA,OAAOA,CAAGC,GAAG,EAAA;EAAA,OAAIC,cAAQ,CAACD,GAAG,CAAC,IAAIE,KAAK,CAACH,OAAO,CAACC,GAAG,CAAC;AAAA;;;;;;"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { isNotNil } from 'ramda';
|
|
2
|
+
import { matchPath } from 'react-router-dom';
|
|
3
|
+
|
|
4
|
+
var getActiveFolderId = function getActiveFolderId(config) {
|
|
5
|
+
var _matchPath;
|
|
6
|
+
return (_matchPath = matchPath(window.location.pathname, config.folderPath)) === null || _matchPath === void 0 || (_matchPath = _matchPath.params) === null || _matchPath === void 0 ? void 0 : _matchPath.folderId;
|
|
7
|
+
};
|
|
8
|
+
var isActiveFolder = function isActiveFolder(config, folderId) {
|
|
9
|
+
var activeFolderId = getActiveFolderId(config);
|
|
10
|
+
return activeFolderId && activeFolderId === folderId;
|
|
11
|
+
};
|
|
12
|
+
var isArray = function isArray(arg) {
|
|
13
|
+
return isNotNil(arg) && Array.isArray(arg);
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
export { isActiveFolder as a, getActiveFolderId as g, isArray as i };
|
|
17
|
+
//# sourceMappingURL=internal-G6z0jIQe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"internal-G6z0jIQe.js","sources":["../app/javascript/src/utils/internal.js"],"sourcesContent":["import { isNotNil } from \"ramda\";\nimport { matchPath } from \"react-router-dom\";\n\nexport const getActiveFolderId = config =>\n matchPath(window.location.pathname, config.folderPath)?.params?.folderId;\n\nexport const isActiveFolder = (config, folderId) => {\n const activeFolderId = getActiveFolderId(config);\n\n return activeFolderId && activeFolderId === folderId;\n};\n\nexport const isArray = arg => isNotNil(arg) && Array.isArray(arg);\n"],"names":["getActiveFolderId","config","_matchPath","matchPath","window","location","pathname","folderPath","params","folderId","isActiveFolder","activeFolderId","isArray","arg","isNotNil","Array"],"mappings":";;;IAGaA,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAGC,MAAM,EAAA;AAAA,EAAA,IAAAC,UAAA;EAAA,OAAAA,CAAAA,UAAA,GACrCC,SAAS,CAACC,MAAM,CAACC,QAAQ,CAACC,QAAQ,EAAEL,MAAM,CAACM,UAAU,CAAC,MAAA,IAAA,IAAAL,UAAA,KAAA,KAAA,CAAA,IAAA,CAAAA,UAAA,GAAtDA,UAAA,CAAwDM,MAAM,MAAA,IAAA,IAAAN,UAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAA9DA,UAAA,CAAgEO,QAAQ;AAAA;AAEnE,IAAMC,cAAc,GAAG,SAAjBA,cAAcA,CAAIT,MAAM,EAAEQ,QAAQ,EAAK;AAClD,EAAA,IAAME,cAAc,GAAGX,iBAAiB,CAACC,MAAM,CAAC;AAEhD,EAAA,OAAOU,cAAc,IAAIA,cAAc,KAAKF,QAAQ;AACtD;IAEaG,OAAO,GAAG,SAAVA,OAAOA,CAAGC,GAAG,EAAA;EAAA,OAAIC,QAAQ,CAACD,GAAG,CAAC,IAAIE,KAAK,CAACH,OAAO,CAACC,GAAG,CAAC;AAAA;;;;"}
|
|
@@ -1,27 +1,13 @@
|
|
|
1
1
|
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
2
2
|
import { t } from 'i18next';
|
|
3
3
|
import { noop } from '@bigbinary/neeto-cist';
|
|
4
|
-
import {
|
|
4
|
+
import { g as getActiveFolderId } from './internal-G6z0jIQe.js';
|
|
5
5
|
import { shallow } from 'zustand/shallow';
|
|
6
6
|
import { useQuery, useQueryClient } from '@tanstack/react-query';
|
|
7
7
|
import { QUERY_KEYS } from './constants.js';
|
|
8
8
|
import { useMutationWithInvalidation, withImmutableActions } from '@bigbinary/neeto-commons-frontend/react-utils';
|
|
9
9
|
import { create } from 'zustand';
|
|
10
10
|
|
|
11
|
-
var useDestroyMutation = function useDestroyMutation(config, api) {
|
|
12
|
-
var queryClient = useQueryClient();
|
|
13
|
-
|
|
14
|
-
// eslint-disable-next-line @bigbinary/neeto/use-use-mutation-with-invalidation-hook
|
|
15
|
-
return useMutationWithInvalidation(api, {
|
|
16
|
-
keysToInvalidate: [[QUERY_KEYS.FOLDERS, config.type, QUERY_KEYS.LIST]].concat(config.itemKeys),
|
|
17
|
-
onSuccess: function onSuccess() {
|
|
18
|
-
queryClient.invalidateQueries({
|
|
19
|
-
queryKey: [QUERY_KEYS.FOLDERS, config.type, QUERY_KEYS.DETAILS],
|
|
20
|
-
refetchType: "none"
|
|
21
|
-
});
|
|
22
|
-
}
|
|
23
|
-
});
|
|
24
|
-
};
|
|
25
11
|
var useFetchFolders = function useFetchFolders(config) {
|
|
26
12
|
return useQuery({
|
|
27
13
|
queryKey: [QUERY_KEYS.FOLDERS, config.type, QUERY_KEYS.LIST, config.params],
|
|
@@ -55,7 +41,9 @@ var useReorderFolders = function useReorderFolders(config) {
|
|
|
55
41
|
});
|
|
56
42
|
};
|
|
57
43
|
var useDestroyFolder = function useDestroyFolder(config) {
|
|
58
|
-
return
|
|
44
|
+
return useMutationWithInvalidation(config.api.destroy, {
|
|
45
|
+
keysToInvalidate: [[QUERY_KEYS.FOLDERS, config.type, QUERY_KEYS.LIST]]
|
|
46
|
+
});
|
|
59
47
|
};
|
|
60
48
|
var useBulkUpdateFolders = function useBulkUpdateFolders(config) {
|
|
61
49
|
return useMutationWithInvalidation(config.api.bulkUpdate, {
|
|
@@ -63,9 +51,27 @@ var useBulkUpdateFolders = function useBulkUpdateFolders(config) {
|
|
|
63
51
|
});
|
|
64
52
|
};
|
|
65
53
|
var useBulkDestroyFolders = function useBulkDestroyFolders(config) {
|
|
66
|
-
return
|
|
54
|
+
return useMutationWithInvalidation(config.api.bulkDestroy, {
|
|
55
|
+
keysToInvalidate: [[QUERY_KEYS.FOLDERS, config.type, QUERY_KEYS.LIST], [QUERY_KEYS.FOLDERS, config.type, QUERY_KEYS.DETAILS]].concat(config.invalidationKeys)
|
|
56
|
+
});
|
|
67
57
|
};
|
|
68
58
|
|
|
59
|
+
var DEFAULT_LABELS = {
|
|
60
|
+
folder: t("common.folder"),
|
|
61
|
+
folders: t("common.folders"),
|
|
62
|
+
item: t("common.item"),
|
|
63
|
+
items: t("common.items")
|
|
64
|
+
};
|
|
65
|
+
var DEFAULT_API = {
|
|
66
|
+
// Folder CRUD
|
|
67
|
+
fetch: noop,
|
|
68
|
+
get: noop,
|
|
69
|
+
create: noop,
|
|
70
|
+
update: noop,
|
|
71
|
+
destroy: noop,
|
|
72
|
+
bulkUpdate: noop,
|
|
73
|
+
bulkDestroy: noop
|
|
74
|
+
};
|
|
69
75
|
var DEFAULT_CONFIG = {
|
|
70
76
|
type: "FOLDER",
|
|
71
77
|
// For query keys with different associated entities
|
|
@@ -73,20 +79,13 @@ var DEFAULT_CONFIG = {
|
|
|
73
79
|
// Maximum allowed depth for folder tree
|
|
74
80
|
folderPath: "/folders/:folderId",
|
|
75
81
|
// Path for handling URL redirections
|
|
76
|
-
|
|
77
|
-
// For displaying the item label in counts
|
|
78
|
-
itemKeys: [],
|
|
82
|
+
invalidationKeys: [],
|
|
79
83
|
// For invalidation purposes
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
update: noop,
|
|
86
|
-
destroy: noop,
|
|
87
|
-
bulkUpdate: noop,
|
|
88
|
-
bulkDestroy: noop
|
|
89
|
-
}
|
|
84
|
+
reorderMode: "rearrange",
|
|
85
|
+
// rearrange | reorder
|
|
86
|
+
labels: DEFAULT_LABELS,
|
|
87
|
+
params: {},
|
|
88
|
+
api: DEFAULT_API
|
|
90
89
|
};
|
|
91
90
|
|
|
92
91
|
function ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
@@ -112,14 +111,6 @@ var useFolderStore = create(withImmutableActions(function (set) {
|
|
|
112
111
|
};
|
|
113
112
|
}));
|
|
114
113
|
|
|
115
|
-
var getActiveFolderId = function getActiveFolderId(config) {
|
|
116
|
-
var _matchPath;
|
|
117
|
-
return (_matchPath = matchPath(window.location.pathname, config.folderPath)) === null || _matchPath === void 0 || (_matchPath = _matchPath.params) === null || _matchPath === void 0 ? void 0 : _matchPath.folderId;
|
|
118
|
-
};
|
|
119
|
-
var isActiveFolder = function isActiveFolder(config, folderId) {
|
|
120
|
-
return getActiveFolderId(config) === folderId;
|
|
121
|
-
};
|
|
122
|
-
|
|
123
114
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
124
115
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
125
116
|
var useFolder = function useFolder(configArg) {
|
|
@@ -127,9 +118,9 @@ var useFolder = function useFolder(configArg) {
|
|
|
127
118
|
var folderId = getActiveFolderId(config);
|
|
128
119
|
var _useShowFolder = useShowFolder(config, folderId),
|
|
129
120
|
folder = _useShowFolder.data,
|
|
130
|
-
|
|
121
|
+
isFetching = _useShowFolder.isFetching;
|
|
131
122
|
return {
|
|
132
|
-
isLoading:
|
|
123
|
+
isLoading: isFetching && (folder === null || folder === void 0 ? void 0 : folder.slug) !== folderId,
|
|
133
124
|
folderId: folderId,
|
|
134
125
|
folder: folder
|
|
135
126
|
};
|
|
@@ -208,5 +199,5 @@ var useFolderActions = function useFolderActions(config) {
|
|
|
208
199
|
};
|
|
209
200
|
};
|
|
210
201
|
|
|
211
|
-
export { DEFAULT_CONFIG as D, useFolders as a, useFolderActions as b, useFolderStore as c, useDestroyFolder as d, useFetchFolders as e, useCreateFolder as f, useUpdateFolder as g,
|
|
212
|
-
//# sourceMappingURL=useFolderActions-
|
|
202
|
+
export { DEFAULT_CONFIG as D, useFolders as a, useFolderActions as b, useFolderStore as c, useDestroyFolder as d, useFetchFolders as e, useCreateFolder as f, useUpdateFolder as g, useReorderFolders as h, useFolder as u };
|
|
203
|
+
//# sourceMappingURL=useFolderActions-BLpmmlOf.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFolderActions-BLpmmlOf.js","sources":["../app/javascript/src/hooks/reactQuery/useFoldersApi.js","../app/javascript/src/constants/config.js","../app/javascript/src/hooks/useFolders.js","../app/javascript/src/stores/foldersStore.js","../app/javascript/src/hooks/useFolder.js","../app/javascript/src/hooks/useFolderActions.js"],"sourcesContent":["import { useQuery } from \"@tanstack/react-query\";\nimport { useMutationWithInvalidation } from \"neetocommons/react-utils\";\n\nimport { QUERY_KEYS } from \"constants/query\";\n\nexport const useFetchFolders = config =>\n useQuery({\n queryKey: [QUERY_KEYS.FOLDERS, config.type, QUERY_KEYS.LIST, config.params],\n queryFn: () => config.api.fetch(config.params),\n });\n\nexport const useShowFolder = (config, folderId) =>\n useQuery({\n queryKey: [\n QUERY_KEYS.FOLDERS,\n config.type,\n QUERY_KEYS.DETAILS,\n folderId,\n config.params,\n ],\n queryFn: () => config.api.get(folderId, config.params),\n enabled: !!folderId,\n });\n\nexport const useCreateFolder = config =>\n useMutationWithInvalidation(config.api.create, {\n keysToInvalidate: [[QUERY_KEYS.FOLDERS, config.type]],\n });\n\nexport const useUpdateFolder = config =>\n useMutationWithInvalidation(config.api.update, {\n keysToInvalidate: [[QUERY_KEYS.FOLDERS, config.type]],\n });\n\nexport const useReorderFolders = config =>\n useMutationWithInvalidation(config.api.reorder, {\n keysToInvalidate: [[QUERY_KEYS.FOLDERS, config.type]],\n });\n\nexport const useDestroyFolder = config =>\n useMutationWithInvalidation(config.api.destroy, {\n keysToInvalidate: [[QUERY_KEYS.FOLDERS, config.type, QUERY_KEYS.LIST]],\n });\n\nexport const useBulkUpdateFolders = config =>\n useMutationWithInvalidation(config.api.bulkUpdate, {\n keysToInvalidate: [[QUERY_KEYS.FOLDERS, config.type]],\n });\n\nexport const useBulkDestroyFolders = config =>\n useMutationWithInvalidation(config.api.bulkDestroy, {\n keysToInvalidate: [\n [QUERY_KEYS.FOLDERS, config.type, QUERY_KEYS.LIST],\n [QUERY_KEYS.FOLDERS, config.type, QUERY_KEYS.DETAILS],\n ].concat(config.invalidationKeys),\n });\n","import { t } from \"i18next\";\nimport { noop } from \"neetocist\";\n\nconst DEFAULT_LABELS = {\n folder: t(\"common.folder\"),\n folders: t(\"common.folders\"),\n item: t(\"common.item\"),\n items: t(\"common.items\"),\n};\n\nconst DEFAULT_API = {\n // Folder CRUD\n fetch: noop,\n get: noop,\n create: noop,\n update: noop,\n destroy: noop,\n bulkUpdate: noop,\n bulkDestroy: noop,\n};\n\nexport const DEFAULT_CONFIG = {\n type: \"FOLDER\", // For query keys with different associated entities\n maxDepth: 2, // Maximum allowed depth for folder tree\n folderPath: \"/folders/:folderId\", // Path for handling URL redirections\n invalidationKeys: [], // For invalidation purposes\n reorderMode: \"rearrange\", // rearrange | reorder\n labels: DEFAULT_LABELS,\n params: {},\n api: DEFAULT_API,\n};\n","import { DEFAULT_CONFIG } from \"constants/config\";\nimport { useFetchFolders } from \"hooks/reactQuery/useFoldersApi\";\n\nconst useFolders = configArg => {\n const config = { ...DEFAULT_CONFIG, ...configArg };\n const { data: folders, isLoading } = useFetchFolders(config);\n\n return { isLoading, folders };\n};\n\nexport default useFolders;\n","import { withImmutableActions } from \"neetocommons/react-utils\";\nimport { create } from \"zustand\";\n\n/** @type {import(\"neetocommons/react-utils\").ZustandStoreHook} */\nconst useFolderStore = create(\n withImmutableActions(set => ({\n paneState: null,\n alertState: null,\n selectedItem: null,\n setFolderState: set,\n }))\n);\n\nexport default useFolderStore;\n","import { DEFAULT_CONFIG } from \"constants/config\";\nimport { useShowFolder } from \"hooks/reactQuery/useFoldersApi\";\nimport { getActiveFolderId } from \"utils/internal\";\n\nconst useFolder = configArg => {\n const config = { ...DEFAULT_CONFIG, ...configArg };\n const folderId = getActiveFolderId(config);\n\n const { data: folder, isFetching } = useShowFolder(config, folderId);\n\n return {\n isLoading: isFetching && folder?.slug !== folderId,\n folderId,\n folder,\n };\n};\n\nexport default useFolder;\n","import { useQueryClient } from \"@tanstack/react-query\";\n\nimport { QUERY_KEYS } from \"constants/query\";\nimport useFolderStore from \"stores/foldersStore\";\n\nimport {\n useBulkUpdateFolders,\n useBulkDestroyFolders,\n} from \"./reactQuery/useFoldersApi\";\n\nconst useFolderActions = config => {\n const queryClient = useQueryClient();\n const { setFolderState } = useFolderStore.pick();\n\n const { mutateAsync: onBulkUpdate, isPending: isUpdating } =\n useBulkUpdateFolders(config);\n\n const { mutateAsync: onBulkDelete, isPending: isDeleting } =\n useBulkDestroyFolders(config);\n\n const onInvalidate = () => {\n queryClient.invalidateQueries({\n queryKey: [QUERY_KEYS.FOLDERS, config.type],\n });\n };\n\n const onAdd = () =>\n setFolderState({ paneState: { type: \"add\", item: null } });\n\n const onEdit = item => setFolderState({ paneState: { type: \"edit\", item } });\n\n const onMove = item => setFolderState({ paneState: { type: \"move\", item } });\n\n const onDelete = item =>\n setFolderState({ alertState: { type: \"delete\", item } });\n\n const onReorder = () =>\n setFolderState({ paneState: { type: \"reorder\", item: null } });\n\n const isPending = isUpdating || isDeleting;\n\n return {\n isPending,\n onAdd,\n onEdit,\n onMove,\n onDelete,\n onReorder,\n onInvalidate,\n onBulkUpdate,\n onBulkDelete,\n };\n};\n\nexport default useFolderActions;\n"],"names":["useFetchFolders","config","useQuery","queryKey","QUERY_KEYS","FOLDERS","type","LIST","params","queryFn","api","fetch","useShowFolder","folderId","DETAILS","get","enabled","useCreateFolder","useMutationWithInvalidation","create","keysToInvalidate","useUpdateFolder","update","useReorderFolders","reorder","useDestroyFolder","destroy","useBulkUpdateFolders","bulkUpdate","useBulkDestroyFolders","bulkDestroy","concat","invalidationKeys","DEFAULT_LABELS","folder","t","folders","item","items","DEFAULT_API","noop","DEFAULT_CONFIG","maxDepth","folderPath","reorderMode","labels","useFolders","configArg","_objectSpread","_useFetchFolders","data","isLoading","useFolderStore","withImmutableActions","set","paneState","alertState","selectedItem","setFolderState","useFolder","getActiveFolderId","_useShowFolder","isFetching","slug","useFolderActions","queryClient","useQueryClient","_useFolderStore","store","shallow","_useBulkUpdateFolders","onBulkUpdate","mutateAsync","isUpdating","isPending","_useBulkDestroyFolder","onBulkDelete","isDeleting","onInvalidate","invalidateQueries","onAdd","onEdit","onMove","onDelete","onReorder"],"mappings":"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"}
|
|
@@ -3,27 +3,13 @@
|
|
|
3
3
|
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
4
4
|
var i18next = require('i18next');
|
|
5
5
|
var neetoCist = require('@bigbinary/neeto-cist');
|
|
6
|
-
var
|
|
6
|
+
var internal = require('./internal-CS6_tPWL.js');
|
|
7
7
|
var shallow = require('zustand/shallow');
|
|
8
8
|
var reactQuery = require('@tanstack/react-query');
|
|
9
9
|
var constants = require('./cjs/constants.js');
|
|
10
10
|
var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
|
|
11
11
|
var zustand = require('zustand');
|
|
12
12
|
|
|
13
|
-
var useDestroyMutation = function useDestroyMutation(config, api) {
|
|
14
|
-
var queryClient = reactQuery.useQueryClient();
|
|
15
|
-
|
|
16
|
-
// eslint-disable-next-line @bigbinary/neeto/use-use-mutation-with-invalidation-hook
|
|
17
|
-
return reactUtils.useMutationWithInvalidation(api, {
|
|
18
|
-
keysToInvalidate: [[constants.QUERY_KEYS.FOLDERS, config.type, constants.QUERY_KEYS.LIST]].concat(config.itemKeys),
|
|
19
|
-
onSuccess: function onSuccess() {
|
|
20
|
-
queryClient.invalidateQueries({
|
|
21
|
-
queryKey: [constants.QUERY_KEYS.FOLDERS, config.type, constants.QUERY_KEYS.DETAILS],
|
|
22
|
-
refetchType: "none"
|
|
23
|
-
});
|
|
24
|
-
}
|
|
25
|
-
});
|
|
26
|
-
};
|
|
27
13
|
var useFetchFolders = function useFetchFolders(config) {
|
|
28
14
|
return reactQuery.useQuery({
|
|
29
15
|
queryKey: [constants.QUERY_KEYS.FOLDERS, config.type, constants.QUERY_KEYS.LIST, config.params],
|
|
@@ -57,7 +43,9 @@ var useReorderFolders = function useReorderFolders(config) {
|
|
|
57
43
|
});
|
|
58
44
|
};
|
|
59
45
|
var useDestroyFolder = function useDestroyFolder(config) {
|
|
60
|
-
return
|
|
46
|
+
return reactUtils.useMutationWithInvalidation(config.api.destroy, {
|
|
47
|
+
keysToInvalidate: [[constants.QUERY_KEYS.FOLDERS, config.type, constants.QUERY_KEYS.LIST]]
|
|
48
|
+
});
|
|
61
49
|
};
|
|
62
50
|
var useBulkUpdateFolders = function useBulkUpdateFolders(config) {
|
|
63
51
|
return reactUtils.useMutationWithInvalidation(config.api.bulkUpdate, {
|
|
@@ -65,9 +53,27 @@ var useBulkUpdateFolders = function useBulkUpdateFolders(config) {
|
|
|
65
53
|
});
|
|
66
54
|
};
|
|
67
55
|
var useBulkDestroyFolders = function useBulkDestroyFolders(config) {
|
|
68
|
-
return
|
|
56
|
+
return reactUtils.useMutationWithInvalidation(config.api.bulkDestroy, {
|
|
57
|
+
keysToInvalidate: [[constants.QUERY_KEYS.FOLDERS, config.type, constants.QUERY_KEYS.LIST], [constants.QUERY_KEYS.FOLDERS, config.type, constants.QUERY_KEYS.DETAILS]].concat(config.invalidationKeys)
|
|
58
|
+
});
|
|
69
59
|
};
|
|
70
60
|
|
|
61
|
+
var DEFAULT_LABELS = {
|
|
62
|
+
folder: i18next.t("common.folder"),
|
|
63
|
+
folders: i18next.t("common.folders"),
|
|
64
|
+
item: i18next.t("common.item"),
|
|
65
|
+
items: i18next.t("common.items")
|
|
66
|
+
};
|
|
67
|
+
var DEFAULT_API = {
|
|
68
|
+
// Folder CRUD
|
|
69
|
+
fetch: neetoCist.noop,
|
|
70
|
+
get: neetoCist.noop,
|
|
71
|
+
create: neetoCist.noop,
|
|
72
|
+
update: neetoCist.noop,
|
|
73
|
+
destroy: neetoCist.noop,
|
|
74
|
+
bulkUpdate: neetoCist.noop,
|
|
75
|
+
bulkDestroy: neetoCist.noop
|
|
76
|
+
};
|
|
71
77
|
var DEFAULT_CONFIG = {
|
|
72
78
|
type: "FOLDER",
|
|
73
79
|
// For query keys with different associated entities
|
|
@@ -75,20 +81,13 @@ var DEFAULT_CONFIG = {
|
|
|
75
81
|
// Maximum allowed depth for folder tree
|
|
76
82
|
folderPath: "/folders/:folderId",
|
|
77
83
|
// Path for handling URL redirections
|
|
78
|
-
|
|
79
|
-
// For displaying the item label in counts
|
|
80
|
-
itemKeys: [],
|
|
84
|
+
invalidationKeys: [],
|
|
81
85
|
// For invalidation purposes
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
update: neetoCist.noop,
|
|
88
|
-
destroy: neetoCist.noop,
|
|
89
|
-
bulkUpdate: neetoCist.noop,
|
|
90
|
-
bulkDestroy: neetoCist.noop
|
|
91
|
-
}
|
|
86
|
+
reorderMode: "rearrange",
|
|
87
|
+
// rearrange | reorder
|
|
88
|
+
labels: DEFAULT_LABELS,
|
|
89
|
+
params: {},
|
|
90
|
+
api: DEFAULT_API
|
|
92
91
|
};
|
|
93
92
|
|
|
94
93
|
function ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
@@ -114,24 +113,16 @@ var useFolderStore = zustand.create(reactUtils.withImmutableActions(function (se
|
|
|
114
113
|
};
|
|
115
114
|
}));
|
|
116
115
|
|
|
117
|
-
var getActiveFolderId = function getActiveFolderId(config) {
|
|
118
|
-
var _matchPath;
|
|
119
|
-
return (_matchPath = reactRouterDom.matchPath(window.location.pathname, config.folderPath)) === null || _matchPath === void 0 || (_matchPath = _matchPath.params) === null || _matchPath === void 0 ? void 0 : _matchPath.folderId;
|
|
120
|
-
};
|
|
121
|
-
var isActiveFolder = function isActiveFolder(config, folderId) {
|
|
122
|
-
return getActiveFolderId(config) === folderId;
|
|
123
|
-
};
|
|
124
|
-
|
|
125
116
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
126
117
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
127
118
|
var useFolder = function useFolder(configArg) {
|
|
128
119
|
var config = _objectSpread(_objectSpread({}, DEFAULT_CONFIG), configArg);
|
|
129
|
-
var folderId = getActiveFolderId(config);
|
|
120
|
+
var folderId = internal.getActiveFolderId(config);
|
|
130
121
|
var _useShowFolder = useShowFolder(config, folderId),
|
|
131
122
|
folder = _useShowFolder.data,
|
|
132
|
-
|
|
123
|
+
isFetching = _useShowFolder.isFetching;
|
|
133
124
|
return {
|
|
134
|
-
isLoading:
|
|
125
|
+
isLoading: isFetching && (folder === null || folder === void 0 ? void 0 : folder.slug) !== folderId,
|
|
135
126
|
folderId: folderId,
|
|
136
127
|
folder: folder
|
|
137
128
|
};
|
|
@@ -211,8 +202,6 @@ var useFolderActions = function useFolderActions(config) {
|
|
|
211
202
|
};
|
|
212
203
|
|
|
213
204
|
exports.DEFAULT_CONFIG = DEFAULT_CONFIG;
|
|
214
|
-
exports.getActiveFolderId = getActiveFolderId;
|
|
215
|
-
exports.isActiveFolder = isActiveFolder;
|
|
216
205
|
exports.useCreateFolder = useCreateFolder;
|
|
217
206
|
exports.useDestroyFolder = useDestroyFolder;
|
|
218
207
|
exports.useFetchFolders = useFetchFolders;
|
|
@@ -222,4 +211,4 @@ exports.useFolderStore = useFolderStore;
|
|
|
222
211
|
exports.useFolders = useFolders;
|
|
223
212
|
exports.useReorderFolders = useReorderFolders;
|
|
224
213
|
exports.useUpdateFolder = useUpdateFolder;
|
|
225
|
-
//# sourceMappingURL=useFolderActions-
|
|
214
|
+
//# sourceMappingURL=useFolderActions-D8xGNhk0.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFolderActions-D8xGNhk0.js","sources":["../app/javascript/src/hooks/reactQuery/useFoldersApi.js","../app/javascript/src/constants/config.js","../app/javascript/src/hooks/useFolders.js","../app/javascript/src/stores/foldersStore.js","../app/javascript/src/hooks/useFolder.js","../app/javascript/src/hooks/useFolderActions.js"],"sourcesContent":["import { useQuery } from \"@tanstack/react-query\";\nimport { useMutationWithInvalidation } from \"neetocommons/react-utils\";\n\nimport { QUERY_KEYS } from \"constants/query\";\n\nexport const useFetchFolders = config =>\n useQuery({\n queryKey: [QUERY_KEYS.FOLDERS, config.type, QUERY_KEYS.LIST, config.params],\n queryFn: () => config.api.fetch(config.params),\n });\n\nexport const useShowFolder = (config, folderId) =>\n useQuery({\n queryKey: [\n QUERY_KEYS.FOLDERS,\n config.type,\n QUERY_KEYS.DETAILS,\n folderId,\n config.params,\n ],\n queryFn: () => config.api.get(folderId, config.params),\n enabled: !!folderId,\n });\n\nexport const useCreateFolder = config =>\n useMutationWithInvalidation(config.api.create, {\n keysToInvalidate: [[QUERY_KEYS.FOLDERS, config.type]],\n });\n\nexport const useUpdateFolder = config =>\n useMutationWithInvalidation(config.api.update, {\n keysToInvalidate: [[QUERY_KEYS.FOLDERS, config.type]],\n });\n\nexport const useReorderFolders = config =>\n useMutationWithInvalidation(config.api.reorder, {\n keysToInvalidate: [[QUERY_KEYS.FOLDERS, config.type]],\n });\n\nexport const useDestroyFolder = config =>\n useMutationWithInvalidation(config.api.destroy, {\n keysToInvalidate: [[QUERY_KEYS.FOLDERS, config.type, QUERY_KEYS.LIST]],\n });\n\nexport const useBulkUpdateFolders = config =>\n useMutationWithInvalidation(config.api.bulkUpdate, {\n keysToInvalidate: [[QUERY_KEYS.FOLDERS, config.type]],\n });\n\nexport const useBulkDestroyFolders = config =>\n useMutationWithInvalidation(config.api.bulkDestroy, {\n keysToInvalidate: [\n [QUERY_KEYS.FOLDERS, config.type, QUERY_KEYS.LIST],\n [QUERY_KEYS.FOLDERS, config.type, QUERY_KEYS.DETAILS],\n ].concat(config.invalidationKeys),\n });\n","import { t } from \"i18next\";\nimport { noop } from \"neetocist\";\n\nconst DEFAULT_LABELS = {\n folder: t(\"common.folder\"),\n folders: t(\"common.folders\"),\n item: t(\"common.item\"),\n items: t(\"common.items\"),\n};\n\nconst DEFAULT_API = {\n // Folder CRUD\n fetch: noop,\n get: noop,\n create: noop,\n update: noop,\n destroy: noop,\n bulkUpdate: noop,\n bulkDestroy: noop,\n};\n\nexport const DEFAULT_CONFIG = {\n type: \"FOLDER\", // For query keys with different associated entities\n maxDepth: 2, // Maximum allowed depth for folder tree\n folderPath: \"/folders/:folderId\", // Path for handling URL redirections\n invalidationKeys: [], // For invalidation purposes\n reorderMode: \"rearrange\", // rearrange | reorder\n labels: DEFAULT_LABELS,\n params: {},\n api: DEFAULT_API,\n};\n","import { DEFAULT_CONFIG } from \"constants/config\";\nimport { useFetchFolders } from \"hooks/reactQuery/useFoldersApi\";\n\nconst useFolders = configArg => {\n const config = { ...DEFAULT_CONFIG, ...configArg };\n const { data: folders, isLoading } = useFetchFolders(config);\n\n return { isLoading, folders };\n};\n\nexport default useFolders;\n","import { withImmutableActions } from \"neetocommons/react-utils\";\nimport { create } from \"zustand\";\n\n/** @type {import(\"neetocommons/react-utils\").ZustandStoreHook} */\nconst useFolderStore = create(\n withImmutableActions(set => ({\n paneState: null,\n alertState: null,\n selectedItem: null,\n setFolderState: set,\n }))\n);\n\nexport default useFolderStore;\n","import { DEFAULT_CONFIG } from \"constants/config\";\nimport { useShowFolder } from \"hooks/reactQuery/useFoldersApi\";\nimport { getActiveFolderId } from \"utils/internal\";\n\nconst useFolder = configArg => {\n const config = { ...DEFAULT_CONFIG, ...configArg };\n const folderId = getActiveFolderId(config);\n\n const { data: folder, isFetching } = useShowFolder(config, folderId);\n\n return {\n isLoading: isFetching && folder?.slug !== folderId,\n folderId,\n folder,\n };\n};\n\nexport default useFolder;\n","import { useQueryClient } from \"@tanstack/react-query\";\n\nimport { QUERY_KEYS } from \"constants/query\";\nimport useFolderStore from \"stores/foldersStore\";\n\nimport {\n useBulkUpdateFolders,\n useBulkDestroyFolders,\n} from \"./reactQuery/useFoldersApi\";\n\nconst useFolderActions = config => {\n const queryClient = useQueryClient();\n const { setFolderState } = useFolderStore.pick();\n\n const { mutateAsync: onBulkUpdate, isPending: isUpdating } =\n useBulkUpdateFolders(config);\n\n const { mutateAsync: onBulkDelete, isPending: isDeleting } =\n useBulkDestroyFolders(config);\n\n const onInvalidate = () => {\n queryClient.invalidateQueries({\n queryKey: [QUERY_KEYS.FOLDERS, config.type],\n });\n };\n\n const onAdd = () =>\n setFolderState({ paneState: { type: \"add\", item: null } });\n\n const onEdit = item => setFolderState({ paneState: { type: \"edit\", item } });\n\n const onMove = item => setFolderState({ paneState: { type: \"move\", item } });\n\n const onDelete = item =>\n setFolderState({ alertState: { type: \"delete\", item } });\n\n const onReorder = () =>\n setFolderState({ paneState: { type: \"reorder\", item: null } });\n\n const isPending = isUpdating || isDeleting;\n\n return {\n isPending,\n onAdd,\n onEdit,\n onMove,\n onDelete,\n onReorder,\n onInvalidate,\n onBulkUpdate,\n onBulkDelete,\n };\n};\n\nexport default useFolderActions;\n"],"names":["useFetchFolders","config","useQuery","queryKey","QUERY_KEYS","FOLDERS","type","LIST","params","queryFn","api","fetch","useShowFolder","folderId","DETAILS","get","enabled","useCreateFolder","useMutationWithInvalidation","create","keysToInvalidate","useUpdateFolder","update","useReorderFolders","reorder","useDestroyFolder","destroy","useBulkUpdateFolders","bulkUpdate","useBulkDestroyFolders","bulkDestroy","concat","invalidationKeys","DEFAULT_LABELS","folder","t","folders","item","items","DEFAULT_API","noop","DEFAULT_CONFIG","maxDepth","folderPath","reorderMode","labels","useFolders","configArg","_objectSpread","_useFetchFolders","data","isLoading","useFolderStore","withImmutableActions","set","paneState","alertState","selectedItem","setFolderState","useFolder","getActiveFolderId","_useShowFolder","isFetching","slug","useFolderActions","queryClient","useQueryClient","_useFolderStore","store","shallow","_useBulkUpdateFolders","onBulkUpdate","mutateAsync","isUpdating","isPending","_useBulkDestroyFolder","onBulkDelete","isDeleting","onInvalidate","invalidateQueries","onAdd","onEdit","onMove","onDelete","onReorder"],"mappings":";;;;;;;;;;;;IAKaA,eAAe,GAAG,SAAlBA,eAAeA,CAAGC,MAAM,EAAA;AAAA,EAAA,OACnCC,mBAAQ,CAAC;AACPC,IAAAA,QAAQ,EAAE,CAACC,oBAAU,CAACC,OAAO,EAAEJ,MAAM,CAACK,IAAI,EAAEF,oBAAU,CAACG,IAAI,EAAEN,MAAM,CAACO,MAAM,CAAC;IAC3EC,OAAO,EAAE,SAATA,OAAOA,GAAA;MAAA,OAAQR,MAAM,CAACS,GAAG,CAACC,KAAK,CAACV,MAAM,CAACO,MAAM,CAAC;AAAA;AAChD,GAAC,CAAC;AAAA;AAEG,IAAMI,aAAa,GAAG,SAAhBA,aAAaA,CAAIX,MAAM,EAAEY,QAAQ,EAAA;AAAA,EAAA,OAC5CX,mBAAQ,CAAC;AACPC,IAAAA,QAAQ,EAAE,CACRC,oBAAU,CAACC,OAAO,EAClBJ,MAAM,CAACK,IAAI,EACXF,oBAAU,CAACU,OAAO,EAClBD,QAAQ,EACRZ,MAAM,CAACO,MAAM,CACd;IACDC,OAAO,EAAE,SAATA,OAAOA,GAAA;MAAA,OAAQR,MAAM,CAACS,GAAG,CAACK,GAAG,CAACF,QAAQ,EAAEZ,MAAM,CAACO,MAAM,CAAC;AAAA,KAAA;IACtDQ,OAAO,EAAE,CAAC,CAACH;AACb,GAAC,CAAC;AAAA,CAAA;IAESI,eAAe,GAAG,SAAlBA,eAAeA,CAAGhB,MAAM,EAAA;AAAA,EAAA,OACnCiB,sCAA2B,CAACjB,MAAM,CAACS,GAAG,CAACS,MAAM,EAAE;IAC7CC,gBAAgB,EAAE,CAAC,CAAChB,oBAAU,CAACC,OAAO,EAAEJ,MAAM,CAACK,IAAI,CAAC;AACtD,GAAC,CAAC;AAAA;IAESe,eAAe,GAAG,SAAlBA,eAAeA,CAAGpB,MAAM,EAAA;AAAA,EAAA,OACnCiB,sCAA2B,CAACjB,MAAM,CAACS,GAAG,CAACY,MAAM,EAAE;IAC7CF,gBAAgB,EAAE,CAAC,CAAChB,oBAAU,CAACC,OAAO,EAAEJ,MAAM,CAACK,IAAI,CAAC;AACtD,GAAC,CAAC;AAAA;IAESiB,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAGtB,MAAM,EAAA;AAAA,EAAA,OACrCiB,sCAA2B,CAACjB,MAAM,CAACS,GAAG,CAACc,OAAO,EAAE;IAC9CJ,gBAAgB,EAAE,CAAC,CAAChB,oBAAU,CAACC,OAAO,EAAEJ,MAAM,CAACK,IAAI,CAAC;AACtD,GAAC,CAAC;AAAA;IAESmB,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAGxB,MAAM,EAAA;AAAA,EAAA,OACpCiB,sCAA2B,CAACjB,MAAM,CAACS,GAAG,CAACgB,OAAO,EAAE;AAC9CN,IAAAA,gBAAgB,EAAE,CAAC,CAAChB,oBAAU,CAACC,OAAO,EAAEJ,MAAM,CAACK,IAAI,EAAEF,oBAAU,CAACG,IAAI,CAAC;AACvE,GAAC,CAAC;AAAA;AAEG,IAAMoB,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAG1B,MAAM,EAAA;AAAA,EAAA,OACxCiB,sCAA2B,CAACjB,MAAM,CAACS,GAAG,CAACkB,UAAU,EAAE;IACjDR,gBAAgB,EAAE,CAAC,CAAChB,oBAAU,CAACC,OAAO,EAAEJ,MAAM,CAACK,IAAI,CAAC;AACtD,GAAC,CAAC;AAAA,CAAA;AAEG,IAAMuB,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAG5B,MAAM,EAAA;AAAA,EAAA,OACzCiB,sCAA2B,CAACjB,MAAM,CAACS,GAAG,CAACoB,WAAW,EAAE;AAClDV,IAAAA,gBAAgB,EAAE,CAChB,CAAChB,oBAAU,CAACC,OAAO,EAAEJ,MAAM,CAACK,IAAI,EAAEF,oBAAU,CAACG,IAAI,CAAC,EAClD,CAACH,oBAAU,CAACC,OAAO,EAAEJ,MAAM,CAACK,IAAI,EAAEF,oBAAU,CAACU,OAAO,CAAC,CACtD,CAACiB,MAAM,CAAC9B,MAAM,CAAC+B,gBAAgB;AAClC,GAAC,CAAC;AAAA,CAAA;;ACpDJ,IAAMC,cAAc,GAAG;AACrBC,EAAAA,MAAM,EAAEC,SAAC,CAAC,eAAe,CAAC;AAC1BC,EAAAA,OAAO,EAAED,SAAC,CAAC,gBAAgB,CAAC;AAC5BE,EAAAA,IAAI,EAAEF,SAAC,CAAC,aAAa,CAAC;EACtBG,KAAK,EAAEH,SAAC,CAAC,cAAc;AACzB,CAAC;AAED,IAAMI,WAAW,GAAG;AAClB;AACA5B,EAAAA,KAAK,EAAE6B,cAAI;AACXzB,EAAAA,GAAG,EAAEyB,cAAI;AACTrB,EAAAA,MAAM,EAAEqB,cAAI;AACZlB,EAAAA,MAAM,EAAEkB,cAAI;AACZd,EAAAA,OAAO,EAAEc,cAAI;AACbZ,EAAAA,UAAU,EAAEY,cAAI;AAChBV,EAAAA,WAAW,EAAEU;AACf,CAAC;AAEM,IAAMC,cAAc,GAAG;AAC5BnC,EAAAA,IAAI,EAAE,QAAQ;AAAE;AAChBoC,EAAAA,QAAQ,EAAE,CAAC;AAAE;AACbC,EAAAA,UAAU,EAAE,oBAAoB;AAAE;AAClCX,EAAAA,gBAAgB,EAAE,EAAE;AAAE;AACtBY,EAAAA,WAAW,EAAE,WAAW;AAAE;AAC1BC,EAAAA,MAAM,EAAEZ,cAAc;EACtBzB,MAAM,EAAE,EAAE;AACVE,EAAAA,GAAG,EAAE6B;AACP;;;;AC3BA,IAAMO,UAAU,GAAG,SAAbA,UAAUA,CAAGC,SAAS,EAAI;EAC9B,IAAM9C,MAAM,GAAA+C,eAAA,CAAAA,eAAA,CAAQP,EAAAA,EAAAA,cAAc,CAAKM,EAAAA,SAAS,CAAE;AAClD,EAAA,IAAAE,gBAAA,GAAqCjD,eAAe,CAACC,MAAM,CAAC;IAA9CmC,OAAO,GAAAa,gBAAA,CAAbC,IAAI;IAAWC,SAAS,GAAAF,gBAAA,CAATE,SAAS;EAEhC,OAAO;AAAEA,IAAAA,SAAS,EAATA,SAAS;AAAEf,IAAAA,OAAO,EAAPA;GAAS;AAC/B;;ACLA;AACA,IAAMgB,cAAc,GAAGjC,cAAM,CAC3BkC,+BAAoB,CAAC,UAAAC,GAAG,EAAA;EAAA,OAAK;AAC3BC,IAAAA,SAAS,EAAE,IAAI;AACfC,IAAAA,UAAU,EAAE,IAAI;AAChBC,IAAAA,YAAY,EAAE,IAAI;AAClBC,IAAAA,cAAc,EAAEJ;GACjB;AAAA,CAAC,CACJ;;;;ACPA,IAAMK,SAAS,GAAG,SAAZA,SAASA,CAAGZ,SAAS,EAAI;EAC7B,IAAM9C,MAAM,GAAA+C,aAAA,CAAAA,aAAA,CAAQP,EAAAA,EAAAA,cAAc,CAAKM,EAAAA,SAAS,CAAE;AAClD,EAAA,IAAMlC,QAAQ,GAAG+C,0BAAiB,CAAC3D,MAAM,CAAC;AAE1C,EAAA,IAAA4D,cAAA,GAAqCjD,aAAa,CAACX,MAAM,EAAEY,QAAQ,CAAC;IAAtDqB,MAAM,GAAA2B,cAAA,CAAZX,IAAI;IAAUY,UAAU,GAAAD,cAAA,CAAVC,UAAU;EAEhC,OAAO;AACLX,IAAAA,SAAS,EAAEW,UAAU,IAAI,CAAA5B,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAANA,MAAM,CAAE6B,IAAI,MAAKlD,QAAQ;AAClDA,IAAAA,QAAQ,EAARA,QAAQ;AACRqB,IAAAA,MAAM,EAANA;GACD;AACH;;ACLA,IAAM8B,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAG/D,MAAM,EAAI;AACjC,EAAA,IAAMgE,WAAW,GAAGC,yBAAc,EAAE;AACpC,EAAA,IAAAC,eAAA,GAAAf,cAAA,CAAA,UAAAgB,KAAA,EAAA;AAAA,MAAA,OAAA;AAAQV,QAAAA,cAAc,EAAAU,KAAA,CAAA,gBAAA;AAAA,OAAA;AAAA,KAAA,EAAAC,eAAA,CAAA;IAAdX,cAAc,GAAAS,eAAA,CAAdT,cAAc;AAEtB,EAAA,IAAAY,qBAAA,GACE3C,oBAAoB,CAAC1B,MAAM,CAAC;IADTsE,YAAY,GAAAD,qBAAA,CAAzBE,WAAW;IAA2BC,UAAU,GAAAH,qBAAA,CAArBI,SAAS;AAG5C,EAAA,IAAAC,qBAAA,GACE9C,qBAAqB,CAAC5B,MAAM,CAAC;IADV2E,YAAY,GAAAD,qBAAA,CAAzBH,WAAW;IAA2BK,UAAU,GAAAF,qBAAA,CAArBD,SAAS;AAG5C,EAAA,IAAMI,YAAY,GAAG,SAAfA,YAAYA,GAAS;IACzBb,WAAW,CAACc,iBAAiB,CAAC;MAC5B5E,QAAQ,EAAE,CAACC,oBAAU,CAACC,OAAO,EAAEJ,MAAM,CAACK,IAAI;AAC5C,KAAC,CAAC;GACH;AAED,EAAA,IAAM0E,KAAK,GAAG,SAARA,KAAKA,GAAA;AAAA,IAAA,OACTtB,cAAc,CAAC;AAAEH,MAAAA,SAAS,EAAE;AAAEjD,QAAAA,IAAI,EAAE,KAAK;AAAE+B,QAAAA,IAAI,EAAE;AAAK;AAAE,KAAC,CAAC;AAAA,GAAA;AAE5D,EAAA,IAAM4C,MAAM,GAAG,SAATA,MAAMA,CAAG5C,IAAI,EAAA;AAAA,IAAA,OAAIqB,cAAc,CAAC;AAAEH,MAAAA,SAAS,EAAE;AAAEjD,QAAAA,IAAI,EAAE,MAAM;AAAE+B,QAAAA,IAAI,EAAJA;AAAK;AAAE,KAAC,CAAC;AAAA,GAAA;AAE5E,EAAA,IAAM6C,MAAM,GAAG,SAATA,MAAMA,CAAG7C,IAAI,EAAA;AAAA,IAAA,OAAIqB,cAAc,CAAC;AAAEH,MAAAA,SAAS,EAAE;AAAEjD,QAAAA,IAAI,EAAE,MAAM;AAAE+B,QAAAA,IAAI,EAAJA;AAAK;AAAE,KAAC,CAAC;AAAA,GAAA;AAE5E,EAAA,IAAM8C,QAAQ,GAAG,SAAXA,QAAQA,CAAG9C,IAAI,EAAA;AAAA,IAAA,OACnBqB,cAAc,CAAC;AAAEF,MAAAA,UAAU,EAAE;AAAElD,QAAAA,IAAI,EAAE,QAAQ;AAAE+B,QAAAA,IAAI,EAAJA;AAAK;AAAE,KAAC,CAAC;AAAA,GAAA;AAE1D,EAAA,IAAM+C,SAAS,GAAG,SAAZA,SAASA,GAAA;AAAA,IAAA,OACb1B,cAAc,CAAC;AAAEH,MAAAA,SAAS,EAAE;AAAEjD,QAAAA,IAAI,EAAE,SAAS;AAAE+B,QAAAA,IAAI,EAAE;AAAK;AAAE,KAAC,CAAC;AAAA,GAAA;AAEhE,EAAA,IAAMqC,SAAS,GAAGD,UAAU,IAAII,UAAU;EAE1C,OAAO;AACLH,IAAAA,SAAS,EAATA,SAAS;AACTM,IAAAA,KAAK,EAALA,KAAK;AACLC,IAAAA,MAAM,EAANA,MAAM;AACNC,IAAAA,MAAM,EAANA,MAAM;AACNC,IAAAA,QAAQ,EAARA,QAAQ;AACRC,IAAAA,SAAS,EAATA,SAAS;AACTN,IAAAA,YAAY,EAAZA,YAAY;AACZP,IAAAA,YAAY,EAAZA,YAAY;AACZK,IAAAA,YAAY,EAAZA;GACD;AACH;;;;;;;;;;;;;"}
|
package/dist/utils.js
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
import 'ramda';
|
|
2
|
+
export { f as flattenTree, p as pathToFolder } from './index-Cq1DyvVr.js';
|
|
2
3
|
import '@babel/runtime/helpers/defineProperty';
|
|
4
|
+
import '@bigbinary/neeto-cist';
|
|
5
|
+
import './internal-G6z0jIQe.js';
|
|
6
|
+
import 'react-router-dom';
|
|
3
7
|
//# sourceMappingURL=utils.js.map
|
package/dist/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bigbinary/neeto-folders-frontend",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"description": "A repo acts as the source of truth for the new nano's structure, configs, data etc.",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"homepage": "https://github.com/bigbinary/neeto-folders-nano",
|
|
@@ -62,11 +62,11 @@
|
|
|
62
62
|
"@bigbinary/babel-preset-neeto": "^1.0.3",
|
|
63
63
|
"@bigbinary/eslint-plugin-neeto": "1.5.8",
|
|
64
64
|
"@bigbinary/neeto-cist": "1.0.15",
|
|
65
|
-
"@bigbinary/neeto-commons-frontend": "4.13.
|
|
66
|
-
"@bigbinary/neeto-filters-frontend": "4.3.
|
|
67
|
-
"@bigbinary/neeto-icons": "1.20.
|
|
68
|
-
"@bigbinary/neeto-molecules": "3.16.
|
|
69
|
-
"@bigbinary/neetoui": "8.2.
|
|
65
|
+
"@bigbinary/neeto-commons-frontend": "4.13.30",
|
|
66
|
+
"@bigbinary/neeto-filters-frontend": "4.3.18",
|
|
67
|
+
"@bigbinary/neeto-icons": "1.20.38",
|
|
68
|
+
"@bigbinary/neeto-molecules": "3.16.24",
|
|
69
|
+
"@bigbinary/neetoui": "8.2.80",
|
|
70
70
|
"@emotion/is-prop-valid": "1.2.0",
|
|
71
71
|
"@faker-js/faker": "8.2.0",
|
|
72
72
|
"@honeybadger-io/js": "6.10.1",
|
|
@@ -170,11 +170,11 @@
|
|
|
170
170
|
"peerDependencies": {
|
|
171
171
|
"@babel/runtime": "7.26.10",
|
|
172
172
|
"@bigbinary/neeto-cist": "1.0.15",
|
|
173
|
-
"@bigbinary/neeto-commons-frontend": "4.13.
|
|
174
|
-
"@bigbinary/neeto-filters-frontend": "4.3.
|
|
175
|
-
"@bigbinary/neeto-icons": "1.20.
|
|
176
|
-
"@bigbinary/neeto-molecules": "3.16.
|
|
177
|
-
"@bigbinary/neetoui": "8.2.
|
|
173
|
+
"@bigbinary/neeto-commons-frontend": "4.13.30",
|
|
174
|
+
"@bigbinary/neeto-filters-frontend": "4.3.18",
|
|
175
|
+
"@bigbinary/neeto-icons": "1.20.38",
|
|
176
|
+
"@bigbinary/neeto-molecules": "3.16.24",
|
|
177
|
+
"@bigbinary/neetoui": "8.2.80",
|
|
178
178
|
"@honeybadger-io/js": "6.10.1",
|
|
179
179
|
"@honeybadger-io/react": "6.1.25",
|
|
180
180
|
"@tailwindcss/container-queries": "^0.1.1",
|