@replyke/core 5.1.5-beta.1 → 5.1.5-beta.3

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 (31) hide show
  1. package/dist/cjs/context/replyke-store-context.js +23 -1
  2. package/dist/cjs/context/replyke-store-context.js.map +1 -1
  3. package/dist/cjs/hooks/app-notifications-redux/useAppNotificationsDataRedux.js +11 -2
  4. package/dist/cjs/hooks/app-notifications-redux/useAppNotificationsDataRedux.js.map +1 -1
  5. package/dist/cjs/store/api/baseApi.js +12 -4
  6. package/dist/cjs/store/api/baseApi.js.map +1 -1
  7. package/dist/cjs/store/index.d.ts +2 -0
  8. package/dist/cjs/store/middleware.js +6 -8
  9. package/dist/cjs/store/middleware.js.map +1 -1
  10. package/dist/cjs/store/rootReducer.d.ts +2 -0
  11. package/dist/cjs/store/rootReducer.js +5 -0
  12. package/dist/cjs/store/rootReducer.js.map +1 -1
  13. package/dist/cjs/store/slices/authSlice.d.ts +13 -0
  14. package/dist/cjs/store/slices/authSlice.js +33 -0
  15. package/dist/cjs/store/slices/authSlice.js.map +1 -0
  16. package/dist/esm/context/replyke-store-context.js +21 -2
  17. package/dist/esm/context/replyke-store-context.js.map +1 -1
  18. package/dist/esm/hooks/app-notifications-redux/useAppNotificationsDataRedux.js +12 -3
  19. package/dist/esm/hooks/app-notifications-redux/useAppNotificationsDataRedux.js.map +1 -1
  20. package/dist/esm/store/api/baseApi.js +12 -4
  21. package/dist/esm/store/api/baseApi.js.map +1 -1
  22. package/dist/esm/store/index.d.ts +2 -0
  23. package/dist/esm/store/middleware.js +6 -8
  24. package/dist/esm/store/middleware.js.map +1 -1
  25. package/dist/esm/store/rootReducer.d.ts +2 -0
  26. package/dist/esm/store/rootReducer.js +2 -0
  27. package/dist/esm/store/rootReducer.js.map +1 -1
  28. package/dist/esm/store/slices/authSlice.d.ts +13 -0
  29. package/dist/esm/store/slices/authSlice.js +28 -0
  30. package/dist/esm/store/slices/authSlice.js.map +1 -0
  31. package/package.json +1 -1
@@ -1,9 +1,31 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.ReplykeStoreProvider = void 0;
4
7
  var jsx_runtime_1 = require("react/jsx-runtime");
8
+ var react_1 = require("react");
5
9
  var react_redux_1 = require("react-redux");
6
10
  var store_1 = require("../store");
11
+ var useAuth_1 = __importDefault(require("../hooks/auth/useAuth"));
12
+ var authSlice_1 = require("../store/slices/authSlice");
13
+ /**
14
+ * Component that syncs auth state from React context to Redux store
15
+ * Must be inside the Redux Provider to dispatch actions
16
+ */
17
+ var AuthStateSyncer = function (_a) {
18
+ var children = _a.children;
19
+ var _b = (0, useAuth_1.default)(), accessToken = _b.accessToken, refreshToken = _b.refreshToken;
20
+ (0, react_1.useEffect)(function () {
21
+ // Sync auth tokens from React context to Redux state
22
+ store_1.replykeStore.dispatch((0, authSlice_1.setTokens)({
23
+ accessToken: accessToken || null,
24
+ refreshToken: refreshToken || null
25
+ }));
26
+ }, [accessToken, refreshToken]);
27
+ return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: children });
28
+ };
7
29
  /**
8
30
  * Redux store provider for Replyke
9
31
  * This component provides the Redux store to all child components
@@ -11,7 +33,7 @@ var store_1 = require("../store");
11
33
  */
12
34
  var ReplykeStoreProvider = function (_a) {
13
35
  var children = _a.children;
14
- return ((0, jsx_runtime_1.jsx)(react_redux_1.Provider, { store: store_1.replykeStore, children: children }));
36
+ return ((0, jsx_runtime_1.jsx)(react_redux_1.Provider, { store: store_1.replykeStore, children: (0, jsx_runtime_1.jsx)(AuthStateSyncer, { children: children }) }));
15
37
  };
16
38
  exports.ReplykeStoreProvider = ReplykeStoreProvider;
17
39
  // ReplykeProviderWithRedux has been deprecated
