@replyke/core 7.0.0-beta.17 → 7.0.0-beta.19

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.
Files changed (102) hide show
  1. package/dist/cjs/hooks/collections/index.d.ts +3 -0
  2. package/dist/cjs/hooks/collections/index.js +14 -0
  3. package/dist/cjs/hooks/collections/index.js.map +1 -0
  4. package/dist/cjs/hooks/collections/useCollections.d.ts +36 -0
  5. package/dist/cjs/hooks/{lists/useLists.js → collections/useCollections.js} +77 -76
  6. package/dist/cjs/hooks/collections/useCollections.js.map +1 -0
  7. package/dist/cjs/hooks/collections/useCollectionsActions.d.ts +21 -0
  8. package/dist/cjs/hooks/{lists/useListsActions.js → collections/useCollectionsActions.js} +110 -110
  9. package/dist/cjs/hooks/collections/useCollectionsActions.js.map +1 -0
  10. package/dist/{esm/hooks/lists → cjs/hooks/collections}/useIsEntitySaved.d.ts +2 -2
  11. package/dist/cjs/hooks/{lists → collections}/useIsEntitySaved.js +3 -3
  12. package/dist/cjs/hooks/collections/useIsEntitySaved.js.map +1 -0
  13. package/dist/cjs/index.d.ts +2 -2
  14. package/dist/cjs/index.js +6 -6
  15. package/dist/cjs/index.js.map +1 -1
  16. package/dist/cjs/interfaces/models/{List.d.ts → Collection.d.ts} +1 -1
  17. package/dist/cjs/interfaces/models/{List.js → Collection.js} +1 -1
  18. package/dist/cjs/interfaces/models/Collection.js.map +1 -0
  19. package/dist/cjs/store/api/appNotificationsApi.d.ts +181 -181
  20. package/dist/cjs/store/api/baseApi.d.ts +1 -1
  21. package/dist/cjs/store/api/baseApi.js +1 -1
  22. package/dist/cjs/store/api/baseApi.js.map +1 -1
  23. package/dist/cjs/store/api/{listsApi.d.ts → collectionsApi.d.ts} +573 -573
  24. package/dist/cjs/store/api/{listsApi.js → collectionsApi.js} +64 -64
  25. package/dist/cjs/store/api/collectionsApi.js.map +1 -0
  26. package/dist/cjs/store/api/entityListsApi.d.ts +107 -107
  27. package/dist/cjs/store/api/index.d.ts +1 -1
  28. package/dist/cjs/store/api/index.js +2 -2
  29. package/dist/cjs/store/api/index.js.map +1 -1
  30. package/dist/cjs/store/api/spacesApi.d.ts +950 -950
  31. package/dist/cjs/store/api/userApi.d.ts +3 -3
  32. package/dist/cjs/store/index.d.ts +4 -4
  33. package/dist/cjs/store/rootReducer.d.ts +4 -4
  34. package/dist/cjs/store/rootReducer.js +2 -2
  35. package/dist/cjs/store/rootReducer.js.map +1 -1
  36. package/dist/cjs/store/slices/{listsSlice.d.ts → collectionsSlice.d.ts} +128 -128
  37. package/dist/cjs/store/slices/collectionsSlice.js +211 -0
  38. package/dist/cjs/store/slices/collectionsSlice.js.map +1 -0
  39. package/dist/esm/hooks/collections/index.d.ts +3 -0
  40. package/dist/esm/hooks/collections/index.js +5 -0
  41. package/dist/esm/hooks/collections/index.js.map +1 -0
  42. package/dist/esm/hooks/collections/useCollections.d.ts +36 -0
  43. package/dist/esm/hooks/{lists/useLists.js → collections/useCollections.js} +75 -74
  44. package/dist/esm/hooks/collections/useCollections.js.map +1 -0
  45. package/dist/esm/hooks/collections/useCollectionsActions.d.ts +21 -0
  46. package/dist/esm/hooks/{lists/useListsActions.js → collections/useCollectionsActions.js} +101 -101
  47. package/dist/esm/hooks/collections/useCollectionsActions.js.map +1 -0
  48. package/dist/{cjs/hooks/lists → esm/hooks/collections}/useIsEntitySaved.d.ts +2 -2
  49. package/dist/esm/hooks/{lists → collections}/useIsEntitySaved.js +3 -3
  50. package/dist/esm/hooks/collections/useIsEntitySaved.js.map +1 -0
  51. package/dist/esm/index.d.ts +2 -2
  52. package/dist/esm/index.js +2 -2
  53. package/dist/esm/index.js.map +1 -1
  54. package/dist/esm/interfaces/models/{List.d.ts → Collection.d.ts} +1 -1
  55. package/dist/esm/interfaces/models/Collection.js +2 -0
  56. package/dist/esm/interfaces/models/Collection.js.map +1 -0
  57. package/dist/esm/store/api/appNotificationsApi.d.ts +181 -181
  58. package/dist/esm/store/api/baseApi.d.ts +1 -1
  59. package/dist/esm/store/api/baseApi.js +1 -1
  60. package/dist/esm/store/api/baseApi.js.map +1 -1
  61. package/dist/esm/store/api/{listsApi.d.ts → collectionsApi.d.ts} +573 -573
  62. package/dist/esm/store/api/{listsApi.js → collectionsApi.js} +63 -63
  63. package/dist/esm/store/api/collectionsApi.js.map +1 -0
  64. package/dist/esm/store/api/entityListsApi.d.ts +107 -107
  65. package/dist/esm/store/api/index.d.ts +1 -1
  66. package/dist/esm/store/api/index.js +2 -2
  67. package/dist/esm/store/api/index.js.map +1 -1
  68. package/dist/esm/store/api/spacesApi.d.ts +950 -950
  69. package/dist/esm/store/api/userApi.d.ts +3 -3
  70. package/dist/esm/store/index.d.ts +4 -4
  71. package/dist/esm/store/rootReducer.d.ts +4 -4
  72. package/dist/esm/store/rootReducer.js +2 -2
  73. package/dist/esm/store/rootReducer.js.map +1 -1
  74. package/dist/esm/store/slices/{listsSlice.d.ts → collectionsSlice.d.ts} +128 -128
  75. package/dist/esm/store/slices/collectionsSlice.js +202 -0
  76. package/dist/esm/store/slices/collectionsSlice.js.map +1 -0
  77. package/package.json +1 -1
  78. package/dist/cjs/hooks/lists/index.d.ts +0 -3
  79. package/dist/cjs/hooks/lists/index.js +0 -14
  80. package/dist/cjs/hooks/lists/index.js.map +0 -1
  81. package/dist/cjs/hooks/lists/useIsEntitySaved.js.map +0 -1
  82. package/dist/cjs/hooks/lists/useLists.d.ts +0 -36
  83. package/dist/cjs/hooks/lists/useLists.js.map +0 -1
  84. package/dist/cjs/hooks/lists/useListsActions.d.ts +0 -21
  85. package/dist/cjs/hooks/lists/useListsActions.js.map +0 -1
  86. package/dist/cjs/interfaces/models/List.js.map +0 -1
  87. package/dist/cjs/store/api/listsApi.js.map +0 -1
  88. package/dist/cjs/store/slices/listsSlice.js +0 -211
  89. package/dist/cjs/store/slices/listsSlice.js.map +0 -1
  90. package/dist/esm/hooks/lists/index.d.ts +0 -3
  91. package/dist/esm/hooks/lists/index.js +0 -5
  92. package/dist/esm/hooks/lists/index.js.map +0 -1
  93. package/dist/esm/hooks/lists/useIsEntitySaved.js.map +0 -1
  94. package/dist/esm/hooks/lists/useLists.d.ts +0 -36
  95. package/dist/esm/hooks/lists/useLists.js.map +0 -1
  96. package/dist/esm/hooks/lists/useListsActions.d.ts +0 -21
  97. package/dist/esm/hooks/lists/useListsActions.js.map +0 -1
  98. package/dist/esm/interfaces/models/List.js +0 -2
  99. package/dist/esm/interfaces/models/List.js.map +0 -1
  100. package/dist/esm/store/api/listsApi.js.map +0 -1
  101. package/dist/esm/store/slices/listsSlice.js +0 -202
  102. package/dist/esm/store/slices/listsSlice.js.map +0 -1
