@replyke/core 5.1.6-beta.2 → 5.1.6-beta.4
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/dist/cjs/hooks/lists-redux/index.d.ts +1 -0
- package/dist/cjs/hooks/lists-redux/index.js +3 -1
- package/dist/cjs/hooks/lists-redux/index.js.map +1 -1
- package/dist/cjs/hooks/lists-redux/useIsEntitySaved.d.ts +5 -0
- package/dist/cjs/hooks/lists-redux/useIsEntitySaved.js +78 -0
- package/dist/cjs/hooks/lists-redux/useIsEntitySaved.js.map +1 -0
- package/dist/cjs/hooks/lists-redux/useListsRedux.js +6 -6
- package/dist/cjs/hooks/lists-redux/useListsRedux.js.map +1 -1
- package/dist/cjs/index.d.ts +2 -2
- package/dist/cjs/index.js +7 -6
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/store/slices/listsSlice.d.ts +17 -10
- package/dist/cjs/store/slices/listsSlice.js +108 -109
- package/dist/cjs/store/slices/listsSlice.js.map +1 -1
- package/dist/esm/hooks/lists-redux/index.d.ts +1 -0
- package/dist/esm/hooks/lists-redux/index.js +1 -0
- package/dist/esm/hooks/lists-redux/index.js.map +1 -1
- package/dist/esm/hooks/lists-redux/useIsEntitySaved.d.ts +5 -0
- package/dist/esm/hooks/lists-redux/useIsEntitySaved.js +73 -0
- package/dist/esm/hooks/lists-redux/useIsEntitySaved.js.map +1 -0
- package/dist/esm/hooks/lists-redux/useListsRedux.js +7 -7
- package/dist/esm/hooks/lists-redux/useListsRedux.js.map +1 -1
- package/dist/esm/index.d.ts +2 -2
- package/dist/esm/index.js +3 -3
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/store/slices/listsSlice.d.ts +17 -10
- package/dist/esm/store/slices/listsSlice.js +104 -106
- package/dist/esm/store/slices/listsSlice.js.map +1 -1
- package/package.json +1 -1
|
@@ -3,10 +3,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.useListsRedux = exports.useListsActionsRedux = void 0;
|
|
6
|
+
exports.useIsEntitySaved = exports.useListsRedux = exports.useListsActionsRedux = void 0;
|
|
7
7
|
// Export Redux-powered lists hooks
|
|
8
8
|
var useListsActionsRedux_1 = require("./useListsActionsRedux");
|
|
9
9
|
Object.defineProperty(exports, "useListsActionsRedux", { enumerable: true, get: function () { return useListsActionsRedux_1.useListsActionsRedux; } });
|
|
10
10
|
var useListsRedux_1 = require("./useListsRedux");
|
|
11
11
|
Object.defineProperty(exports, "useListsRedux", { enumerable: true, get: function () { return __importDefault(useListsRedux_1).default; } });
|
|
12
|
+
var useIsEntitySaved_1 = require("./useIsEntitySaved");
|
|
13
|
+
Object.defineProperty(exports, "useIsEntitySaved", { enumerable: true, get: function () { return __importDefault(useIsEntitySaved_1).default; } });
|
|
12
14
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/hooks/lists-redux/index.ts"],"names":[],"mappings":";;;;;;AAAA,mCAAmC;AACnC,+DAA8D;AAArD,4HAAA,oBAAoB,OAAA;AAC7B,iDAIyB;AAHvB,+HAAA,OAAO,OAAiB"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/hooks/lists-redux/index.ts"],"names":[],"mappings":";;;;;;AAAA,mCAAmC;AACnC,+DAA8D;AAArD,4HAAA,oBAAoB,OAAA;AAC7B,iDAIyB;AAHvB,+HAAA,OAAO,OAAiB;AAI1B,uDAAiE;AAAxD,qIAAA,OAAO,OAAoB"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
13
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
39
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
40
|
+
};
|
|
41
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
+
var react_1 = require("react");
|
|
43
|
+
var useAxiosPrivate_1 = __importDefault(require("../../config/useAxiosPrivate"));
|
|
44
|
+
var useProject_1 = __importDefault(require("../projects/useProject"));
|
|
45
|
+
var auth_redux_1 = require("../auth-redux");
|
|
46
|
+
function useIsEntitySaved() {
|
|
47
|
+
var _this = this;
|
|
48
|
+
var axios = (0, useAxiosPrivate_1.default)();
|
|
49
|
+
var projectId = (0, useProject_1.default)().projectId;
|
|
50
|
+
var user = (0, auth_redux_1.useUserRedux)().user;
|
|
51
|
+
var _a = (0, react_1.useState)(null), entityIsSaved = _a[0], setEntityIsSaved = _a[1];
|
|
52
|
+
// const checkedStatus = useRef<Record<string, boolean>>({}); // Track status by entityId
|
|
53
|
+
var checkIfEntityIsSaved = (0, react_1.useCallback)(function (entityId) { return __awaiter(_this, void 0, void 0, function () {
|
|
54
|
+
var response;
|
|
55
|
+
return __generator(this, function (_a) {
|
|
56
|
+
switch (_a.label) {
|
|
57
|
+
case 0:
|
|
58
|
+
// if (!user || !entityId || checkedStatus.current[entityId]) return;
|
|
59
|
+
if (!user || !entityId)
|
|
60
|
+
return [2 /*return*/];
|
|
61
|
+
if (!projectId) {
|
|
62
|
+
throw new Error("No projectId available.");
|
|
63
|
+
}
|
|
64
|
+
return [4 /*yield*/, axios.get("/".concat(projectId, "/lists/is-entity-saved"), {
|
|
65
|
+
params: { entityId: entityId },
|
|
66
|
+
withCredentials: true,
|
|
67
|
+
})];
|
|
68
|
+
case 1:
|
|
69
|
+
response = _a.sent();
|
|
70
|
+
setEntityIsSaved(response.data);
|
|
71
|
+
return [2 /*return*/];
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
}); }, [user, axios, projectId]);
|
|
75
|
+
return { checkIfEntityIsSaved: checkIfEntityIsSaved, entityIsSaved: entityIsSaved };
|
|
76
|
+
}
|
|
77
|
+
exports.default = useIsEntitySaved;
|
|
78
|
+
//# sourceMappingURL=useIsEntitySaved.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useIsEntitySaved.js","sourceRoot":"","sources":["../../../../src/hooks/lists-redux/useIsEntitySaved.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAA8C;AAC9C,iFAA2D;AAC3D,sEAAgD;AAChD,4CAA6C;AAE7C,SAAS,gBAAgB;IAAzB,iBAgCC;IA/BC,IAAM,KAAK,GAAG,IAAA,yBAAe,GAAE,CAAC;IACxB,IAAA,SAAS,GAAK,IAAA,oBAAU,GAAE,UAAjB,CAAkB;IAC3B,IAAA,IAAI,GAAK,IAAA,yBAAY,GAAE,KAAnB,CAAoB;IAE1B,IAAA,KAAoC,IAAA,gBAAQ,EAAiB,IAAI,CAAC,EAAjE,aAAa,QAAA,EAAE,gBAAgB,QAAkC,CAAC;IACzE,yFAAyF;IAEzF,IAAM,oBAAoB,GAAG,IAAA,mBAAW,EACtC,UAAO,QAAgB;;;;;oBACrB,qEAAqE;oBACrE,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ;wBAAE,sBAAO;oBAE/B,IAAI,CAAC,SAAS,EAAE,CAAC;wBACf,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;oBAC7C,CAAC;oBAGgB,qBAAM,KAAK,CAAC,GAAG,CAC9B,WAAI,SAAS,2BAAwB,EACrC;4BACE,MAAM,EAAE,EAAE,QAAQ,UAAA,EAAE;4BACpB,eAAe,EAAE,IAAI;yBACtB,CACF,EAAA;;oBANK,QAAQ,GAAG,SAMhB;oBAED,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;;;;SACjC,EACD,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,CACzB,CAAC;IAEF,OAAO,EAAE,oBAAoB,sBAAA,EAAE,aAAa,eAAA,EAAE,CAAC;AACjD,CAAC;AAED,kBAAe,gBAAgB,CAAC"}
|
|
@@ -69,8 +69,8 @@ function useListsRedux(_) {
|
|
|
69
69
|
var listHistory = (0, react_redux_1.useSelector)(function (state) {
|
|
70
70
|
return (0, listsSlice_1.selectListHistory)(state);
|
|
71
71
|
});
|
|
72
|
-
var
|
|
73
|
-
return (0, listsSlice_1.
|
|
72
|
+
var subListsMap = (0, react_redux_1.useSelector)(function (state) {
|
|
73
|
+
return (0, listsSlice_1.selectSubListsMap)(state);
|
|
74
74
|
});
|
|
75
75
|
var currentProjectId = (0, react_redux_1.useSelector)(function (state) {
|
|
76
76
|
return (0, listsSlice_1.selectCurrentProjectId)(state);
|
|
@@ -93,12 +93,12 @@ function useListsRedux(_) {
|
|
|
93
93
|
(0, react_1.useEffect)(function () {
|
|
94
94
|
if (!user || !projectId || !currentList)
|
|
95
95
|
return;
|
|
96
|
-
// Check if sub-lists for this list are already
|
|
97
|
-
if (
|
|
98
|
-
return; // No need to fetch, we have
|
|
96
|
+
// Check if sub-lists for this list are already fetched
|
|
97
|
+
if (subListsMap[currentList.id] !== undefined) {
|
|
98
|
+
return; // No need to fetch, we already have the mapping (even if empty)
|
|
99
99
|
}
|
|
100
100
|
fetchSubLists(projectId, currentList.id);
|
|
101
|
-
}, [fetchSubLists, user, projectId, currentList,
|
|
101
|
+
}, [fetchSubLists, user, projectId, currentList, subListsMap]);
|
|
102
102
|
// Entity membership checker
|
|
103
103
|
var isEntityInList = (0, react_1.useCallback)(function (selectedEntityId) {
|
|
104
104
|
if (!currentList)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useListsRedux.js","sourceRoot":"","sources":["../../../../src/hooks/lists-redux/useListsRedux.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAAwD;AACxD,2CAAuD;AAGvD,
|
|
1
|
+
{"version":3,"file":"useListsRedux.js","sourceRoot":"","sources":["../../../../src/hooks/lists-redux/useListsRedux.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/index.d.ts
CHANGED
|
@@ -10,9 +10,9 @@ EntityListProvider, EntityProvider, CommentSectionProvider, } from "./context";
|
|
|
10
10
|
export { useProject, useProjectData } from "./hooks/projects";
|
|
11
11
|
export { useSignTestingJwt } from "./hooks/crypto";
|
|
12
12
|
export { useAuthRedux, type UseAuthReduxValues } from "./hooks/auth-redux";
|
|
13
|
-
export { useAppNotificationsRedux, useAppNotificationsActionsRedux, type UseAppNotificationsReduxProps, type UseAppNotificationsReduxValues, } from "./hooks/app-notifications-redux";
|
|
14
|
-
export { useListsRedux, useListsActionsRedux, type UseListsReduxProps, type UseListsReduxValues, } from "./hooks/lists-redux";
|
|
15
13
|
export { useUserRedux, useUserActionsRedux, type UseUserReduxProps, type UseUserReduxValues, } from "./hooks/user-redux";
|
|
14
|
+
export { useAppNotificationsRedux, useAppNotificationsActionsRedux, type UseAppNotificationsReduxProps, type UseAppNotificationsReduxValues, } from "./hooks/app-notifications-redux";
|
|
15
|
+
export { useListsRedux, useListsActionsRedux, useIsEntitySaved, type UseListsReduxProps, type UseListsReduxValues, } from "./hooks/lists-redux";
|
|
16
16
|
export { useEntity, useEntityData, useCreateEntity, useFetchEntity, useFetchEntityByForeignId, useFetchEntityByShortId, useUpdateEntity, useEntityVotes, useDeleteEntity, useEntityList, useEntityListData, useInfusedData, } from "./hooks/entities";
|
|
17
17
|
export { useCommentSection, useCommentSectionData, useCreateComment, useFetchManyComments, useFetchComment, useFetchCommentByForeignId, useReplies, useUpdateComment, useCommentVotes, useDeleteComment, useEntityComments, useProfileComments, } from "./hooks/comments";
|
|
18
18
|
export { useFetchUser, useFetchUserByForeignId, useFetchUserFollowersCount, useFetchUserFollowingCount, useCheckUsernameAvailability, useFetchUserSuggestions, useMentions, useUpdateUser, useFetchFollow, useFollowUser, useUnfollowUser, } from "./hooks/users";
|
package/dist/cjs/index.js
CHANGED
|
@@ -36,8 +36,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
36
36
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.
|
|
40
|
-
exports.AppNotification = exports.useUploadFile = exports.useGetMetadata = exports.useCreateReport = exports.useUnfollowUser = exports.useFollowUser = exports.useFetchFollow = exports.useUpdateUser = exports.useMentions = void 0;
|
|
39
|
+
exports.useCheckUsernameAvailability = exports.useFetchUserFollowingCount = exports.useFetchUserFollowersCount = exports.useFetchUserByForeignId = exports.useFetchUser = exports.useProfileComments = exports.useEntityComments = exports.useDeleteComment = exports.useCommentVotes = exports.useUpdateComment = exports.useReplies = exports.useFetchCommentByForeignId = exports.useFetchComment = exports.useFetchManyComments = exports.useCreateComment = exports.useCommentSectionData = exports.useCommentSection = exports.useInfusedData = exports.useEntityListData = exports.useEntityList = exports.useDeleteEntity = exports.useEntityVotes = exports.useUpdateEntity = exports.useFetchEntityByShortId = exports.useFetchEntityByForeignId = exports.useFetchEntity = exports.useCreateEntity = exports.useEntityData = exports.useEntity = exports.useIsEntitySaved = exports.useListsActionsRedux = exports.useListsRedux = exports.useAppNotificationsActionsRedux = exports.useAppNotificationsRedux = exports.useUserActionsRedux = exports.useUserRedux = exports.useAuthRedux = exports.useSignTestingJwt = exports.useProjectData = exports.useProject = exports.CommentSectionProvider = exports.EntityProvider = exports.EntityListProvider = exports.ReplykeStoreProvider = exports.ReplykeProvider = exports.reportReasons = exports.getPublicFileUrl = exports.getUserName = exports.safeMergeStyleProps = exports.handleError = void 0;
|
|
40
|
+
exports.AppNotification = exports.useUploadFile = exports.useGetMetadata = exports.useCreateReport = exports.useUnfollowUser = exports.useFollowUser = exports.useFetchFollow = exports.useUpdateUser = exports.useMentions = exports.useFetchUserSuggestions = void 0;
|
|
41
41
|
// Helpers & Utilities
|
|
42
42
|
var handleError_1 = require("./utils/handleError");
|
|
43
43
|
Object.defineProperty(exports, "handleError", { enumerable: true, get: function () { return handleError_1.handleError; } });
|
|
@@ -67,6 +67,10 @@ Object.defineProperty(exports, "useSignTestingJwt", { enumerable: true, get: fun
|
|
|
67
67
|
// -- authentication (Redux-powered)
|
|
68
68
|
var auth_redux_1 = require("./hooks/auth-redux");
|
|
69
69
|
Object.defineProperty(exports, "useAuthRedux", { enumerable: true, get: function () { return auth_redux_1.useAuthRedux; } });
|
|
70
|
+
// -- (current) user (Redux-powered)
|
|
71
|
+
var user_redux_1 = require("./hooks/user-redux");
|
|
72
|
+
Object.defineProperty(exports, "useUserRedux", { enumerable: true, get: function () { return user_redux_1.useUserRedux; } });
|
|
73
|
+
Object.defineProperty(exports, "useUserActionsRedux", { enumerable: true, get: function () { return user_redux_1.useUserActionsRedux; } });
|
|
70
74
|
// -- app notifications (Redux-powered)
|
|
71
75
|
var app_notifications_redux_1 = require("./hooks/app-notifications-redux");
|
|
72
76
|
Object.defineProperty(exports, "useAppNotificationsRedux", { enumerable: true, get: function () { return app_notifications_redux_1.useAppNotificationsRedux; } });
|
|
@@ -75,10 +79,7 @@ Object.defineProperty(exports, "useAppNotificationsActionsRedux", { enumerable:
|
|
|
75
79
|
var lists_redux_1 = require("./hooks/lists-redux");
|
|
76
80
|
Object.defineProperty(exports, "useListsRedux", { enumerable: true, get: function () { return lists_redux_1.useListsRedux; } });
|
|
77
81
|
Object.defineProperty(exports, "useListsActionsRedux", { enumerable: true, get: function () { return lists_redux_1.useListsActionsRedux; } });
|
|
78
|
-
|
|
79
|
-
var user_redux_1 = require("./hooks/user-redux");
|
|
80
|
-
Object.defineProperty(exports, "useUserRedux", { enumerable: true, get: function () { return user_redux_1.useUserRedux; } });
|
|
81
|
-
Object.defineProperty(exports, "useUserActionsRedux", { enumerable: true, get: function () { return user_redux_1.useUserActionsRedux; } });
|
|
82
|
+
Object.defineProperty(exports, "useIsEntitySaved", { enumerable: true, get: function () { return lists_redux_1.useIsEntitySaved; } });
|
|
82
83
|
// -- entities
|
|
83
84
|
var entities_1 = require("./hooks/entities");
|
|
84
85
|
Object.defineProperty(exports, "useEntity", { enumerable: true, get: function () { return entities_1.useEntity; } });
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sBAAsB;AACtB,mDAAkD;AAAzC,0GAAA,WAAW,OAAA;AACpB,qEAAoE;AAA3D,0HAAA,mBAAmB,OAAA;AAC5B,qDAAoD;AAA3C,0GAAA,WAAW,OAAA;AACpB,+DAAyE;AAAhE,qIAAA,OAAO,OAAoB;AAEpC,YAAY;AACZ,2DAA0D;AAAjD,8GAAA,aAAa,OAAA;AAGtB,+CAA+C;AAC/C,qCAMmB;AALjB,0GAAA,eAAe,OAAA;AACf,+GAAA,oBAAoB,OAAA;AACpB,6GAAA,kBAAkB,OAAA;AAClB,yGAAA,cAAc,OAAA;AACd,iHAAA,sBAAsB,OAAA;AAGxB,cAAc;AACd,6CAA8D;AAArD,sGAAA,UAAU,OAAA;AAAE,0GAAA,cAAc,OAAA;AAEnC,YAAY;AACZ,yCAAmD;AAA1C,2GAAA,iBAAiB,OAAA;AAE1B,oCAAoC;AACpC,iDAA2E;AAAlE,0GAAA,YAAY,OAAA;AAErB,uCAAuC;AACvC,2EAKyC;AAJvC,mIAAA,wBAAwB,OAAA;AACxB,0IAAA,+BAA+B,OAAA;AAKjC,2BAA2B;AAC3B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sBAAsB;AACtB,mDAAkD;AAAzC,0GAAA,WAAW,OAAA;AACpB,qEAAoE;AAA3D,0HAAA,mBAAmB,OAAA;AAC5B,qDAAoD;AAA3C,0GAAA,WAAW,OAAA;AACpB,+DAAyE;AAAhE,qIAAA,OAAO,OAAoB;AAEpC,YAAY;AACZ,2DAA0D;AAAjD,8GAAA,aAAa,OAAA;AAGtB,+CAA+C;AAC/C,qCAMmB;AALjB,0GAAA,eAAe,OAAA;AACf,+GAAA,oBAAoB,OAAA;AACpB,6GAAA,kBAAkB,OAAA;AAClB,yGAAA,cAAc,OAAA;AACd,iHAAA,sBAAsB,OAAA;AAGxB,cAAc;AACd,6CAA8D;AAArD,sGAAA,UAAU,OAAA;AAAE,0GAAA,cAAc,OAAA;AAEnC,YAAY;AACZ,yCAAmD;AAA1C,2GAAA,iBAAiB,OAAA;AAE1B,oCAAoC;AACpC,iDAA2E;AAAlE,0GAAA,YAAY,OAAA;AAErB,oCAAoC;AACpC,iDAK4B;AAJ1B,0GAAA,YAAY,OAAA;AACZ,iHAAA,mBAAmB,OAAA;AAKrB,uCAAuC;AACvC,2EAKyC;AAJvC,mIAAA,wBAAwB,OAAA;AACxB,0IAAA,+BAA+B,OAAA;AAKjC,2BAA2B;AAC3B,mDAM6B;AAL3B,4GAAA,aAAa,OAAA;AACb,mHAAA,oBAAoB,OAAA;AACpB,+GAAA,gBAAgB,OAAA;AAKlB,cAAc;AACd,6CAa0B;AAZxB,qGAAA,SAAS,OAAA;AACT,yGAAA,aAAa,OAAA;AACb,2GAAA,eAAe,OAAA;AACf,0GAAA,cAAc,OAAA;AACd,qHAAA,yBAAyB,OAAA;AACzB,mHAAA,uBAAuB,OAAA;AACvB,2GAAA,eAAe,OAAA;AACf,0GAAA,cAAc,OAAA;AACd,2GAAA,eAAe,OAAA;AACf,yGAAA,aAAa,OAAA;AACb,6GAAA,iBAAiB,OAAA;AACjB,0GAAA,cAAc,OAAA;AAGhB,cAAc;AACd,6CAa0B;AAZxB,6GAAA,iBAAiB,OAAA;AACjB,iHAAA,qBAAqB,OAAA;AACrB,4GAAA,gBAAgB,OAAA;AAChB,gHAAA,oBAAoB,OAAA;AACpB,2GAAA,eAAe,OAAA;AACf,sHAAA,0BAA0B,OAAA;AAC1B,sGAAA,UAAU,OAAA;AACV,4GAAA,gBAAgB,OAAA;AAChB,2GAAA,eAAe,OAAA;AACf,4GAAA,gBAAgB,OAAA;AAChB,6GAAA,iBAAiB,OAAA;AACjB,8GAAA,kBAAkB,OAAA;AAGpB,WAAW;AACX,uCAYuB;AAXrB,qGAAA,YAAY,OAAA;AACZ,gHAAA,uBAAuB,OAAA;AACvB,mHAAA,0BAA0B,OAAA;AAC1B,mHAAA,0BAA0B,OAAA;AAC1B,qHAAA,4BAA4B,OAAA;AAC5B,gHAAA,uBAAuB,OAAA;AACvB,oGAAA,WAAW,OAAA;AACX,sGAAA,aAAa,OAAA;AACb,uGAAA,cAAc,OAAA;AACd,sGAAA,aAAa,OAAA;AACb,wGAAA,eAAe,OAAA;AAGjB,aAAa;AACb,2CAAkD;AAAzC,0GAAA,eAAe,OAAA;AAExB,aAAa;AACb,uCAA+C;AAAtC,uGAAA,cAAc,OAAA;AAEvB,aAAa;AACb,2CAAgD;AAAvC,wGAAA,aAAa,OAAA;AAKtB,uFAAuE"}
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import { PayloadAction } from "@reduxjs/toolkit";
|
|
2
2
|
import type { List } from "../../interfaces/models/List";
|
|
3
3
|
export interface ListsState {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
[listId: string]: List[];
|
|
4
|
+
listsById: {
|
|
5
|
+
[listId: string]: List;
|
|
6
|
+
};
|
|
7
|
+
sublistsMap: {
|
|
8
|
+
[parentId: string]: string[];
|
|
10
9
|
};
|
|
10
|
+
currentListId: string | null;
|
|
11
|
+
listHistory: string[];
|
|
12
|
+
loading: boolean;
|
|
11
13
|
currentProjectId?: string;
|
|
12
14
|
}
|
|
13
15
|
export declare const listsSlice: import("@reduxjs/toolkit").Slice<ListsState, {
|
|
@@ -53,14 +55,19 @@ export declare const selectListsLoading: (state: {
|
|
|
53
55
|
export declare const selectListHistory: (state: {
|
|
54
56
|
lists: ListsState;
|
|
55
57
|
}) => List[];
|
|
56
|
-
export declare const
|
|
58
|
+
export declare const selectSubListsMap: (state: {
|
|
57
59
|
lists: ListsState;
|
|
58
60
|
}) => {
|
|
59
|
-
[
|
|
61
|
+
[parentId: string]: string[];
|
|
62
|
+
};
|
|
63
|
+
export declare const selectListsById: (state: {
|
|
64
|
+
lists: ListsState;
|
|
65
|
+
}) => {
|
|
66
|
+
[listId: string]: List;
|
|
60
67
|
};
|
|
61
68
|
export declare const selectCurrentProjectId: (state: {
|
|
62
69
|
lists: ListsState;
|
|
63
70
|
}) => string | undefined;
|
|
64
|
-
export declare const
|
|
71
|
+
export declare const selectCurrentListId: (state: {
|
|
65
72
|
lists: ListsState;
|
|
66
|
-
}) =>
|
|
73
|
+
}) => string | null;
|
|
@@ -1,29 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
3
|
-
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
4
|
-
if (ar || !(i in from)) {
|
|
5
|
-
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
6
|
-
ar[i] = from[i];
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
return to.concat(ar || Array.prototype.slice.call(from));
|
|
10
|
-
};
|
|
11
2
|
var _a;
|
|
12
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
-
exports.
|
|
4
|
+
exports.selectCurrentListId = exports.selectCurrentProjectId = exports.selectListsById = exports.selectSubListsMap = exports.selectListHistory = exports.selectListsLoading = exports.selectSubLists = exports.selectCurrentList = exports.handleError = exports.resetLists = exports.handleListDeletion = exports.removeListFromSubLists = exports.addNewListAndNavigate = exports.updateListInSubLists = exports.updateCurrentList = exports.setSubLists = exports.setCurrentList = exports.goToRoot = exports.goBack = exports.openList = exports.setLoading = exports.setProjectContext = exports.listsSlice = void 0;
|
|
14
5
|
var toolkit_1 = require("@reduxjs/toolkit");
|
|
15
6
|
// Initial state
|
|
16
7
|
var initialState = {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
8
|
+
listsById: {},
|
|
9
|
+
sublistsMap: {},
|
|
10
|
+
currentListId: null,
|
|
20
11
|
listHistory: [],
|
|
21
|
-
|
|
12
|
+
loading: false,
|
|
22
13
|
currentProjectId: undefined,
|
|
23
14
|
};
|
|
24
15
|
// Create the slice
|
|
25
16
|
exports.listsSlice = (0, toolkit_1.createSlice)({
|
|
26
|
-
name:
|
|
17
|
+
name: "lists",
|
|
27
18
|
initialState: initialState,
|
|
28
19
|
reducers: {
|
|
29
20
|
// Set the current project context
|
|
@@ -37,135 +28,129 @@ exports.listsSlice = (0, toolkit_1.createSlice)({
|
|
|
37
28
|
// Navigation actions
|
|
38
29
|
openList: function (state, action) {
|
|
39
30
|
var list = action.payload;
|
|
40
|
-
//
|
|
41
|
-
state.
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
31
|
+
// Store the list if not already stored
|
|
32
|
+
if (!state.listsById[list.id]) {
|
|
33
|
+
state.listsById[list.id] = list;
|
|
34
|
+
}
|
|
35
|
+
// Push current list ID to history stack before opening new one
|
|
36
|
+
if (state.currentListId) {
|
|
37
|
+
state.listHistory.push(state.currentListId);
|
|
45
38
|
}
|
|
46
|
-
// Set new current list
|
|
47
|
-
state.
|
|
39
|
+
// Set new current list ID
|
|
40
|
+
state.currentListId = list.id;
|
|
48
41
|
},
|
|
49
42
|
goBack: function (state) {
|
|
50
43
|
if (state.listHistory.length === 0)
|
|
51
44
|
return;
|
|
52
|
-
var
|
|
53
|
-
if (!
|
|
45
|
+
var previousListId = state.listHistory.pop();
|
|
46
|
+
if (!previousListId)
|
|
54
47
|
return;
|
|
55
|
-
state.
|
|
56
|
-
// Check if sub-lists for this list are already in the cache
|
|
57
|
-
if (state.subListCache[previousList.id]) {
|
|
58
|
-
state.subLists = state.subListCache[previousList.id];
|
|
59
|
-
}
|
|
48
|
+
state.currentListId = previousListId;
|
|
60
49
|
},
|
|
61
50
|
goToRoot: function (state) {
|
|
62
51
|
if (state.listHistory.length === 0)
|
|
63
52
|
return;
|
|
64
|
-
var
|
|
53
|
+
var rootListId = state.listHistory[0];
|
|
65
54
|
state.listHistory = [];
|
|
66
|
-
state.
|
|
67
|
-
// Check if sub-lists for this list are already in the cache
|
|
68
|
-
if (state.subListCache[rootList.id]) {
|
|
69
|
-
state.subLists = state.subListCache[rootList.id];
|
|
70
|
-
}
|
|
55
|
+
state.currentListId = rootListId;
|
|
71
56
|
},
|
|
72
57
|
// Set current list (for initial root list fetch)
|
|
73
58
|
setCurrentList: function (state, action) {
|
|
74
|
-
|
|
59
|
+
var list = action.payload;
|
|
60
|
+
if (list) {
|
|
61
|
+
state.listsById[list.id] = list;
|
|
62
|
+
state.currentListId = list.id;
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
state.currentListId = null;
|
|
66
|
+
}
|
|
75
67
|
},
|
|
76
|
-
// Set sub-lists and update
|
|
68
|
+
// Set sub-lists and update mapping
|
|
77
69
|
setSubLists: function (state, action) {
|
|
78
70
|
var _a = action.payload, lists = _a.lists, parentListId = _a.parentListId;
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
71
|
+
// Store all lists in listsById
|
|
72
|
+
lists.forEach(function (list) {
|
|
73
|
+
state.listsById[list.id] = list;
|
|
74
|
+
});
|
|
75
|
+
// Update parent-child mapping
|
|
76
|
+
state.sublistsMap[parentListId] = lists.map(function (list) { return list.id; });
|
|
82
77
|
},
|
|
83
78
|
// Update current list (for entity add/remove operations)
|
|
84
79
|
updateCurrentList: function (state, action) {
|
|
85
80
|
var updatedList = action.payload;
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
if (updatedList.parentId && state.subListCache[updatedList.parentId]) {
|
|
89
|
-
var parentSubLists = state.subListCache[updatedList.parentId];
|
|
90
|
-
state.subListCache[updatedList.parentId] = parentSubLists.map(function (list) {
|
|
91
|
-
return list.id === updatedList.id ? updatedList : list;
|
|
92
|
-
});
|
|
93
|
-
}
|
|
81
|
+
// Update in listsById (single source of truth)
|
|
82
|
+
state.listsById[updatedList.id] = updatedList;
|
|
94
83
|
},
|
|
95
|
-
// Update a list
|
|
84
|
+
// Update a list (now just updates in listsById)
|
|
96
85
|
updateListInSubLists: function (state, action) {
|
|
97
86
|
var updatedList = action.payload;
|
|
98
|
-
// Update in
|
|
99
|
-
state.
|
|
100
|
-
return list.id === updatedList.id ? updatedList : list;
|
|
101
|
-
});
|
|
102
|
-
// Update in cache
|
|
103
|
-
if (state.currentList && state.subListCache[state.currentList.id]) {
|
|
104
|
-
state.subListCache[state.currentList.id] = state.subListCache[state.currentList.id].map(function (list) {
|
|
105
|
-
return list.id === updatedList.id ? updatedList : list;
|
|
106
|
-
});
|
|
107
|
-
}
|
|
87
|
+
// Update in listsById (single source of truth)
|
|
88
|
+
state.listsById[updatedList.id] = updatedList;
|
|
108
89
|
},
|
|
109
90
|
// Add new list to sub-lists and navigate to it
|
|
110
91
|
addNewListAndNavigate: function (state, action) {
|
|
111
92
|
var newList = action.payload;
|
|
112
|
-
if (!state.
|
|
93
|
+
if (!state.currentListId)
|
|
113
94
|
return;
|
|
114
|
-
//
|
|
115
|
-
state.
|
|
116
|
-
// Push current list to history
|
|
117
|
-
state.listHistory.push(state.
|
|
95
|
+
// Store the new list
|
|
96
|
+
state.listsById[newList.id] = newList;
|
|
97
|
+
// Push current list ID to history
|
|
98
|
+
state.listHistory.push(state.currentListId);
|
|
118
99
|
// Set new list as current
|
|
119
|
-
state.
|
|
120
|
-
// Update
|
|
121
|
-
if (
|
|
122
|
-
|
|
123
|
-
newList
|
|
124
|
-
|
|
100
|
+
state.currentListId = newList.id;
|
|
101
|
+
// Update parent-child mapping
|
|
102
|
+
if (newList.parentId) {
|
|
103
|
+
if (!state.sublistsMap[newList.parentId]) {
|
|
104
|
+
state.sublistsMap[newList.parentId] = [];
|
|
105
|
+
}
|
|
106
|
+
if (!state.sublistsMap[newList.parentId].includes(newList.id)) {
|
|
107
|
+
state.sublistsMap[newList.parentId].push(newList.id);
|
|
108
|
+
}
|
|
125
109
|
}
|
|
126
110
|
},
|
|
127
|
-
// Remove list from sub-lists and
|
|
111
|
+
// Remove list from sub-lists and storage
|
|
128
112
|
removeListFromSubLists: function (state, action) {
|
|
129
113
|
var listId = action.payload;
|
|
130
|
-
// Remove from
|
|
131
|
-
|
|
132
|
-
// Remove from
|
|
133
|
-
Object.keys(state.
|
|
134
|
-
state.
|
|
114
|
+
// Remove from listsById
|
|
115
|
+
delete state.listsById[listId];
|
|
116
|
+
// Remove from all parent-child mappings
|
|
117
|
+
Object.keys(state.sublistsMap).forEach(function (parentId) {
|
|
118
|
+
state.sublistsMap[parentId] = state.sublistsMap[parentId].filter(function (id) { return id !== listId; });
|
|
135
119
|
});
|
|
120
|
+
// Remove its own sublists mapping if it exists
|
|
121
|
+
delete state.sublistsMap[listId];
|
|
136
122
|
},
|
|
137
123
|
// Handle list deletion
|
|
138
124
|
handleListDeletion: function (state, action) {
|
|
139
|
-
var _a;
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
state.subListCache[parentId] = state.subListCache[parentId].filter(function (list) { return list.id !== listId; });
|
|
125
|
+
var _a = action.payload, listId = _a.listId, parentId = _a.parentId;
|
|
126
|
+
// Remove from parent-child mapping
|
|
127
|
+
if (parentId && state.sublistsMap[parentId]) {
|
|
128
|
+
state.sublistsMap[parentId] = state.sublistsMap[parentId].filter(function (id) { return id !== listId; });
|
|
144
129
|
}
|
|
130
|
+
// Remove from listsById
|
|
131
|
+
delete state.listsById[listId];
|
|
132
|
+
// Remove its own sublists mapping
|
|
133
|
+
delete state.sublistsMap[listId];
|
|
145
134
|
// If deleted list is current list, go back
|
|
146
|
-
if (
|
|
147
|
-
if (state.listHistory.length === 0)
|
|
135
|
+
if (state.currentListId === listId) {
|
|
136
|
+
if (state.listHistory.length === 0) {
|
|
137
|
+
state.currentListId = null;
|
|
148
138
|
return;
|
|
149
|
-
|
|
150
|
-
|
|
139
|
+
}
|
|
140
|
+
var previousListId = state.listHistory.pop();
|
|
141
|
+
if (!previousListId) {
|
|
142
|
+
state.currentListId = null;
|
|
151
143
|
return;
|
|
152
|
-
state.currentList = previousList;
|
|
153
|
-
// Check if sub-lists for this list are already in the cache
|
|
154
|
-
if (state.subListCache[previousList.id]) {
|
|
155
|
-
state.subLists = state.subListCache[previousList.id];
|
|
156
144
|
}
|
|
157
|
-
|
|
158
|
-
else {
|
|
159
|
-
// Remove from current sub-lists
|
|
160
|
-
state.subLists = state.subLists.filter(function (list) { return list.id !== listId; });
|
|
145
|
+
state.currentListId = previousListId;
|
|
161
146
|
}
|
|
162
147
|
},
|
|
163
148
|
// Reset all lists data
|
|
164
149
|
resetLists: function (state) {
|
|
165
|
-
state.
|
|
166
|
-
state.
|
|
150
|
+
state.listsById = {};
|
|
151
|
+
state.sublistsMap = {};
|
|
152
|
+
state.currentListId = null;
|
|
167
153
|
state.listHistory = [];
|
|
168
|
-
state.subListCache = {};
|
|
169
154
|
state.loading = false;
|
|
170
155
|
},
|
|
171
156
|
// Handle errors by stopping loading
|
|
@@ -180,11 +165,18 @@ exports.setProjectContext = (_a = exports.listsSlice.actions, _a.setProjectConte
|
|
|
180
165
|
exports.default = exports.listsSlice.reducer;
|
|
181
166
|
// Selectors
|
|
182
167
|
var selectCurrentList = function (state) {
|
|
183
|
-
|
|
168
|
+
var _a = state.lists, currentListId = _a.currentListId, listsById = _a.listsById;
|
|
169
|
+
return currentListId ? listsById[currentListId] || null : null;
|
|
184
170
|
};
|
|
185
171
|
exports.selectCurrentList = selectCurrentList;
|
|
186
172
|
var selectSubLists = function (state) {
|
|
187
|
-
|
|
173
|
+
var _a = state.lists, currentListId = _a.currentListId, sublistsMap = _a.sublistsMap, listsById = _a.listsById;
|
|
174
|
+
if (!currentListId || !sublistsMap[currentListId]) {
|
|
175
|
+
return [];
|
|
176
|
+
}
|
|
177
|
+
return sublistsMap[currentListId]
|
|
178
|
+
.map(function (listId) { return listsById[listId]; })
|
|
179
|
+
.filter(Boolean); // Remove any undefined entries
|
|
188
180
|
};
|
|
189
181
|
exports.selectSubLists = selectSubLists;
|
|
190
182
|
var selectListsLoading = function (state) {
|
|
@@ -192,22 +184,29 @@ var selectListsLoading = function (state) {
|
|
|
192
184
|
};
|
|
193
185
|
exports.selectListsLoading = selectListsLoading;
|
|
194
186
|
var selectListHistory = function (state) {
|
|
195
|
-
|
|
187
|
+
var _a = state.lists, listHistory = _a.listHistory, listsById = _a.listsById;
|
|
188
|
+
return listHistory
|
|
189
|
+
.map(function (listId) { return listsById[listId]; })
|
|
190
|
+
.filter(Boolean); // Remove any undefined entries
|
|
196
191
|
};
|
|
197
192
|
exports.selectListHistory = selectListHistory;
|
|
198
|
-
|
|
199
|
-
|
|
193
|
+
// New selector for the sublists mapping
|
|
194
|
+
var selectSubListsMap = function (state) {
|
|
195
|
+
return state.lists.sublistsMap;
|
|
200
196
|
};
|
|
201
|
-
exports.
|
|
197
|
+
exports.selectSubListsMap = selectSubListsMap;
|
|
198
|
+
// New selector for all lists
|
|
199
|
+
var selectListsById = function (state) {
|
|
200
|
+
return state.lists.listsById;
|
|
201
|
+
};
|
|
202
|
+
exports.selectListsById = selectListsById;
|
|
202
203
|
var selectCurrentProjectId = function (state) {
|
|
203
204
|
return state.lists.currentProjectId;
|
|
204
205
|
};
|
|
205
206
|
exports.selectCurrentProjectId = selectCurrentProjectId;
|
|
206
|
-
//
|
|
207
|
-
var
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
}; };
|
|
212
|
-
exports.selectIsEntityInCurrentList = selectIsEntityInCurrentList;
|
|
207
|
+
// New selector for current list ID
|
|
208
|
+
var selectCurrentListId = function (state) {
|
|
209
|
+
return state.lists.currentListId;
|
|
210
|
+
};
|
|
211
|
+
exports.selectCurrentListId = selectCurrentListId;
|
|
213
212
|
//# sourceMappingURL=listsSlice.js.map
|