@@ -1 +1 @@
1
- {"version":3,"file":"replyke-store-context.js","sourceRoot":"","sources":["../../../src/context/replyke-store-context.tsx"],"names":[],"mappings":";;;;AACA,2CAAuC;AACvC,kCAAwC;AAOxC;;;;GAIG;AACI,IAAM,oBAAoB,GAAwC,UAAC,EAEzE;QADC,QAAQ,cAAA;IAER,OAAO,CACL,uBAAC,sBAAQ,IAAC,KAAK,EAAE,oBAAY,YAC1B,QAAQ,GACA,CACZ,CAAC;AACJ,CAAC,CAAC;AARW,QAAA,oBAAoB,wBAQ/B;AAEF,+CAA+C;AAC/C,sDAAsD;AAEtD,kBAAe,4BAAoB,CAAC"}
1
+ {"version":3,"file":"replyke-store-context.js","sourceRoot":"","sources":["../../../src/context/replyke-store-context.tsx"],"names":[],"mappings":";;;;;;;AAAA,+BAAyC;AACzC,2CAAuC;AACvC,kCAAwC;AAExC,kEAA4C;AAC5C,uDAAsD;AAMtD;;;GAGG;AACH,IAAM,eAAe,GAAsC,UAAC,EAAY;QAAV,QAAQ,cAAA;IAC9D,IAAA,KAAgC,IAAA,iBAAO,GAAE,EAAvC,WAAW,iBAAA,EAAE,YAAY,kBAAc,CAAC;IAEhD,IAAA,iBAAS,EAAC;QACR,qDAAqD;QACrD,oBAAY,CAAC,QAAQ,CAAC,IAAA,qBAAS,EAAC;YAC9B,WAAW,EAAE,WAAW,IAAI,IAAI;YAChC,YAAY,EAAE,YAAY,IAAI,IAAI;SACnC,CAAC,CAAC,CAAC;IACN,CAAC,EAAE,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC;IAEhC,OAAO,2DAAG,QAAQ,GAAI,CAAC;AACzB,CAAC,CAAC;AAEF;;;;GAIG;AACI,IAAM,oBAAoB,GAAwC,UAAC,EAEzE;QADC,QAAQ,cAAA;IAER,OAAO,CACL,uBAAC,sBAAQ,IAAC,KAAK,EAAE,oBAAY,YAC3B,uBAAC,eAAe,cACb,QAAQ,GACO,GACT,CACZ,CAAC;AACJ,CAAC,CAAC;AAVW,QAAA,oBAAoB,wBAU/B;AAEF,+CAA+C;AAC/C,sDAAsD;AAEtD,kBAAe,4BAAoB,CAAC"}
@@ -37,11 +37,20 @@ function useAppNotificationsDataRedux(_a) {
37
37
  (0, react_1.useEffect)(function () {
38
38
  dispatch((0, appNotificationsSlice_1.setLimit)(limit));
39
39
  }, [dispatch, limit]);
40
+ // Prevent infinite re-renders by comparing current vs new templates
41
+ var currentTemplates = (0, react_redux_1.useSelector)(function (state) { return (0, appNotificationsSlice_1.selectNotificationTemplates)(state); });
42
+ var templatesChanged = (0, react_1.useMemo)(function () {
43
+ // If no templates provided, skip comparison
44
+ if (!notificationTemplates)
45
+ return false;
46
+ // Deep comparison using JSON stringify
47
+ return JSON.stringify(currentTemplates) !== JSON.stringify(notificationTemplates);
48
+ }, [currentTemplates, notificationTemplates]);
40
49
  (0, react_1.useEffect)(function () {
41
- if (notificationTemplates) {
50
+ if (notificationTemplates && templatesChanged) {
42
51
  dispatch((0, appNotificationsSlice_1.setNotificationTemplates)(notificationTemplates));
43
52
  }
44
- }, [dispatch, notificationTemplates]);
53
+ }, [dispatch, notificationTemplates, templatesChanged]);
45
54
  // Fetch unread count on mount and when dependencies change