@@ -0,0 +1,211 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.selectCurrentCollectionId = exports.selectCurrentProjectId = exports.selectCollectionsById = exports.selectSubCollectionsMap = exports.selectCollectionHistory = exports.selectCollectionsLoading = exports.selectSubCollections = exports.selectCurrentCollection = exports.handleError = exports.resetCollections = exports.handleCollectionDeletion = exports.removeCollectionFromSubCollections = exports.addNewCollectionAndNavigate = exports.updateCollectionInSubCollections = exports.updateCurrentCollection = exports.setSubCollections = exports.setCurrentCollection = exports.goToRoot = exports.goBack = exports.openCollection = exports.setLoading = exports.setProjectContext = exports.collectionsSlice = void 0;
5
+ var toolkit_1 = require("@reduxjs/toolkit");
6
+ // Initial state
7
+ var initialState = {
8
+ collectionsById: {},
9
+ subcollectionsMap: {},
10
+ currentCollectionId: null,
11
+ collectionHistory: [],
12
+ loading: false,
13
+ currentProjectId: undefined,
14
+ };
15
+ // Create the slice
16
+ exports.collectionsSlice = (0, toolkit_1.createSlice)({
17
+ name: "collections",
18
+ initialState: initialState,
19
+ reducers: {
20
+ // Set the current project context
21
+ setProjectContext: function (state, action) {
22
+ state.currentProjectId = action.payload;
23
+ },
24
+ // Set loading state
25
+ setLoading: function (state, action) {
26
+ state.loading = action.payload;
27
+ },
28
+ // Navigation actions
29
+ openCollection: function (state, action) {
30
+ var collection = action.payload;
31
+ // Store the collection if not already stored
32
+ if (!state.collectionsById[collection.id]) {
33
+ state.collectionsById[collection.id] = collection;
34
+ }
35
+ // Push current collection ID to history stack before opening new one
36
+ if (state.currentCollectionId) {
37
+ state.collectionHistory.push(state.currentCollectionId);
38
+ }
39
+ // Set new current collection ID
40
+ state.currentCollectionId = collection.id;
41
+ },
42
+ goBack: function (state) {
43
+ if (state.collectionHistory.length === 0)
44
+ return;
45
+ var previousCollectionId = state.collectionHistory.pop();
46
+ if (!previousCollectionId)
47
+ return;
48
+ state.currentCollectionId = previousCollectionId;
49
+ },
50
+ goToRoot: function (state) {
51
+ if (state.collectionHistory.length === 0)
52
+ return;
53
+ var rootCollectionId = state.collectionHistory[0];
54
+ state.collectionHistory = [];
55
+ state.currentCollectionId = rootCollectionId;
56
+ },
57
+ // Set current collection (for initial root collection fetch)
58
+ setCurrentCollection: function (state, action) {
59
+ var collection = action.payload;
60
+ if (collection) {
61
+ state.collectionsById[collection.id] = collection;
62
+ state.currentCollectionId = collection.id;
63
+ }
64
+ else {
65
+ state.currentCollectionId = null;
66
+ }
67
+ },
68
+ // Set sub-collections and update mapping
69
+ setSubCollections: function (state, action) {
70
+ var _a = action.payload, collections = _a.collections, parentCollectionId = _a.parentCollectionId;
71
+ // Store all collections in collectionsById
72
+ collections.forEach(function (collection) {
73
+ state.collectionsById[collection.id] = collection;
74
+ });
75
+ // Update parent-child mapping
76
+ state.subcollectionsMap[parentCollectionId] = collections.map(function (collection) { return collection.id; });
77
+ },
78
+ // Update current collection (for entity add/remove operations)
79
+ updateCurrentCollection: function (state, action) {
80
+ var updatedCollection = action.payload;
81
+ // Update in collectionsById (single source of truth)
82
+ state.collectionsById[updatedCollection.id] = updatedCollection;
83
+ },
84
+ // Update a collection (now just updates in collectionsById)
85
+ updateCollectionInSubCollections: function (state, action) {
86
+ var updatedCollection = action.payload;
87
+ // Update in collectionsById (single source of truth)
88
+ state.collectionsById[updatedCollection.id] = updatedCollection;
89
+ },
90
+ // Add new collection to sub-collections and navigate to it
91
+ addNewCollectionAndNavigate: function (state, action) {
92
+ var newCollection = action.payload;
93
+ if (!state.currentCollectionId)
94
+ return;
95
+ // Store the new collection
96
+ state.collectionsById[newCollection.id] = newCollection;
97
+ // Push current collection ID to history
98
+ state.collectionHistory.push(state.currentCollectionId);
99
+ // Set new collection as current
100
+ state.currentCollectionId = newCollection.id;
101
+ // Update parent-child mapping
102
+ if (newCollection.parentId) {
103
+ if (!state.subcollectionsMap[newCollection.parentId]) {
104
+ state.subcollectionsMap[newCollection.parentId] = [];
105
+ }
106
+ if (!state.subcollectionsMap[newCollection.parentId].includes(newCollection.id)) {
107
+ state.subcollectionsMap[newCollection.parentId].push(newCollection.id);
108
+ }
109
+ }
110
+ },
111
+ // Remove collection from sub-collections and storage
112
+ removeCollectionFromSubCollections: function (state, action) {
113
+ var collectionId = action.payload;
114
+ // Remove from collectionsById
115
+ delete state.collectionsById[collectionId];
116
+ // Remove from all parent-child mappings
117
+ Object.keys(state.subcollectionsMap).forEach(function (parentId) {
118
+ state.subcollectionsMap[parentId] = state.subcollectionsMap[parentId].filter(function (id) { return id !== collectionId; });
119
+ });
120
+ // Remove its own sub-collections mapping if it exists
121
+ delete state.subcollectionsMap[collectionId];
122
+ },
123
+ // Handle collection deletion
124
+ handleCollectionDeletion: function (state, action) {
125
+ var _a = action.payload, collectionId = _a.collectionId, parentId = _a.parentId;
126
+ // Remove from parent-child mapping
127
+ if (parentId && state.subcollectionsMap[parentId]) {
128
+ state.subcollectionsMap[parentId] = state.subcollectionsMap[parentId].filter(function (id) { return id !== collectionId; });
129
+ }
130
+ // Remove from collectionsById
131
+ delete state.collectionsById[collectionId];
132
+ // Remove its own sub-collections mapping
133
+ delete state.subcollectionsMap[collectionId];
134
+ // If deleted collection is current collection, go back
135
+ if (state.currentCollectionId === collectionId) {
136
+ if (state.collectionHistory.length === 0) {
137
+ state.currentCollectionId = null;
138
+ return;
139
+ }
140
+ var previousCollectionId = state.collectionHistory.pop();
141
+ if (!previousCollectionId) {
142
+ state.currentCollectionId = null;
143
+ return;
144
+ }
145
+ state.currentCollectionId = previousCollectionId;
146
+ }
147
+ },
148
+ // Reset all collections data
149
+ resetCollections: function (state) {
150
+ state.collectionsById = {};
151
+ state.subcollectionsMap = {};
152
+ state.currentCollectionId = null;
153
+ state.collectionHistory = [];
154
+ state.loading = false;
155
+ },
156
+ // Handle errors by stopping loading
157
+ handleError: function (state) {
158
+ state.loading = false;
159
+ },
160
+ },
161
+ });
162
+ // Export actions
163
+ exports.setProjectContext = (_a = exports.collectionsSlice.actions, _a.setProjectContext), exports.setLoading = _a.setLoading, exports.openCollection = _a.openCollection, exports.goBack = _a.goBack, exports.goToRoot = _a.goToRoot, exports.setCurrentCollection = _a.setCurrentCollection, exports.setSubCollections = _a.setSubCollections, exports.updateCurrentCollection = _a.updateCurrentCollection, exports.updateCollectionInSubCollections = _a.updateCollectionInSubCollections, exports.addNewCollectionAndNavigate = _a.addNewCollectionAndNavigate, exports.removeCollectionFromSubCollections = _a.removeCollectionFromSubCollections, exports.handleCollectionDeletion = _a.handleCollectionDeletion, exports.resetCollections = _a.resetCollections, exports.handleError = _a.handleError;
164
+ // Export reducer
165
+ exports.default = exports.collectionsSlice.reducer;
166
+ // Selectors
167
+ var selectCurrentCollection = function (state) {
168
+ var _a = state.collections, currentCollectionId = _a.currentCollectionId, collectionsById = _a.collectionsById;
169
+ return currentCollectionId ? collectionsById[currentCollectionId] || null : null;
170
+ };
171
+ exports.selectCurrentCollection = selectCurrentCollection;
172
+ exports.selectSubCollections = (0, toolkit_1.createSelector)([function (state) { return state.collections.currentCollectionId; },
173
+ function (state) { return state.collections.subcollectionsMap; },
174
+ function (state) { return state.collections.collectionsById; }], function (currentCollectionId, subcollectionsMap, collectionsById) {
175
+ if (!currentCollectionId || !subcollectionsMap[currentCollectionId]) {
176
+ return [];
177
+ }
178
+ return subcollectionsMap[currentCollectionId]
179
+ .map(function (collectionId) { return collectionsById[collectionId]; })
180
+ .filter(Boolean); // Remove any undefined entries
181
+ });
182
+ var selectCollectionsLoading = function (state) {
183
+ return state.collections.loading;
184
+ };
185
+ exports.selectCollectionsLoading = selectCollectionsLoading;
186
+ exports.selectCollectionHistory = (0, toolkit_1.createSelector)([function (state) { return state.collections.collectionHistory; },
187
+ function (state) { return state.collections.collectionsById; }], function (collectionHistory, collectionsById) {
188
+ return collectionHistory
189
+ .map(function (collectionId) { return collectionsById[collectionId]; })
190
+ .filter(Boolean); // Remove any undefined entries
191
+ });
192
+ // New selector for the sub-collections mapping
193
+ var selectSubCollectionsMap = function (state) {
194
+ return state.collections.subcollectionsMap;
195
+ };
196
+ exports.selectSubCollectionsMap = selectSubCollectionsMap;
197
+ // New selector for all collections
198
+ var selectCollectionsById = function (state) {
199
+ return state.collections.collectionsById;
200
+ };
201
+ exports.selectCollectionsById = selectCollectionsById;
202
+ var selectCurrentProjectId = function (state) {
203
+ return state.collections.currentProjectId;
204
+ };
205
+ exports.selectCurrentProjectId = selectCurrentProjectId;
206
+ // New selector for current collection ID
207
+ var selectCurrentCollectionId = function (state) {
208
+ return state.collections.currentCollectionId;
209
+ };
210
+ exports.selectCurrentCollectionId = selectCurrentCollectionId;
211
+ //# sourceMappingURL=collectionsSlice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collectionsSlice.js","sourceRoot":"","sources":["../../../../src/store/slices/collectionsSlice.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { useCollectionsActions } from "./useCollectionsActions";
2
+ export { default as useCollections, type UseCollectionsProps, type UseCollectionsValues, } from "./useCollections";
3
+ export { default as useIsEntityInCollection } from "./useIsEntitySaved";
@@ -0,0 +1,5 @@
1
+ // Export Redux-powered collections hooks
2
+ export { useCollectionsActions } from "./useCollectionsActions";
3
+ export { default as useCollections, } from "./useCollections";
4
+ export { default as useIsEntityInCollection } from "./useIsEntitySaved";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/hooks/collections/index.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EACL,OAAO,IAAI,cAAc,GAG1B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,36 @@
1
+ import type { Collection } from "../../interfaces/models/Collection";
2
+ export interface UseCollectionsProps {
3
+ }
4
+ export interface UseCollectionsValues {
5
+ currentCollection: Collection | null;
6
+ subCollections: Collection[];
7
+ loading: boolean;
8
+ openCollection: (collection: Collection) => void;
9
+ goBack: () => void;
10
+ goToRoot: () => void;
11
+ isEntityInCollection: (selectedEntityId: string, collectionId?: string) => boolean;
12
+ createCollection: (props: {
13
+ collectionName: string;
14
+ }) => Promise<void>;
15
+ updateCollection: (props: {
16
+ collectionId: string;
17
+ update: Partial<{
18
+ name: string;
19
+ }>;
20
+ }) => Promise<void>;
21
+ deleteCollection: (props: {
22
+ collection: Collection;
23
+ }) => Promise<void>;
24
+ addToCollection: (props: {
25
+ entityId: string;
26
+ }) => Promise<void>;
27
+ removeFromCollection: (props: {
28
+ entityId: string;
29
+ }) => Promise<void>;
30
+ }
31
+ /**
32
+ * Redux-powered hook that provides the exact same interface as useCollectionsData()
33
+ * This is a drop-in replacement for the Context-based hook
34
+ */
35
+ declare function useCollections(_?: UseCollectionsProps): UseCollectionsValues;
36
+ export default useCollections;
@@ -36,15 +36,15 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
36
36
  };
