@admin-layout/client 10.1.1-alpha.21 → 10.1.1-alpha.23

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.
@@ -1 +1 @@
1
- {"version":3,"file":"LayoutCookieProvider.d.ts","sourceRoot":"","sources":["../../src/components/LayoutCookieProvider.tsx"],"names":[],"mappings":"AACA,OAAO,KAA6C,MAAM,OAAO,CAAC;AAKlE,UAAU,yBAAyB;IAC/B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC7B;AAED,wBAAgB,oBAAoB,CAAC,EAAE,QAAQ,EAAE,EAAE,yBAAyB,GAAG,KAAK,CAAC,YAAY,CA0BhG"}
1
+ {"version":3,"file":"LayoutCookieProvider.d.ts","sourceRoot":"","sources":["../../src/components/LayoutCookieProvider.tsx"],"names":[],"mappings":"AACA,OAAO,KAA6C,MAAM,OAAO,CAAC;AAIlE,UAAU,yBAAyB;IAC/B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC7B;AAED,wBAAgB,oBAAoB,CAAC,EAAE,QAAQ,EAAE,EAAE,yBAAyB,GAAG,KAAK,CAAC,YAAY,CA2BhG"}
@@ -1,5 +1,6 @@
1
- import {jsx,Fragment}from'react/jsx-runtime';import {useLoaderData}from'@remix-run/react';import {useRef,useEffect}from'react';import {useDispatch}from'react-redux';import {CHANGE_SETTINGS_ACTION}from'../constants/constants.js';function LayoutCookieProvider({ children }) {
2
- const { settings } = useLoaderData();
1
+ import {jsx,Fragment}from'react/jsx-runtime';import {useRouteLoaderData}from'@remix-run/react';import {useRef,useEffect}from'react';import {useDispatch}from'react-redux';import {CHANGE_SETTINGS_ACTION}from'../constants/constants.js';function LayoutCookieProvider({ children }) {
2
+ const routeData = useRouteLoaderData('root');
3
+ const settings = routeData?.settings?.settings || routeData?.settings;
3
4
  const dispatch = useDispatch();
4
5
  const hasDispatched = useRef(false);
5
6
  // Handle both server and client side
@@ -1 +1 @@
1
- {"version":3,"file":"LayoutCookieProvider.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"LayoutCookieProvider.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,16 +1,23 @@
1
1
  import { ProSettings } from '../../interfaces';
2
- export declare function settingsLoaderUtil({ request }: {
2
+ import { IAppLoadContext, IResourceParams } from '@common-stack/client-core';
3
+ export declare function settingsLoaderUtil({ request, context, params, }: {
3
4
  request: Request;
5
+ context?: IAppLoadContext;
6
+ params?: IResourceParams;
4
7
  }): Promise<{
5
8
  settings: ProSettings;
6
9
  setCookie: string;
7
10
  }>;
8
- export declare const action: ({ request }: {
11
+ export declare const action: ({ request, context, params, }: {
9
12
  request: Request;
13
+ context?: IAppLoadContext;
14
+ params?: IResourceParams;
10
15
  }) => Promise<import("@remix-run/server-runtime").TypedResponse<any>>;
11
- export declare const loader: ({ request }: {
16
+ export declare const loader: ({ request, context, params, }: {
12
17
  request: Request;
18
+ context?: IAppLoadContext;
19
+ params?: IResourceParams;
13
20
  }) => Promise<import("@remix-run/server-runtime").TypedResponse<{
14
- settings: import("../..").PureSettings;
21
+ settings: any;
15
22
  }>>;
16
23
  //# sourceMappingURL=UpdateSettings.server.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"UpdateSettings.server.d.ts","sourceRoot":"","sources":["../../../src/components/UpdateSettings/UpdateSettings.server.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAY/C,wBAAsB,kBAAkB,CAAC,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC;IACjF,QAAQ,EAAE,WAAW,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACrB,CAAC,CA6BD;AAED,eAAO,MAAM,MAAM,GAAU,aAAa;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,oEAkC7D,CAAC;AAEF,eAAO,MAAM,MAAM,GAAU,aAAa;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE;;GAkB7D,CAAC"}
1
+ {"version":3,"file":"UpdateSettings.server.d.ts","sourceRoot":"","sources":["../../../src/components/UpdateSettings/UpdateSettings.server.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/C,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AA8B7E,wBAAsB,kBAAkB,CAAC,EACrC,OAAO,EACP,OAAO,EACP,MAAM,GACT,EAAE;IACC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,MAAM,CAAC,EAAE,eAAe,CAAC;CAC5B,GAAG,OAAO,CAAC;IACR,QAAQ,EAAE,WAAW,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACrB,CAAC,CAmCD;AAED,eAAO,MAAM,MAAM,GAAU,+BAI1B;IACC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,MAAM,CAAC,EAAE,eAAe,CAAC;CAC5B,oEAyCA,CAAC;AAEF,eAAO,MAAM,MAAM,GAAU,+BAI1B;IACC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,MAAM,CAAC,EAAE,eAAe,CAAC;CAC5B;;GAwBA,CAAC"}
@@ -1,17 +1,41 @@
1
- import {createCookie,json}from'@remix-run/node';import {merge}from'lodash-es';import {config}from'../../config/env-config.js';import {defaultSettings}from'../../config/defaultSettings.js';import'react';import'common';import'@cdm-logger/client';import {compareAndSaveSettingsDifferences}from'../../utils/settingsDifference.js';import {assignDefaults}from'../../utils/assignDefaults.js';const settingsCookie = createCookie('settings', {
1
+ import {createCookie,json}from'@remix-run/node';import {merge}from'lodash-es';import {config}from'../../config/env-config.js';import {defaultSettings}from'../../config/defaultSettings.js';import'react';import'common';import'@cdm-logger/client';import {compareAndSaveSettingsDifferences}from'../../utils/settingsDifference.js';import {assignDefaults}from'../../utils/assignDefaults.js';import {GetPageSettingsDocument}from'common/graphql';const settingsCookie = createCookie('settings', {
2
2
  maxAge: 60 * 60 * 24 * 30, // 1 month
3
3
  httpOnly: false, // Allow client-side access
4
4
  sameSite: 'lax',
5
5
  path: '/', // Ensure cookie is available for all paths
6
6
  domain: config.isProd ? config.APP_DOMAIN : undefined,
7
7
  });
8
- async function settingsLoaderUtil({ request }) {
8
+ // Helper to fetch page settings from Apollo
9
+ async function fetchPageSettings(apolloClient, orgName) {
10
+ return apolloClient.query({
11
+ query: GetPageSettingsDocument,
12
+ context: {
13
+ headers: {
14
+ 'Content-Type': 'application/json',
15
+ },
16
+ },
17
+ variables: {
18
+ resourceUri: `cdecode://default/${orgName}#settings`,
19
+ options: {
20
+ schemaId: 'uiLayout',
21
+ extensionName: config?.LAYOUT_SETTINGS?.extensionName || 'account',
22
+ },
23
+ },
24
+ });
25
+ }
26
+ async function settingsLoaderUtil({ request, context, params, }) {
9
27
  const cookieHeader = request.headers.get('Cookie');
10
28
  let settings;
29
+ const { apolloClient } = context;
30
+ const { orgName: orgNameFromParams } = params || {};
31
+ const orgName = request.headers.get('orgname') || orgNameFromParams || '';
32
+ const result = await fetchPageSettings(apolloClient, orgName);
33
+ const pageSettings = JSON.parse(JSON.stringify(result.data.pageSettings.settings));
34
+ let pageDefaultSettings = pageSettings?.uilayout || defaultSettings || {};
11
35
  try {
12
36
  settings = await settingsCookie.parse(cookieHeader);
13
37
  console.log('Parsed cookie settings:', settings);
14
- assignDefaults(settings, defaultSettings);
38
+ assignDefaults(settings, pageDefaultSettings);
15
39
  }
16
40
  catch (error) {
17
41
  console.error('Error parsing settings cookie:', error);
@@ -19,31 +43,38 @@ async function settingsLoaderUtil({ request }) {
19
43
  }
20
44
  // If no settings in cookie, generate default settings
21
45
  if (!settings) {
22
- const fullSettings = merge({}, defaultSettings, config.LAYOUT_SETTINGS);
23
- assignDefaults(fullSettings, defaultSettings);
46
+ const fullSettings = merge({}, pageDefaultSettings, config.LAYOUT_SETTINGS);
47
+ assignDefaults(fullSettings, pageDefaultSettings);
24
48
  // Only store differences to keep cookie size small
25
- const diffSettings = await compareAndSaveSettingsDifferences(fullSettings, defaultSettings);
49
+ const diffSettings = await compareAndSaveSettingsDifferences(fullSettings, pageDefaultSettings);
26
50
  const cookie = await settingsCookie.serialize(diffSettings);
27
51
  return { settings: fullSettings, setCookie: cookie };
28
52
  }
29
53
  // Merge cookie settings with defaults to get complete settings
30
- const fullSettings = merge({}, defaultSettings, config.LAYOUT_SETTINGS, settings);
54
+ const fullSettings = merge({}, pageDefaultSettings, config.LAYOUT_SETTINGS, settings);
31
55
  // Refresh the cookie to keep it active
32
56
  const cookie = await settingsCookie.serialize(settings);
33
57
  return { settings: fullSettings, setCookie: cookie };
34
58
  }
35
- const action = async ({ request }) => {
59
+ const action = async ({ request, context, params, }) => {
36
60
  try {
61
+ const { apolloClient } = context;
62
+ //console.log('request', request);
63
+ const orgName = request.headers.get('orgname') || '';
64
+ const result = await fetchPageSettings(apolloClient, orgName);
65
+ const pageSettings = JSON.parse(JSON.stringify(result.data.pageSettings.settings));
66
+ let pageDefaultSettings = pageSettings?.uilayout || defaultSettings || {};
37
67
  const jsonData = await request.json();
68
+ console.log('jsonData....', jsonData);
38
69
  const payload = jsonData?.config || {};
39
- assignDefaults(payload, defaultSettings);
70
+ assignDefaults(payload, pageDefaultSettings);
40
71
  const cookieHeader = request.headers.get('Cookie');
41
72
  let existingSettings;
42
73
  let mergedSettings;
43
74
  try {
44
75
  existingSettings = await settingsCookie.parse(cookieHeader);
45
76
  mergedSettings = merge({}, existingSettings, payload);
46
- assignDefaults(mergedSettings, defaultSettings);
77
+ assignDefaults(mergedSettings, pageDefaultSettings);
47
78
  }
48
79
  catch (error) {
49
80
  console.error('Error parsing settings cookie in action:', error);
@@ -52,7 +83,7 @@ const action = async ({ request }) => {
52
83
  // Merge everything together
53
84
  const fullSettings = merge({}, config.LAYOUT_SETTINGS, mergedSettings);
54
85
  // Store only differences from default
55
- const diffSettings = await compareAndSaveSettingsDifferences(fullSettings, defaultSettings);
86
+ const diffSettings = await compareAndSaveSettingsDifferences(fullSettings, pageDefaultSettings);
56
87
  // Create a new cookie with the diff settings
57
88
  const newCookie = await settingsCookie.serialize(diffSettings);
58
89
  return json(fullSettings, {
@@ -66,9 +97,9 @@ const action = async ({ request }) => {
66
97
  return json({ error: 'Failed to update settings' }, { status: 500 });
67
98
  }
68
99
  };
69
- const loader = async ({ request }) => {
100
+ const loader = async ({ request, context, params, }) => {
70
101
  try {
71
- const { settings, setCookie } = await settingsLoaderUtil({ request });
102
+ const { settings, setCookie } = await settingsLoaderUtil({ request, context, params });
72
103
  // Always include headers, but only set cookie if provided
73
104
  const headers = {};
74
105
  if (setCookie) {
@@ -79,8 +110,14 @@ const loader = async ({ request }) => {
79
110
  catch (error) {
80
111
  console.error('Error in settings loader:', error);
81
112
  // Fall back to default settings
113
+ const { apolloClient } = context;
114
+ const { orgName: orgNameFromParams } = params || {};
115
+ const orgName = request.headers.get('orgname') || orgNameFromParams || '';
116
+ const result = await fetchPageSettings(apolloClient, orgName);
117
+ const pageSettings = JSON.parse(JSON.stringify(result.data.pageSettings.settings));
118
+ let pageDefaultSettings = pageSettings?.uilayout || defaultSettings || {};
82
119
  return json({
83
- settings: merge({}, defaultSettings, config.LAYOUT_SETTINGS),
120
+ settings: merge({}, pageDefaultSettings, config.LAYOUT_SETTINGS),
84
121
  });
85
122
  }
86
123
  };export{action,loader,settingsLoaderUtil};//# sourceMappingURL=UpdateSettings.server.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UpdateSettings.server.js","sources":["../../../src/components/UpdateSettings/UpdateSettings.server.ts"],"sourcesContent":[null],"names":[],"mappings":"uYAiBa,iBAAS,YAAA,CAAA,UAAA,EAAA;AACrB,IA6BA,MAAA,EAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA;AAED,IAAO,QAAA,EAAA,KAAA;IAAqC,QAAO;AAAW,IAAA,IAAA,EAAA,GAAA;AAoC9D,IAAO,MAAA,EAAA,MAAA,CAAA,MAAY,GAAA,MAAuB,CAAA,UAAA,GAAA,SAAA;;AAAoB,eAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,EAAA;;IAkB5D,IAAA,QAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"UpdateSettings.server.js","sources":["../../../src/components/UpdateSettings/UpdateSettings.server.ts"],"sourcesContent":[null],"names":[],"mappings":"4bA8CY,6BAAc,CAAA,UAAA,EAAA;IACtB,MAAS,EAAA,EAAA,QAAS,EAAA,GAAA,EAAA;AACrB,IAmCA,QAAA,EAAA,KAAA;AAED,IAAO,QAAA,EAAA,KAAA;IAKH,IAAO,EAAA,GAAE;IACT,MAAO,EAAC,MAAE,CAAA,MAAA,GAAA,MAAgB,CAAA,UAAA,GAAA,SAAA;;AAE7B;AA2CD,eAAO,iBAIJ,CAAA,YAAA,EAAA,OAAA,EAAA;IACC,OAAO,YAAU,CAAA,KAAA,CAAA;QACV,KAAG,EAAA,uBAAgB;QACpB,OAAG,EAAA;AACZ,YAAA,OAAA,EAAA;;aAwBC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -2,7 +2,7 @@ import*as envalid from'envalid';import {getEnvironment}from'@common-stack/core';
2
2
  const env = getEnvironment();
3
3
  const preConfig = envalid.cleanEnv(env, {
4
4
  LAYOUT_SETTINGS: json({
5
- default: JSON.stringify(defaultSettings),
5
+ default: JSON.stringify({ ...defaultSettings, extensionName: 'account' }),
6
6
  }),
7
7
  APP_DOMAIN: envalid.str({ default: 'cdebase.dev' }),
8
8
  });
@@ -1 +1 @@
1
- {"version":3,"file":"useLayoutSettings.d.ts","sourceRoot":"","sources":["../../src/hooks/useLayoutSettings.ts"],"names":[],"mappings":"AAiBA,eAAO,MAAM,iBAAiB;;0BA4BP,GAAG;;CA6CzB,CAAC"}
1
+ {"version":3,"file":"useLayoutSettings.d.ts","sourceRoot":"","sources":["../../src/hooks/useLayoutSettings.ts"],"names":[],"mappings":"AAkBA,eAAO,MAAM,iBAAiB;;0BAiCP,GAAG;;CA+CzB,CAAC"}
@@ -1,4 +1,4 @@
1
- import {useCallback}from'react';import {useDispatch,useSelector}from'react-redux';import {merge}from'lodash-es';import {defaultSettings}from'../config/defaultSettings.js';import {CHANGE_SETTINGS_ACTION}from'../constants/constants.js';import {compareAndSaveSettingsDifferences}from'../utils/settingsDifference.js';const updateColorWeak = (colorWeak) => {
1
+ import {useCallback}from'react';import {useDispatch,useSelector}from'react-redux';import {merge}from'lodash-es';import {defaultSettings}from'../config/defaultSettings.js';import {CHANGE_SETTINGS_ACTION}from'../constants/constants.js';import {compareAndSaveSettingsDifferences}from'../utils/settingsDifference.js';import {useParams}from'react-router';const updateColorWeak = (colorWeak) => {
2
2
  // @sri to avoid breaking during SSR, split into to checks
3
3
  if (typeof window !== 'undefined') {
4
4
  const root = document.getElementById('root');
@@ -10,12 +10,17 @@ import {useCallback}from'react';import {useDispatch,useSelector}from'react-redux
10
10
  const useLayoutSettings = () => {
11
11
  const dispatch = useDispatch();
12
12
  const settings = useSelector((state) => state.settings);
13
+ const { orgName: orgNameFromParams } = useSelector((state) => ({
14
+ orgName: state.platform.orgName,
15
+ }));
16
+ const { orgName: orgNameFromUrl } = useParams();
13
17
  const getSettings = useCallback(async () => {
14
18
  try {
15
19
  const response = await fetch('/resources/settings', {
16
20
  method: 'GET',
17
21
  headers: {
18
22
  'Content-Type': 'application/json',
23
+ orgName: orgNameFromParams || orgNameFromUrl || '',
19
24
  },
20
25
  });
21
26
  if (!response.ok) {
@@ -45,6 +50,7 @@ const useLayoutSettings = () => {
45
50
  method: 'POST',
46
51
  headers: {
47
52
  'Content-Type': 'application/json',
53
+ orgName: orgNameFromParams || orgNameFromUrl || '',
48
54
  },
49
55
  body: JSON.stringify({ config: cleanDiffSettings }),
50
56
  });
@@ -52,8 +58,9 @@ const useLayoutSettings = () => {
52
58
  throw new Error('Failed to update settings');
53
59
  }
54
60
  const result = await response.json();
61
+ const pageDefaultSettings = result || defaultSettings;
55
62
  // Merge the full config with default settings before updating the store
56
- const mergedSettings = merge({}, defaultSettings, config);
63
+ const mergedSettings = merge({}, pageDefaultSettings, config);
57
64
  dispatch({
58
65
  type: CHANGE_SETTINGS_ACTION,
59
66
  payload: mergedSettings,
@@ -1 +1 @@
1
- {"version":3,"file":"useLayoutSettings.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"useLayoutSettings.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -6,5 +6,6 @@ export type DefaultSettings = Partial<ProSettings> & {
6
6
  textColor?: string;
7
7
  theme?: string;
8
8
  themeType?: string;
9
+ extensionName?: string;
9
10
  };
10
11
  //# sourceMappingURL=default-settings.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"default-settings.d.ts","sourceRoot":"","sources":["../../src/interfaces/default-settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,MAAM,MAAM,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC"}
1
+ {"version":3,"file":"default-settings.d.ts","sourceRoot":"","sources":["../../src/interfaces/default-settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,MAAM,MAAM,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@admin-layout/client",
3
- "version": "10.1.1-alpha.21",
3
+ "version": "10.1.1-alpha.23",
4
4
  "description": "Sample client for higher packages to depend on",
5
5
  "license": "ISC",
6
6
  "author": "CDMBase LLC",
@@ -40,5 +40,5 @@
40
40
  "typescript": {
41
41
  "definition": "lib/index.d.ts"
42
42
  },
43
- "gitHead": "fd950a4fa0ad32d54b8017ce0ab23778a2666d5e"
43
+ "gitHead": "73dd894ad8c271ff66dc539da2c4d0bfd45b6ff8"
44
44
  }