46
55
  (0, react_1.useEffect)(function () {
47
56
  if (projectId && user) {
@@ -1 +1 @@
1
- {"version":3,"file":"useAppNotificationsDataRedux.js","sourceRoot":"","sources":["../../../../src/hooks/app-notifications-redux/useAppNotificationsDataRedux.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useAppNotificationsDataRedux.js","sourceRoot":"","sources":["../../../../src/hooks/app-notifications-redux/useAppNotificationsDataRedux.ts"],"names":[],"mappings":"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"}
@@ -6,11 +6,19 @@ var react_1 = require("@reduxjs/toolkit/query/react");
6
6
  // Base query that uses the current project context and auth
7
7
  var createBaseQuery = function () {
8
8
  return (0, react_1.fetchBaseQuery)({
9
- baseUrl: process.env.REACT_APP_API_BASE_URL || 'https://api.replyke.com',
9
+ baseUrl: process.env.REACT_APP_API_BASE_URL || 'https://api.replyke.com/api/v5',
10
10
  credentials: 'include', // Equivalent to withCredentials: true
11
- prepareHeaders: function (headers) {
12
- // Headers are prepared but don't need auth tokens since we use credentials: 'include'
13
- // This matches the existing pattern in the Context-based hooks
11
+ prepareHeaders: function (headers, _a) {
12
+ var getState = _a.getState;
13
+ // Add Content-Type header
14
+ headers.set('Content-Type', 'application/json');
15
+ // Get access token from Redux state
16
+ var state = getState();
17
+ var accessToken = state.auth.accessToken;
18
+ // Add Authorization header if we have a token
19
+ if (accessToken) {
20
+ headers.set('Authorization', "Bearer ".concat(accessToken));
21
+ }
14
22
  return headers;
15
23
  },
16
24
  });
@@ -1 +1 @@
1
- {"version":3,"file":"baseApi.js","sourceRoot":"","sources":["../../../../src/store/api/baseApi.ts"],"names":[],"mappings":";;;;AAAA,sDAAyE;AAEzE,4DAA4D;AAC5D,IAAM,eAAe,GAAG;IACtB,OAAO,IAAA,sBAAc,EAAC;QACpB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,yBAAyB;QACxE,WAAW,EAAE,SAAS,EAAE,sCAAsC;QAC9D,cAAc,EAAE,UAAC,OAAO;YACtB,sFAAsF;YACtF,+DAA+D;YAC/D,OAAO,OAAO,CAAC;QACjB,CAAC;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,4BAA4B;AACf,QAAA,OAAO,GAAG,IAAA,iBAAS,EAAC;IAC/B,WAAW,EAAE,KAAK;IAClB,SAAS,EAAE,eAAe,EAAE;IAC5B,QAAQ,EAAE;QACR,iBAAiB;QACjB,oBAAoB;QACpB,YAAY;QACZ,cAAc;QACd,UAAU;QACV,UAAU;KACX;IACD,SAAS,EAAE,cAAM,OAAA,CAAC,EAAE,CAAC,EAAJ,CAAI,EAAE,6CAA6C;CACrE,CAAC,CAAC;AAEH,+EAA+E;AAC/E,aAAa,KAAK,eAAO,CAAC"}
1
+ {"version":3,"file":"baseApi.js","sourceRoot":"","sources":["../../../../src/store/api/baseApi.ts"],"names":[],"mappings":";;;;AAAA,sDAAyE;AAGzE,4DAA4D;AAC5D,IAAM,eAAe,GAAG;IACtB,OAAO,IAAA,sBAAc,EAAC;QACpB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,gCAAgC;QAC/E,WAAW,EAAE,SAAS,EAAE,sCAAsC;QAC9D,cAAc,EAAE,UAAC,OAAO,EAAE,EAAY;gBAAV,QAAQ,cAAA;YAClC,0BAA0B;YAC1B,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;YAEhD,oCAAoC;YACpC,IAAM,KAAK,GAAG,QAAQ,EAAe,CAAC;YACtC,IAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC;YAE3C,8CAA8C;YAC9C,IAAI,WAAW,EAAE,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,iBAAU,WAAW,CAAE,CAAC,CAAC;YACxD,CAAC;YAED,OAAO,OAAO,CAAC;QACjB,CAAC;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,4BAA4B;AACf,QAAA,OAAO,GAAG,IAAA,iBAAS,EAAC;IAC/B,WAAW,EAAE,KAAK;IAClB,SAAS,EAAE,eAAe,EAAE;IAC5B,QAAQ,EAAE;QACR,iBAAiB;QACjB,oBAAoB;QACpB,YAAY;QACZ,cAAc;QACd,UAAU;QACV,UAAU;KACX;IACD,SAAS,EAAE,cAAM,OAAA,CAAC,EAAE,CAAC,EAAJ,CAAI,EAAE,6CAA6C;CACrE,CAAC,CAAC;AAEH,+EAA+E;AAC/E,aAAa,KAAK,eAAO,CAAC"}
@@ -1,9 +1,11 @@
1
1
  export declare const store: import("@reduxjs/toolkit").EnhancedStore<{
2
2
  api: import("@reduxjs/toolkit/query").CombinedState<{}, "AppNotification", "api">;
3
+ auth: import("./slices/authSlice").AuthState;
3
4
  appNotifications: import("./slices").AppNotificationsState;
4
5
  }, import("@reduxjs/toolkit").UnknownAction, import("@reduxjs/toolkit").Tuple<[import("@reduxjs/toolkit").StoreEnhancer<{
5
6
  dispatch: import("@reduxjs/toolkit").ThunkDispatch<{
6
7
  api: import("@reduxjs/toolkit/query").CombinedState<{}, "AppNotification", "api">;
8
+ auth: import("./slices/authSlice").AuthState;
7
9
  appNotifications: import("./slices").AppNotificationsState;
8
10
  }, undefined, import("@reduxjs/toolkit").UnknownAction>;
9
11
  }>, import("@reduxjs/toolkit").StoreEnhancer]>>;
@@ -22,16 +22,14 @@ var errorMiddleware = function (store) { return function (next) { return functio
22
22
  }
23
23
  }; }; };
24
24
  exports.errorMiddleware = errorMiddleware;
25
- // Logger middleware for development
25
+ // Selective logger middleware for development - only logs important actions
26
26
  var loggerMiddleware = function (store) { return function (next) { return function (action) {
27
- if (process.env.NODE_ENV === 'development') {
28
- console.group("\uD83D\uDD04 Redux Action: ".concat(action.type));
29
- console.log('Previous State:', store.getState());
30
- console.log('Action:', action);
31
- }
32
27
  var result = next(action);
33
- if (process.env.NODE_ENV === 'development') {
34
- console.log('Next State:', store.getState());
28
+ // Only log failed API calls and errors in development
29
+ if (process.env.NODE_ENV === 'development' && action.type.includes('/rejected')) {
30
+ console.group("\u274C Redux Action Failed: ".concat(action.type));
31
+ console.log('Error:', action.payload);
32
+ console.log('Action:', action);
35
33
  console.groupEnd();
36
34
  }
37
35
  return result;
@@ -1 +1 @@
1
- {"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../../src/store/middleware.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,oDAAmD;AAEnD,8CAA8C;AACvC,IAAM,eAAe,GAAe,UAAC,KAAK,IAAK,OAAA,UAAC,IAAI,IAAK,OAAA,UAAC,MAAW;IAC1E,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAA,yBAAW,EAAC,KAAK,EAAE,+BAAwB,MAAM,CAAC,IAAI,CAAE,CAAC,CAAC;QAC1D,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC,EAP+D,CAO/D,EAPqD,CAOrD,CAAC;AAPW,QAAA,eAAe,mBAO1B;AAEF,oCAAoC;AAC7B,IAAM,gBAAgB,GAAe,UAAC,KAAK,IAAK,OAAA,UAAC,IAAI,IAAK,OAAA,UAAC,MAAW;IAC3E,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,EAAE,CAAC;QAC3C,OAAO,CAAC,KAAK,CAAC,qCAAoB,MAAM,CAAC,IAAI,CAAE,CAAC,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACjC,CAAC;IAED,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAE5B,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,EAAE,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC7C,OAAO,CAAC,QAAQ,EAAE,CAAC;IACrB,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,EAfgE,CAehE,EAfsD,CAetD,CAAC;AAfW,QAAA,gBAAgB,oBAe3B;AAEF,gCAAgC;AACnB,QAAA,gBAAgB;IAC3B,uBAAe;GACZ,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC,wBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,QACrE"}
1
+ {"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../../src/store/middleware.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,oDAAmD;AAEnD,8CAA8C;AACvC,IAAM,eAAe,GAAe,UAAC,KAAK,IAAK,OAAA,UAAC,IAAI,IAAK,OAAA,UAAC,MAAW;IAC1E,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAA,yBAAW,EAAC,KAAK,EAAE,+BAAwB,MAAM,CAAC,IAAI,CAAE,CAAC,CAAC;QAC1D,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC,EAP+D,CAO/D,EAPqD,CAOrD,CAAC;AAPW,QAAA,eAAe,mBAO1B;AAEF,4EAA4E;AACrE,IAAM,gBAAgB,GAAe,UAAC,KAAK,IAAK,OAAA,UAAC,IAAI,IAAK,OAAA,UAAC,MAAW;IAC3E,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAE5B,sDAAsD;IACtD,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QAChF,OAAO,CAAC,KAAK,CAAC,sCAA0B,MAAM,CAAC,IAAI,CAAE,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAC/B,OAAO,CAAC,QAAQ,EAAE,CAAC;IACrB,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,EAZgE,CAYhE,EAZsD,CAYtD,CAAC;AAZW,QAAA,gBAAgB,oBAY3B;AAEF,gCAAgC;AACnB,QAAA,gBAAgB;IAC3B,uBAAe;GACZ,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC,wBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,QACrE"}
@@ -1,8 +1,10 @@
1
1
  export declare const rootReducer: import("@reduxjs/toolkit").Reducer<{
2
2
  api: import("@reduxjs/toolkit/query").CombinedState<{}, "AppNotification", "api">;
3
+ auth: import("./slices/authSlice").AuthState;
3
4
  appNotifications: import("./slices/appNotificationsSlice").AppNotificationsState;
4
5
  }, import("@reduxjs/toolkit").UnknownAction, Partial<{
5
6
  api: import("@reduxjs/toolkit/query").CombinedState<{}, "AppNotification", "api"> | undefined;
7
+ auth: import("./slices/authSlice").AuthState | undefined;
6
8
  appNotifications: import("./slices/appNotificationsSlice").AppNotificationsState | undefined;
7
9
  }>>;
8
10
  export type RootState = ReturnType<typeof rootReducer>;
@@ -1,15 +1,20 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  var _a;
3
6
  Object.defineProperty(exports, "__esModule", { value: true });
4
7
  exports.rootReducer = void 0;
5
8
  var toolkit_1 = require("@reduxjs/toolkit");
6
9
  var baseApi_1 = require("./api/baseApi");
7
10
  var appNotificationsSlice_1 = require("./slices/appNotificationsSlice");
11
+ var authSlice_1 = __importDefault(require("./slices/authSlice"));
8
12
  // Combine all reducers
9
13
  exports.rootReducer = (0, toolkit_1.combineReducers)((_a = {},
10
14
  // API slice reducer (manages RTK Query cache)
11
15
  _a[baseApi_1.baseApi.reducerPath] = baseApi_1.baseApi.reducer,
12
16
  // Feature slices
17
+ _a.auth = authSlice_1.default,
13
18
  _a.appNotifications = appNotificationsSlice_1.appNotificationsSlice.reducer,
14
19
  _a));
15
20
  //# sourceMappingURL=rootReducer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rootReducer.js","sourceRoot":"","sources":["../../../src/store/rootReducer.ts"],"names":[],"mappings":";;;;AAAA,4CAAmD;AACnD,yCAAwC;AACxC,wEAAuE;AAEvE,uBAAuB;AACV,QAAA,WAAW,GAAG,IAAA,yBAAe;IACxC,8CAA8C;IAC9C,GAAC,iBAAO,CAAC,WAAW,IAAG,iBAAO,CAAC,OAAO;IAEtC,iBAAiB;IACjB,mBAAgB,GAAE,6CAAqB,CAAC,OAAO;QAM/C,CAAC"}
1
+ {"version":3,"file":"rootReducer.js","sourceRoot":"","sources":["../../../src/store/rootReducer.ts"],"names":[],"mappings":";;;;;;;AAAA,4CAAmD;AACnD,yCAAwC;AACxC,wEAAuE;AACvE,iEAA6C;AAE7C,uBAAuB;AACV,QAAA,WAAW,GAAG,IAAA,yBAAe;IACxC,8CAA8C;IAC9C,GAAC,iBAAO,CAAC,WAAW,IAAG,iBAAO,CAAC,OAAO;IAEtC,iBAAiB;IACjB,OAAI,GAAE,mBAAW;IACjB,mBAAgB,GAAE,6CAAqB,CAAC,OAAO;QAM/C,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { RootState } from '../index';
2
+ export interface AuthState {
3
+ accessToken: string | null;
4
+ refreshToken: string | null;
5
+ }
6
+ export declare const setTokens: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
7
+ accessToken: string | null;
8
+ refreshToken?: string | null;
9
+ }, "auth/setTokens">, clearTokens: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"auth/clearTokens">;
10
+ export declare const selectAccessToken: (state: RootState) => string | null;
11
+ export declare const selectRefreshToken: (state: RootState) => string | null;
12
+ declare const _default: import("@reduxjs/toolkit").Reducer<AuthState>;
13
+ export default _default;
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.selectRefreshToken = exports.selectAccessToken = exports.clearTokens = exports.setTokens = void 0;
5
+ var toolkit_1 = require("@reduxjs/toolkit");
6
+ var initialState = {
7
+ accessToken: null,
8
+ refreshToken: null,
9
+ };
10
+ var authSlice = (0, toolkit_1.createSlice)({
11
+ name: 'auth',
12
+ initialState: initialState,
13
+ reducers: {
14
+ setTokens: function (state, action) {
15
+ state.accessToken = action.payload.accessToken;
16
+ if (action.payload.refreshToken !== undefined) {
17
+ state.refreshToken = action.payload.refreshToken;
18
+ }
19
+ },
20
+ clearTokens: function (state) {
21
+ state.accessToken = null;
22
+ state.refreshToken = null;
23
+ },
24
+ },
25
+ });
26
+ exports.setTokens = (_a = authSlice.actions, _a.setTokens), exports.clearTokens = _a.clearTokens;
27
+ // Selectors
28
+ var selectAccessToken = function (state) { return state.auth.accessToken; };
29
+ exports.selectAccessToken = selectAccessToken;
30
+ var selectRefreshToken = function (state) { return state.auth.refreshToken; };
31
+ exports.selectRefreshToken = selectRefreshToken;
32
+ exports.default = authSlice.reducer;
33
+ //# sourceMappingURL=authSlice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authSlice.js","sourceRoot":"","sources":["../../../../src/store/slices/authSlice.ts"],"names":[],"mappings":";;;;AAAA,4CAA8D;AAQ9D,IAAM,YAAY,GAAc;IAC9B,WAAW,EAAE,IAAI;IACjB,YAAY,EAAE,IAAI;CACnB,CAAC;AAEF,IAAM,SAAS,GAAG,IAAA,qBAAW,EAAC;IAC5B,IAAI,EAAE,MAAM;IACZ,YAAY,cAAA;IACZ,QAAQ,EAAE;QACR,SAAS,EAAE,UAAC,KAAK,EAAE,MAAmF;YACpG,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;YAC/C,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;gBAC9C,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC;YACnD,CAAC;QACH,CAAC;QACD,WAAW,EAAE,UAAC,KAAK;YACjB,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC;YACzB,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;QAC5B,CAAC;KACF;CACF,CAAC,CAAC;AAEY,QAAA,SAAS,IAAX,KAA6B,SAAS,CAAC,OAAO,iBAAjC,QAAA,WAAW,kBAAuB;AAE5D,YAAY;AACL,IAAM,iBAAiB,GAAG,UAAC,KAAgB,IAAK,OAAA,KAAK,CAAC,IAAI,CAAC,WAAW,EAAtB,CAAsB,CAAC;AAAjE,QAAA,iBAAiB,qBAAgD;AACvE,IAAM,kBAAkB,GAAG,UAAC,KAAgB,IAAK,OAAA,KAAK,CAAC,IAAI,CAAC,YAAY,EAAvB,CAAuB,CAAC;AAAnE,QAAA,kBAAkB,sBAAiD;AAEhF,kBAAe,SAAS,CAAC,OAAO,CAAC"}
@@ -1,6 +1,25 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
1
+ import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
2
+ import { useEffect } from "react";
2
3
  import { Provider } from "react-redux";
3
4
  import { replykeStore } from "../store";
5
+ import useAuth from "../hooks/auth/useAuth";
6
+ import { setTokens } from "../store/slices/authSlice";
7
+ /**
8
+ * Component that syncs auth state from React context to Redux store
9
+ * Must be inside the Redux Provider to dispatch actions
10
+ */
11
+ var AuthStateSyncer = function (_a) {
12
+ var children = _a.children;
13
+ var _b = useAuth(), accessToken = _b.accessToken, refreshToken = _b.refreshToken;
14
+ useEffect(function () {
15
+ // Sync auth tokens from React context to Redux state
16
+ replykeStore.dispatch(setTokens({
17
+ accessToken: accessToken || null,
18
+ refreshToken: refreshToken || null
19
+ }));
20
+ }, [accessToken, refreshToken]);
21
+ return _jsx(_Fragment, { children: children });
22
+ };
4
23
  /**
5
24
  * Redux store provider for Replyke
6
25
  * This component provides the Redux store to all child components
@@ -8,7 +27,7 @@ import { replykeStore } from "../store";
8
27
  */
9
28
  export var ReplykeStoreProvider = function (_a) {
10
29
  var children = _a.children;
11
- return (_jsx(Provider, { store: replykeStore, children: children }));
30
+ return (_jsx(Provider, { store: replykeStore, children: _jsx(AuthStateSyncer, { children: children }) }));
12
31
  };
13
32
  // ReplykeProviderWithRedux has been deprecated
14
33
  // Use ReplykeProvider with enableRedux={true} instead
@@ -1 +1 @@
1
- {"version":3,"file":"replyke-store-context.js","sourceRoot":"","sources":["../../../src/context/replyke-store-context.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAOxC;;;;GAIG;AACH,MAAM,CAAC,IAAM,oBAAoB,GAAwC,UAAC,EAEzE;QADC,QAAQ,cAAA;IAER,OAAO,CACL,KAAC,QAAQ,IAAC,KAAK,EAAE,YAAY,YAC1B,QAAQ,GACA,CACZ,CAAC;AACJ,CAAC,CAAC;AAEF,+CAA+C;AAC/C,sDAAsD;AAEtD,eAAe,oBAAoB,CAAC"}
1
+ {"version":3,"file":"replyke-store-context.js","sourceRoot":"","sources":["../../../src/context/replyke-store-context.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,OAAO,OAAO,MAAM,uBAAuB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAMtD;;;GAGG;AACH,IAAM,eAAe,GAAsC,UAAC,EAAY;QAAV,QAAQ,cAAA;IAC9D,IAAA,KAAgC,OAAO,EAAE,EAAvC,WAAW,iBAAA,EAAE,YAAY,kBAAc,CAAC;IAEhD,SAAS,CAAC;QACR,qDAAqD;QACrD,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC;YAC9B,WAAW,EAAE,WAAW,IAAI,IAAI;YAChC,YAAY,EAAE,YAAY,IAAI,IAAI;SACnC,CAAC,CAAC,CAAC;IACN,CAAC,EAAE,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC;IAEhC,OAAO,4BAAG,QAAQ,GAAI,CAAC;AACzB,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,IAAM,oBAAoB,GAAwC,UAAC,EAEzE;QADC,QAAQ,cAAA;IAER,OAAO,CACL,KAAC,QAAQ,IAAC,KAAK,EAAE,YAAY,YAC3B,KAAC,eAAe,cACb,QAAQ,GACO,GACT,CACZ,CAAC;AACJ,CAAC,CAAC;AAEF,+CAA+C;AAC/C,sDAAsD;AAEtD,eAAe,oBAAoB,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { useEffect, useMemo } from "react";
2
2
  import { useDispatch, useSelector } from "react-redux";
3
- import { setProjectContext, setLimit, setNotificationTemplates, selectAppNotifications, selectUnreadCount, selectAppNotificationsLoading, selectAppNotificationsHasMore, selectAppNotificationsPage, selectCurrentProjectId, } from "../../store/slices/appNotificationsSlice";
3
+ import { setProjectContext, setLimit, setNotificationTemplates, selectAppNotifications, selectUnreadCount, selectAppNotificationsLoading, selectAppNotificationsHasMore, selectAppNotificationsPage, selectCurrentProjectId, selectNotificationTemplates, } from "../../store/slices/appNotificationsSlice";
4
4
  import { useAppNotificationsActionsRedux } from "./useAppNotificationsActionsRedux";
5
5
  import useProject from "../projects/useProject";
6
6
  import useUser from "../users/useUser";
@@ -32,11 +32,20 @@ function useAppNotificationsDataRedux(_a) {
32
32
  useEffect(function () {
33
33
  dispatch(setLimit(limit));
34
34
  }, [dispatch, limit]);
35
+ // Prevent infinite re-renders by comparing current vs new templates
36
+ var currentTemplates = useSelector(function (state) { return selectNotificationTemplates(state); });
37
+ var templatesChanged = useMemo(function () {
38
+ // If no templates provided, skip comparison
39
+ if (!notificationTemplates)
40
+ return false;
41
+ // Deep comparison using JSON stringify
42
+ return JSON.stringify(currentTemplates) !== JSON.stringify(notificationTemplates);
43
+ }, [currentTemplates, notificationTemplates]);
35
44
  useEffect(function () {
36
- if (notificationTemplates) {
45
+ if (notificationTemplates && templatesChanged) {
37
46
  dispatch(setNotificationTemplates(notificationTemplates));
38
47
  }
39
- }, [dispatch, notificationTemplates]);
48
+ }, [dispatch, notificationTemplates, templatesChanged]);
40
49
  // Fetch unread count on mount and when dependencies change
41
50
  useEffect(function () {
42
51
  if (projectId && user) {
@@ -1 +1 @@
1
- {"version":3,"file":"useAppNotificationsDataRedux.js","sourceRoot":"","sources":["../../../../src/hooks/app-notifications-redux/useAppNotificationsDataRedux.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useAppNotificationsDataRedux.js","sourceRoot":"","sources":["../../../../src/hooks/app-notifications-redux/useAppNotificationsDataRedux.ts"],"names":[],"mappings":"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"}
@@ -3,11 +3,19 @@ import { createApi, fetchBaseQuery } from "@reduxjs/toolkit/query/react";
3
3
  // Base query that uses the current project context and auth
4
4
  var createBaseQuery = function () {
5
5
  return fetchBaseQuery({
6
- baseUrl: process.env.REACT_APP_API_BASE_URL || 'https://api.replyke.com',
6
+ baseUrl: process.env.REACT_APP_API_BASE_URL || 'https://api.replyke.com/api/v5',
7
7
  credentials: 'include', // Equivalent to withCredentials: true
8
- prepareHeaders: function (headers) {
9
- // Headers are prepared but don't need auth tokens since we use credentials: 'include'
10
- // This matches the existing pattern in the Context-based hooks
8
+ prepareHeaders: function (headers, _a) {
9
+ var getState = _a.getState;
10
+ // Add Content-Type header
11
+ headers.set('Content-Type', 'application/json');
12
+ // Get access token from Redux state
13
+ var state = getState();
14
+ var accessToken = state.auth.accessToken;
15
+ // Add Authorization header if we have a token
16
+ if (accessToken) {
17
+ headers.set('Authorization', "Bearer ".concat(accessToken));
18
+ }
11
19
  return headers;
12
20
  },
13
21
  });
@@ -1 +1 @@
1
- {"version":3,"file":"baseApi.js","sourceRoot":"","sources":["../../../../src/store/api/baseApi.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAEzE,4DAA4D;AAC5D,IAAM,eAAe,GAAG;IACtB,OAAO,cAAc,CAAC;QACpB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,yBAAyB;QACxE,WAAW,EAAE,SAAS,EAAE,sCAAsC;QAC9D,cAAc,EAAE,UAAC,OAAO;YACtB,sFAAsF;YACtF,+DAA+D;YAC/D,OAAO,OAAO,CAAC;QACjB,CAAC;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,4BAA4B;AAC5B,MAAM,CAAC,IAAM,OAAO,GAAG,SAAS,CAAC;IAC/B,WAAW,EAAE,KAAK;IAClB,SAAS,EAAE,eAAe,EAAE;IAC5B,QAAQ,EAAE;QACR,iBAAiB;QACjB,oBAAoB;QACpB,YAAY;QACZ,cAAc;QACd,UAAU;QACV,UAAU;KACX;IACD,SAAS,EAAE,cAAM,OAAA,CAAC,EAAE,CAAC,EAAJ,CAAI,EAAE,6CAA6C;CACrE,CAAC,CAAC;AAEH,+EAA+E;AAC/E,MAAM,UAAO,KAAK,OAAO,CAAC"}
1
+ {"version":3,"file":"baseApi.js","sourceRoot":"","sources":["../../../../src/store/api/baseApi.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAGzE,4DAA4D;AAC5D,IAAM,eAAe,GAAG;IACtB,OAAO,cAAc,CAAC;QACpB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,gCAAgC;QAC/E,WAAW,EAAE,SAAS,EAAE,sCAAsC;QAC9D,cAAc,EAAE,UAAC,OAAO,EAAE,EAAY;gBAAV,QAAQ,cAAA;YAClC,0BAA0B;YAC1B,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;YAEhD,oCAAoC;YACpC,IAAM,KAAK,GAAG,QAAQ,EAAe,CAAC;YACtC,IAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC;YAE3C,8CAA8C;YAC9C,IAAI,WAAW,EAAE,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,iBAAU,WAAW,CAAE,CAAC,CAAC;YACxD,CAAC;YAED,OAAO,OAAO,CAAC;QACjB,CAAC;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,4BAA4B;AAC5B,MAAM,CAAC,IAAM,OAAO,GAAG,SAAS,CAAC;IAC/B,WAAW,EAAE,KAAK;IAClB,SAAS,EAAE,eAAe,EAAE;IAC5B,QAAQ,EAAE;QACR,iBAAiB;QACjB,oBAAoB;QACpB,YAAY;QACZ,cAAc;QACd,UAAU;QACV,UAAU;KACX;IACD,SAAS,EAAE,cAAM,OAAA,CAAC,EAAE,CAAC,EAAJ,CAAI,EAAE,6CAA6C;CACrE,CAAC,CAAC;AAEH,+EAA+E;AAC/E,MAAM,UAAO,KAAK,OAAO,CAAC"}
@@ -1,9 +1,11 @@
1
1
  export declare const store: import("@reduxjs/toolkit").EnhancedStore<{
2
2
  api: import("@reduxjs/toolkit/query").CombinedState<{}, "AppNotification", "api">;
3
+ auth: import("./slices/authSlice").AuthState;
3
4
  appNotifications: import("./slices").AppNotificationsState;
4
5
  }, import("@reduxjs/toolkit").UnknownAction, import("@reduxjs/toolkit").Tuple<[import("@reduxjs/toolkit").StoreEnhancer<{
5
6
  dispatch: import("@reduxjs/toolkit").ThunkDispatch<{
6
7
  api: import("@reduxjs/toolkit/query").CombinedState<{}, "AppNotification", "api">;
8
+ auth: import("./slices/authSlice").AuthState;
7
9
  appNotifications: import("./slices").AppNotificationsState;
8
10
  }, undefined, import("@reduxjs/toolkit").UnknownAction>;
9
11
  }>, import("@reduxjs/toolkit").StoreEnhancer]>>;
@@ -18,16 +18,14 @@ export var errorMiddleware = function (store) { return function (next) { return
18
18
  throw error;
19
19
  }
20
20
  }; }; };
21
- // Logger middleware for development
21
+ // Selective logger middleware for development - only logs important actions
22
22
  export var loggerMiddleware = function (store) { return function (next) { return function (action) {
23
- if (process.env.NODE_ENV === 'development') {
24
- console.group("\uD83D\uDD04 Redux Action: ".concat(action.type));
25
- console.log('Previous State:', store.getState());
26
- console.log('Action:', action);
27
- }
28
23
  var result = next(action);
29
- if (process.env.NODE_ENV === 'development') {
30
- console.log('Next State:', store.getState());
24
+ // Only log failed API calls and errors in development
25
+ if (process.env.NODE_ENV === 'development' && action.type.includes('/rejected')) {
26
+ console.group("\u274C Redux Action Failed: ".concat(action.type));
27
+ console.log('Error:', action.payload);
28
+ console.log('Action:', action);
31
29
  console.groupEnd();
32
30
  }
33
31
  return result;
@@ -1 +1 @@
1
- {"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../../src/store/middleware.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,8CAA8C;AAC9C,MAAM,CAAC,IAAM,eAAe,GAAe,UAAC,KAAK,IAAK,OAAA,UAAC,IAAI,IAAK,OAAA,UAAC,MAAW;IAC1E,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,WAAW,CAAC,KAAK,EAAE,+BAAwB,MAAM,CAAC,IAAI,CAAE,CAAC,CAAC;QAC1D,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC,EAP+D,CAO/D,EAPqD,CAOrD,CAAC;AAEF,oCAAoC;AACpC,MAAM,CAAC,IAAM,gBAAgB,GAAe,UAAC,KAAK,IAAK,OAAA,UAAC,IAAI,IAAK,OAAA,UAAC,MAAW;IAC3E,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,EAAE,CAAC;QAC3C,OAAO,CAAC,KAAK,CAAC,qCAAoB,MAAM,CAAC,IAAI,CAAE,CAAC,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACjC,CAAC;IAED,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAE5B,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,EAAE,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC7C,OAAO,CAAC,QAAQ,EAAE,CAAC;IACrB,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,EAfgE,CAehE,EAfsD,CAetD,CAAC;AAEF,gCAAgC;AAChC,MAAM,CAAC,IAAM,gBAAgB;IAC3B,eAAe;GACZ,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OACtE,CAAC"}
1
+ {"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../../src/store/middleware.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,8CAA8C;AAC9C,MAAM,CAAC,IAAM,eAAe,GAAe,UAAC,KAAK,IAAK,OAAA,UAAC,IAAI,IAAK,OAAA,UAAC,MAAW;IAC1E,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,WAAW,CAAC,KAAK,EAAE,+BAAwB,MAAM,CAAC,IAAI,CAAE,CAAC,CAAC;QAC1D,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC,EAP+D,CAO/D,EAPqD,CAOrD,CAAC;AAEF,4EAA4E;AAC5E,MAAM,CAAC,IAAM,gBAAgB,GAAe,UAAC,KAAK,IAAK,OAAA,UAAC,IAAI,IAAK,OAAA,UAAC,MAAW;IAC3E,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAE5B,sDAAsD;IACtD,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QAChF,OAAO,CAAC,KAAK,CAAC,sCAA0B,MAAM,CAAC,IAAI,CAAE,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAC/B,OAAO,CAAC,QAAQ,EAAE,CAAC;IACrB,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,EAZgE,CAYhE,EAZsD,CAYtD,CAAC;AAEF,gCAAgC;AAChC,MAAM,CAAC,IAAM,gBAAgB;IAC3B,eAAe;GACZ,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OACtE,CAAC"}
@@ -1,8 +1,10 @@
1
1
  export declare const rootReducer: import("@reduxjs/toolkit").Reducer<{
2
2
  api: import("@reduxjs/toolkit/query").CombinedState<{}, "AppNotification", "api">;
3
+ auth: import("./slices/authSlice").AuthState;
3
4
  appNotifications: import("./slices/appNotificationsSlice").AppNotificationsState;
4
5
  }, import("@reduxjs/toolkit").UnknownAction, Partial<{
5
6
  api: import("@reduxjs/toolkit/query").CombinedState<{}, "AppNotification", "api"> | undefined;
7
+ auth: import("./slices/authSlice").AuthState | undefined;
6
8
  appNotifications: import("./slices/appNotificationsSlice").AppNotificationsState | undefined;
7
9
  }>>;
8
10
  export type RootState = ReturnType<typeof rootReducer>;
@@ -2,11 +2,13 @@ var _a;
2
2
  import { combineReducers } from "@reduxjs/toolkit";
3
3
  import { baseApi } from "./api/baseApi";
4
4
  import { appNotificationsSlice } from "./slices/appNotificationsSlice";
5
+ import authReducer from "./slices/authSlice";
5
6
  // Combine all reducers
6
7
  export var rootReducer = combineReducers((_a = {},
7
8
  // API slice reducer (manages RTK Query cache)
8
9
  _a[baseApi.reducerPath] = baseApi.reducer,
9
10
  // Feature slices
11
+ _a.auth = authReducer,
10
12
  _a.appNotifications = appNotificationsSlice.reducer,
11
13
  _a));
12
14
  //# sourceMappingURL=rootReducer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rootReducer.js","sourceRoot":"","sources":["../../../src/store/rootReducer.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAEvE,uBAAuB;AACvB,MAAM,CAAC,IAAM,WAAW,GAAG,eAAe;IACxC,8CAA8C;IAC9C,GAAC,OAAO,CAAC,WAAW,IAAG,OAAO,CAAC,OAAO;IAEtC,iBAAiB;IACjB,mBAAgB,GAAE,qBAAqB,CAAC,OAAO;QAM/C,CAAC"}
1
+ {"version":3,"file":"rootReducer.js","sourceRoot":"","sources":["../../../src/store/rootReducer.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,WAAW,MAAM,oBAAoB,CAAC;AAE7C,uBAAuB;AACvB,MAAM,CAAC,IAAM,WAAW,GAAG,eAAe;IACxC,8CAA8C;IAC9C,GAAC,OAAO,CAAC,WAAW,IAAG,OAAO,CAAC,OAAO;IAEtC,iBAAiB;IACjB,OAAI,GAAE,WAAW;IACjB,mBAAgB,GAAE,qBAAqB,CAAC,OAAO;QAM/C,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { RootState } from '../index';
2
+ export interface AuthState {
3
+ accessToken: string | null;
4
+ refreshToken: string | null;
5
+ }
6
+ export declare const setTokens: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
7
+ accessToken: string | null;
8
+ refreshToken?: string | null;
9
+ }, "auth/setTokens">, clearTokens: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"auth/clearTokens">;
10
+ export declare const selectAccessToken: (state: RootState) => string | null;
11
+ export declare const selectRefreshToken: (state: RootState) => string | null;
12
+ declare const _default: import("@reduxjs/toolkit").Reducer<AuthState>;
13
+ export default _default;
@@ -0,0 +1,28 @@
1
+ var _a;
2
+ import { createSlice } from '@reduxjs/toolkit';
3
+ var initialState = {
4
+ accessToken: null,
5
+ refreshToken: null,
6
+ };
7
+ var authSlice = createSlice({
8
+ name: 'auth',
9
+ initialState: initialState,
10
+ reducers: {
11
+ setTokens: function (state, action) {
12
+ state.accessToken = action.payload.accessToken;
13
+ if (action.payload.refreshToken !== undefined) {
14
+ state.refreshToken = action.payload.refreshToken;
15
+ }
16
+ },
17
+ clearTokens: function (state) {
18
+ state.accessToken = null;
19
+ state.refreshToken = null;
20
+ },
21
+ },
22
+ });
23
+ export var setTokens = (_a = authSlice.actions, _a.setTokens), clearTokens = _a.clearTokens;
24
+ // Selectors
25
+ export var selectAccessToken = function (state) { return state.auth.accessToken; };
26
+ export var selectRefreshToken = function (state) { return state.auth.refreshToken; };
27
+ export default authSlice.reducer;
28
+ //# sourceMappingURL=authSlice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authSlice.js","sourceRoot":"","sources":["../../../../src/store/slices/authSlice.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAiB,MAAM,kBAAkB,CAAC;AAQ9D,IAAM,YAAY,GAAc;IAC9B,WAAW,EAAE,IAAI;IACjB,YAAY,EAAE,IAAI;CACnB,CAAC;AAEF,IAAM,SAAS,GAAG,WAAW,CAAC;IAC5B,IAAI,EAAE,MAAM;IACZ,YAAY,cAAA;IACZ,QAAQ,EAAE;QACR,SAAS,EAAE,UAAC,KAAK,EAAE,MAAmF;YACpG,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;YAC/C,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;gBAC9C,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC;YACnD,CAAC;QACH,CAAC;QACD,WAAW,EAAE,UAAC,KAAK;YACjB,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC;YACzB,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;QAC5B,CAAC;KACF;CACF,CAAC,CAAC;AAEH,MAAM,CAAS,IAAA,SAAS,IAAX,KAA6B,SAAS,CAAC,OAAO,eAAnC,EAAE,WAAW,iBAAA,CAAuB;AAE5D,YAAY;AACZ,MAAM,CAAC,IAAM,iBAAiB,GAAG,UAAC,KAAgB,IAAK,OAAA,KAAK,CAAC,IAAI,CAAC,WAAW,EAAtB,CAAsB,CAAC;AAC9E,MAAM,CAAC,IAAM,kBAAkB,GAAG,UAAC,KAAgB,IAAK,OAAA,KAAK,CAAC,IAAI,CAAC,YAAY,EAAvB,CAAuB,CAAC;AAEhF,eAAe,SAAS,CAAC,OAAO,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@replyke/core",
3
- "version": "5.1.5-beta.1",
3
+ "version": "5.1.5-beta.3",
4
4
  "private": false,
5
5
  "license": "Apache-2.0",
6
6
  "author": "Replyke, maintained by Yanay Tsabary",