37
37
  import { useEffect, useMemo, useCallback } from "react";
38
38
  import { useDispatch, useSelector } from "react-redux";
39
- import { setProjectContext, selectCurrentList, selectSubLists, selectListsLoading, selectListHistory, selectSubListsMap, selectCurrentProjectId, } from "../../store/slices/listsSlice";
40
- import { useListsActions } from "./useListsActions";
39
+ import { setProjectContext, selectCurrentCollection, selectSubCollections, selectCollectionsLoading, selectSubCollectionsMap, selectCurrentProjectId, } from "../../store/slices/collectionsSlice";
40
+ import { useCollectionsActions } from "./useCollectionsActions";
41
41
  import useProject from "../projects/useProject";
42
42
  import { useUser } from "../user";
43
43
  /**
44
- * Redux-powered hook that provides the exact same interface as useListsData()
44
+ * Redux-powered hook that provides the exact same interface as useCollectionsData()
45
45
  * This is a drop-in replacement for the Context-based hook
46
46
  */
47
- function useLists(_) {
47
+ function useCollections(_) {
48
48
  var _this = this;
49
49
  if (_ === void 0) { _ = {}; }
50
50
  var dispatch = useDispatch();
@@ -52,81 +52,82 @@ function useLists(_) {
52
52
  var projectId = useProject().projectId;
53
53
  var user = useUser().user;
54
54
  // Get Redux state
55
- var currentList = useSelector(function (state) {
56
- return selectCurrentList(state);
55
+ var currentCollection = useSelector(function (state) {
56
+ return selectCurrentCollection(state);
57
57
  });
58
- var subLists = useSelector(function (state) {
59
- return selectSubLists(state);
58
+ var subCollections = useSelector(function (state) {
59
+ return selectSubCollections(state);
60
60
  });
61
61
  var loading = useSelector(function (state) {
62
- return selectListsLoading(state);
62
+ return selectCollectionsLoading(state);
63
63
  });
64
- var listHistory = useSelector(function (state) {
65
- return selectListHistory(state);
64
+ var subCollectionsMap = useSelector(function (state) {
65
+ return selectSubCollectionsMap(state);
66
66
  });
67
- var subListsMap = useSelector(function (state) {
68
- return selectSubListsMap(state);
67
+ var collectionsById = useSelector(function (state) {
68
+ return state.collections.collectionsById;
69
69
  });
70
70
  var currentProjectId = useSelector(function (state) {
71
71
  return selectCurrentProjectId(state);
72
72
  });
73
73
  // Get actions
74
- var _a = useListsActions(), openList = _a.openList, goBack = _a.goBack, goToRoot = _a.goToRoot, fetchRootList = _a.fetchRootList, fetchSubLists = _a.fetchSubLists, createListAction = _a.createList, updateListAction = _a.updateList, deleteListAction = _a.deleteList, addToListAction = _a.addToList, removeFromListAction = _a.removeFromList;
74
+ var _a = useCollectionsActions(), openCollection = _a.openCollection, goBack = _a.goBack, goToRoot = _a.goToRoot, fetchRootCollection = _a.fetchRootCollection, fetchSubCollections = _a.fetchSubCollections, createCollectionAction = _a.createCollection, updateCollectionAction = _a.updateCollection, deleteCollectionAction = _a.deleteCollection, addToCollectionAction = _a.addToCollection, removeFromCollectionAction = _a.removeFromCollection;
75
75
  // Update Redux state when project changes
76
76
  useEffect(function () {
77
77
  if (projectId && projectId !== currentProjectId) {
78
78
  dispatch(setProjectContext(projectId));
79
79
  }
80
80
  }, [dispatch, projectId, currentProjectId]);
81
- // Fetch root list when user and project are available
81
+ // Fetch root collection when user and project are available
82
82
  useEffect(function () {
83
83
  if (!user || !projectId)
84
84
  return;
85
- fetchRootList(projectId);
86
- }, [fetchRootList, user, projectId]);
87
- // Fetch sub-lists when current list changes
85
+ fetchRootCollection(projectId);
86
+ }, [fetchRootCollection, user, projectId]);
87
+ // Fetch sub-collections when current collection changes
88
88
  useEffect(function () {
89
- if (!user || !projectId || !currentList)
89
+ if (!user || !projectId || !currentCollection)
90
90
  return;
91
- // Check if sub-lists for this list are already fetched
92
- if (subListsMap[currentList.id] !== undefined) {
91
+ // Check if sub-collections for this collection are already fetched
92
+ if (subCollectionsMap[currentCollection.id] !== undefined) {
93
93
  return; // No need to fetch, we already have the mapping (even if empty)
94
94
  }
95
- fetchSubLists(projectId, currentList.id);
96
- }, [fetchSubLists, user, projectId, currentList, subListsMap]);
97
- // Entity membership checker
98
- var isEntityInList = useCallback(function (selectedEntityId) {
99
- if (!currentList)
95
+ fetchSubCollections(projectId, currentCollection.id);
96
+ }, [fetchSubCollections, user, projectId, currentCollection, subCollectionsMap]);
97
+ // Entity membership checker - checks if entity is in specified collection (or current collection if not specified)
98
+ var isEntityInCollection = useCallback(function (selectedEntityId, collectionId) {
99
+ var targetCollection = collectionId ? collectionsById[collectionId] : currentCollection;
100
+ if (!targetCollection)
100
101
  return false;
101
- return currentList.entityIds.some(function (entityId) { return entityId === selectedEntityId; });
102
- }, [currentList]);
102
+ return targetCollection.entityIds.some(function (entityId) { return entityId === selectedEntityId; });
103
+ }, [currentCollection, collectionsById]);
103
104
  // Wrapped CRUD operations that match the original interface
104
- var handleCreateList = useCallback(function (_a) { return __awaiter(_this, [_a], void 0, function (_b) {
105
- var listName = _b.listName;
105
+ var handleCreateCollection = useCallback(function (_a) { return __awaiter(_this, [_a], void 0, function (_b) {
106
+ var collectionName = _b.collectionName;
106
107
  return __generator(this, function (_c) {
107
108
  switch (_c.label) {
108
109
  case 0:
109
- if (!listName) {
110
- console.error("No listName provided.");
110
+ if (!collectionName) {
111
+ console.error("No collectionName provided.");
111
112
  return [2 /*return*/];
112
113
  }
113
- if (!currentList) {
114
- console.error("No current list.");
114
+ if (!currentCollection) {
115
+ console.error("No current collection.");
115
116
  return [2 /*return*/];
116
117
  }
117
118
  if (!projectId) {
118
119
  console.error("No projectId available.");
119
120
  return [2 /*return*/];
120
121
  }
121
- return [4 /*yield*/, createListAction(projectId, currentList.id, listName)];
122
+ return [4 /*yield*/, createCollectionAction(projectId, currentCollection.id, collectionName)];
122
123
  case 1:
123
124
  _c.sent();
124
125
  return [2 /*return*/];
125
126
  }
126
127
  });
127
- }); }, [createListAction, currentList, projectId]);
128
- var handleUpdateList = useCallback(function (_a) { return __awaiter(_this, [_a], void 0, function (_b) {
129
- var listId = _b.listId, update = _b.update;
128
+ }); }, [createCollectionAction, currentCollection, projectId]);
129
+ var handleUpdateCollection = useCallback(function (_a) { return __awaiter(_this, [_a], void 0, function (_b) {
130
+ var collectionId = _b.collectionId, update = _b.update;
130
131
  return __generator(this, function (_c) {
131
132
  switch (_c.label) {
132
133
  case 0:
@@ -134,15 +135,15 @@ function useLists(_) {
134
135
  console.error("No projectId available.");
135
136
  return [2 /*return*/];
136
137
  }
137
- return [4 /*yield*/, updateListAction(projectId, listId, update)];
138
+ return [4 /*yield*/, updateCollectionAction(projectId, collectionId, update)];
138
139
  case 1:
139
140
  _c.sent();
140
141
  return [2 /*return*/];
141
142
  }
142
143
  });
143
- }); }, [updateListAction, projectId]);
144
- var handleDeleteList = useCallback(function (_a) { return __awaiter(_this, [_a], void 0, function (_b) {
145
- var list = _b.list;
144
+ }); }, [updateCollectionAction, projectId]);
145
+ var handleDeleteCollection = useCallback(function (_a) { return __awaiter(_this, [_a], void 0, function (_b) {
146
+ var collection = _b.collection;
146
147
  return __generator(this, function (_c) {
147
148
  switch (_c.label) {
148
149
  case 0:
@@ -150,14 +151,14 @@ function useLists(_) {
150
151
  console.error("No projectId available.");
151
152
  return [2 /*return*/];
152
153
  }
153
- return [4 /*yield*/, deleteListAction(projectId, list)];
154
+ return [4 /*yield*/, deleteCollectionAction(projectId, collection)];
154
155
  case 1:
155
156
  _c.sent();
156
157
  return [2 /*return*/];
157
158
  }
158
159
  });
159
- }); }, [deleteListAction, projectId]);
160
- var handleAddToList = useCallback(function (_a) { return __awaiter(_this, [_a], void 0, function (_b) {
160
+ }); }, [deleteCollectionAction, projectId]);
161
+ var handleAddToCollection = useCallback(function (_a) { return __awaiter(_this, [_a], void 0, function (_b) {
161
162
  var entityId = _b.entityId;
162
163
  return __generator(this, function (_c) {
163
164
  switch (_c.label) {
@@ -166,69 +167,69 @@ function useLists(_) {
166
167
  console.error("No entityId provided.");
167
168
  return [2 /*return*/];
168
169
  }
169
- if (!currentList) {
170
- console.error("No current list.");
170
+ if (!currentCollection) {
171
+ console.error("No current collection.");
171
172
  return [2 /*return*/];
172
173
  }
173
174
  if (!projectId) {
174
175
  console.error("No projectId available.");
175
176
  return [2 /*return*/];
176
177
  }
177
- return [4 /*yield*/, addToListAction(projectId, currentList.id, entityId)];
178
+ return [4 /*yield*/, addToCollectionAction(projectId, currentCollection.id, entityId)];
178
179
  case 1:
179
180
  _c.sent();
180
181
  return [2 /*return*/];
181
182
  }
182
183
  });
183
- }); }, [addToListAction, currentList, projectId]);
184
- var handleRemoveFromList = useCallback(function (_a) { return __awaiter(_this, [_a], void 0, function (_b) {
184
+ }); }, [addToCollectionAction, currentCollection, projectId]);
185
+ var handleRemoveFromCollection = useCallback(function (_a) { return __awaiter(_this, [_a], void 0, function (_b) {
185
186
  var entityId = _b.entityId;
186
187
  return __generator(this, function (_c) {
187
188
  switch (_c.label) {
188
189
  case 0:
189
- if (!currentList) {
190
- console.error("No current list.");
190
+ if (!currentCollection) {
191
+ console.error("No current collection.");
191
192
  return [2 /*return*/];
192
193
  }
193
194
  if (!projectId) {
194
195
  console.error("No projectId available.");
195
196
  return [2 /*return*/];
196
197
  }
197
- return [4 /*yield*/, removeFromListAction(projectId, currentList.id, entityId)];
198
+ return [4 /*yield*/, removeFromCollectionAction(projectId, currentCollection.id, entityId)];
198
199
  case 1:
199
200
  _c.sent();
200
201
  return [2 /*return*/];
201
202
  }
202
203
  });
203
- }); }, [removeFromListAction, currentList, projectId]);
204
+ }); }, [removeFromCollectionAction, currentCollection, projectId]);
204
205
  // Return the same interface as the original hook
205
206
  return useMemo(function () { return ({
206
- currentList: currentList,
207
- subLists: subLists,
207
+ currentCollection: currentCollection,
208
+ subCollections: subCollections,
208
209
  loading: loading,
209
- openList: openList,
210
+ openCollection: openCollection,
210
211
  goBack: goBack,
211
212
  goToRoot: goToRoot,
212
- isEntityInList: isEntityInList,
213
- createList: handleCreateList,
214
- updateList: handleUpdateList,
215
- deleteList: handleDeleteList,
216
- addToList: handleAddToList,
217
- removeFromList: handleRemoveFromList,
213
+ isEntityInCollection: isEntityInCollection,
214
+ createCollection: handleCreateCollection,
215
+ updateCollection: handleUpdateCollection,
216
+ deleteCollection: handleDeleteCollection,
217
+ addToCollection: handleAddToCollection,
218
+ removeFromCollection: handleRemoveFromCollection,
218
219
  }); }, [
219
- currentList,
220
- subLists,
220
+ currentCollection,
221
+ subCollections,
221
222
  loading,
222
- openList,
223
+ openCollection,
223
224
  goBack,
224
225
  goToRoot,
225
- isEntityInList,
226
- handleCreateList,
227
- handleUpdateList,
228
- handleDeleteList,
229
- handleAddToList,
230
- handleRemoveFromList,
226
+ isEntityInCollection,
227
+ handleCreateCollection,
228
+ handleUpdateCollection,
229
+ handleDeleteCollection,
230
+ handleAddToCollection,
231
+ handleRemoveFromCollection,
231
232
  ]);
232
233
  }
233
- export default useLists;
234
- //# sourceMappingURL=useLists.js.map
234
+ export default useCollections;
235
+ //# sourceMappingURL=useCollections.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCollections.js","sourceRoot":"","sources":["../../../../src/hooks/collections/useCollections.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { Collection } from "../../interfaces/models/Collection";
2
+ /**
3
+ * Redux-powered hook that provides all collection actions
4
+ * This replaces the individual hooks and provides a centralized way to manage collections
5
+ */
6
+ export declare function useCollectionsActions(): {
7
+ openCollection: (collection: Collection) => void;
8
+ goBack: () => void;
9
+ goToRoot: () => void;
10
+ fetchRootCollection: (projectId: string) => Promise<void>;
11
+ fetchSubCollections: (projectId: string, collectionId: string) => Promise<void>;
12
+ createCollection: (projectId: string, parentCollectionId: string, collectionName: string) => Promise<void>;
13
+ updateCollection: (projectId: string, collectionId: string, update: Partial<{
14
+ name: string;
15
+ }>) => Promise<void>;
16
+ deleteCollection: (projectId: string, collection: Collection) => Promise<void>;
17
+ addToCollection: (projectId: string, collectionId: string, entityId: string) => Promise<void>;
18
+ removeFromCollection: (projectId: string, collectionId: string, entityId: string) => Promise<void>;
19
+ resetCollections: () => void;
20
+ };
21
+ export default useCollectionsActions;