@admin-layout/client 12.0.16-alpha.24 → 12.0.16-alpha.25

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,6 +1,6 @@
1
- import { ProSettings } from '../../interfaces';
2
1
  import { IAppLoadContext } from '@common-stack/client-core';
3
2
  import { IResourceParams } from '@common-stack/core';
3
+ import { ProSettings } from '../../interfaces';
4
4
  export declare function settingsLoaderUtil({ request, context, params, }: {
5
5
  request: Request;
6
6
  context?: IAppLoadContext;
@@ -1 +1 @@
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,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAuCrD,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
+ {"version":3,"file":"UpdateSettings.server.d.ts","sourceRoot":"","sources":["../../../src/components/UpdateSettings/UpdateSettings.server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAMrD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAuC/C,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,CA0CD;AAED,eAAO,MAAM,MAAM,GAAU,+BAI1B;IACC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,MAAM,CAAC,EAAE,eAAe,CAAC;CAC5B,oEAgEA,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;;GAgCA,CAAC"}
@@ -1,4 +1,4 @@
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';// NOTE: We are temporarily using `defaultSettings`. This will be removed once `defaultSettings` is updated in the all packages.
1
+ import {createCookie,json}from'@remix-run/node';import {GetPageSettingsDocument}from'common/graphql';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';// NOTE: We are temporarily using `defaultSettings`. This will be removed once `defaultSettings` is updated in the all packages.
2
2
  const settingsCookie = createCookie('settings', {
3
3
  maxAge: 60 * 60 * 24 * 30, // 1 month
4
4
  httpOnly: false, // Allow client-side access
@@ -40,6 +40,12 @@ async function settingsLoaderUtil({ request, context, params, }) {
40
40
  ? JSON.parse(JSON.stringify(result?.data?.pageSettings?.settings))
41
41
  : null;
42
42
  let pageDefaultSettings = pageSettings?.uilayout || defaultSettings || {};
43
+ // TEMPORARY: Manually add hiddenMenuKeys to defaults until GraphQL schema is updated
44
+ pageDefaultSettings = {
45
+ ...pageDefaultSettings,
46
+ hiddenMenuKeys: [],
47
+ hiddenMenuCategories: [],
48
+ };
43
49
  try {
44
50
  settings = await settingsCookie.parse(cookieHeader);
45
51
  console.log('Parsed cookie settings:', settings);
@@ -66,34 +72,52 @@ async function settingsLoaderUtil({ request, context, params, }) {
66
72
  }
67
73
  const action = async ({ request, context, params, }) => {
68
74
  try {
75
+ // 1. Fetch default settings from GraphQL (or fallback to local defaults)
69
76
  const { apolloClient } = context;
70
77
  const result = await fetchPageSettings(apolloClient);
71
78
  const pageSettings = result?.data?.pageSettings?.settings
72
79
  ? JSON.parse(JSON.stringify(result.data.pageSettings.settings))
73
80
  : null;
74
81
  let pageDefaultSettings = pageSettings?.uilayout || defaultSettings || {};
82
+ // 2 TEMPORARY: Manually add hiddenMenuKeys to defaults until GraphQL schema is updated
83
+ pageDefaultSettings = {
84
+ ...pageDefaultSettings,
85
+ hiddenMenuKeys: [],
86
+ hiddenMenuCategories: [],
87
+ };
88
+ // 3. Parse the incoming settings update from the client (usually only changed keys)
75
89
  const jsonData = await request.json();
76
- console.log('jsonData....', jsonData);
77
90
  const payload = jsonData?.config || {};
91
+ // 4. Fill in any missing default keys in the payload (does not overwrite user values)
78
92
  assignDefaults(payload, pageDefaultSettings);
93
+ // 5. Parse existing settings from the cookie (if present)
79
94
  const cookieHeader = request.headers.get('Cookie');
80
95
  let existingSettings;
81
96
  let mergedSettings;
82
97
  try {
83
98
  existingSettings = await settingsCookie.parse(cookieHeader);
99
+ // 6. Merge existing settings with the new payload from the client
84
100
  mergedSettings = merge({}, existingSettings, payload);
101
+ // 7. Ensure merged settings have all default keys (again, does not overwrite user values)
85
102
  assignDefaults(mergedSettings, pageDefaultSettings);
86
103
  }
87
104
  catch (error) {
105
+ // If cookie parsing fails, fall back to just the payload
88
106
  console.error('Error parsing settings cookie in action:', error);
89
107
  existingSettings = null;
90
108
  }
91
- // Build full settings with defaults first, then overlay merged cookie+payload
109
+ // 8. Build the final settings object: defaults config.LAYOUT_SETTINGS merged user settings
92
110
  const fullSettings = merge({}, pageDefaultSettings, config.LAYOUT_SETTINGS, mergedSettings);
93
- // Store only differences from default
111
+ // TEMPORARY FIX: Manually override hiddenMenuKeys with payload value
112
+ // This ensures payload array replaces the prev array values
113
+ if (payload.hiddenMenuKeys !== undefined) {
114
+ fullSettings.hiddenMenuKeys = [...payload.hiddenMenuKeys];
115
+ }
116
+ // 9. Store only the differences from the defaults in the cookie (to minimize cookie size)
94
117
  const diffSettings = await compareAndSaveSettingsDifferences(fullSettings, pageDefaultSettings);
95
- // Create a new cookie with the diff settings
118
+ // 10. Serialize the diff settings into a cookie string
96
119
  const newCookie = await settingsCookie.serialize(diffSettings);
120
+ // 11. Return the full settings as JSON, and set the new cookie in the response headers
97
121
  return json(fullSettings, {
98
122
  headers: {
99
123
  'Set-Cookie': newCookie,
@@ -101,6 +125,7 @@ const action = async ({ request, context, params, }) => {
101
125
  });
102
126
  }
103
127
  catch (error) {
128
+ // If anything fails, log the error and return a 500 error response
104
129
  console.error('Error in action:', error);
105
130
  return json({ error: 'Failed to update settings' }, { status: 500 });
106
131
  }
@@ -124,6 +149,12 @@ const loader = async ({ request, context, params, }) => {
124
149
  ? JSON.parse(JSON.stringify(result.data.pageSettings.settings))
125
150
  : null;
126
151
  let pageDefaultSettings = pageSettings?.uilayout || defaultSettings || {};
152
+ // TEMPORARY: Manually add hiddenMenuKeys to defaults until GraphQL schema is updated
153
+ pageDefaultSettings = {
154
+ ...pageDefaultSettings,
155
+ hiddenMenuKeys: [], // Array format for menu visibility
156
+ hiddenMenuCategories: [], // Array format for category visibility
157
+ };
127
158
  return json({
128
159
  settings: merge({}, pageDefaultSettings, config.LAYOUT_SETTINGS),
129
160
  });
@@ -1 +1 @@
1
- {"version":3,"file":"UpdateSettings.server.js","sources":["../../../src/components/UpdateSettings/UpdateSettings.server.ts"],"sourcesContent":[null],"names":[],"mappings":"sbAuDC;MACW,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;IACC,IAAO;QACA,OAAG,MAAA,YAAgB,CAAA,KAAA,CAAA;YACjB,KAAA,EAAA,uBAAgB;AAC5B,YAAA,OAAA,EAAA;;oBAwBC,cAAA,EAAA,kBAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"UpdateSettings.server.js","sources":["../../../src/components/UpdateSettings/UpdateSettings.server.ts"],"sourcesContent":[null],"names":[],"mappings":";AAsDC,oBAAW,GAAA,YAAA,CAAA,UAAA,EAAA;IACR,MAAQ,EAAA,EAAE,aAAY,EAAA;IACtB,QAAS,EAAA;AACZ,IA0CA,QAAA,EAAA,KAAA;AAED,IAAO,IAAA,EAAA,GAAA;IAKH,MAAO,EAAA,aAAU,GAAA,MAAA,CAAA,UAAA,GAAA,SAAA;;;AAGpB,eAAA,iBAAA,CAAA,YAAA,EAAA;AAkED,IAAO,IAAA;QAKI,aAAU,YAAA,CAAA,KAAA,CAAA;YACT,KAAE,EAAA,uBAAgB;YACjB,OAAA,EAAA;AACZ,gBAAA,OAAA,EAAA;;iBAgCC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@admin-layout/client",
3
- "version": "12.0.16-alpha.24",
3
+ "version": "12.0.16-alpha.25",
4
4
  "description": "Sample client for higher packages to depend on",
5
5
  "license": "ISC",
6
6
  "author": "CDMBase LLC",
@@ -23,7 +23,7 @@
23
23
  "watch": "yarn build:lib:watch"
24
24
  },
25
25
  "dependencies": {
26
- "@common-stack/client-core": "7.1.1-alpha.52",
26
+ "@common-stack/client-core": "7.1.1-alpha.63",
27
27
  "common": "12.0.16-alpha.24",
28
28
  "serialize-error": "^8.0.0"
29
29
  },
@@ -40,5 +40,5 @@
40
40
  "typescript": {
41
41
  "definition": "lib/index.d.ts"
42
42
  },
43
- "gitHead": "78ab2ad3ebc784c053388fa343e2fe7f4d9adb01"
43
+ "gitHead": "8b62bff1ab82f6131580a877203778f33c4aa8c4"
44
44
  }