@admin-layout/tailwind-design-pro 12.0.16-alpha.45 → 12.0.16-alpha.46
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/lib/components/Layout/BasicLayout/index.d.ts.map +1 -1
- package/lib/components/Layout/BasicLayout/index.js +14 -2
- package/lib/components/Layout/BasicLayout/index.js.map +1 -1
- package/lib/components/SettingDrawer/InvitationSettings.d.ts.map +1 -1
- package/lib/components/SettingDrawer/InvitationSettings.js +4 -2
- package/lib/components/SettingDrawer/InvitationSettings.js.map +1 -1
- package/lib/components/SettingDrawer/LayoutChange.d.ts.map +1 -1
- package/lib/components/SettingDrawer/LayoutChange.js +26 -14
- package/lib/components/SettingDrawer/LayoutChange.js.map +1 -1
- package/lib/components/SettingDrawer/NavigationsModes.d.ts.map +1 -1
- package/lib/components/SettingDrawer/NavigationsModes.js +22 -13
- package/lib/components/SettingDrawer/NavigationsModes.js.map +1 -1
- package/lib/components/SettingDrawer/RegionalSettings.d.ts.map +1 -1
- package/lib/components/SettingDrawer/RegionalSettings.js +78 -31
- package/lib/components/SettingDrawer/RegionalSettings.js.map +1 -1
- package/lib/components/SettingDrawer/SettingDrawer.d.ts.map +1 -1
- package/lib/components/SettingDrawer/SettingDrawer.js +51 -7
- package/lib/components/SettingDrawer/SettingDrawer.js.map +1 -1
- package/lib/components/SettingDrawer/types.d.ts +1 -0
- package/lib/components/SettingDrawer/types.d.ts.map +1 -1
- package/lib/components/UpdateSettingsResource/UpdateSettingsResource.server.d.ts.map +1 -1
- package/lib/components/UpdateSettingsResource/UpdateSettingsResource.server.js +1 -0
- package/lib/components/UpdateSettingsResource/UpdateSettingsResource.server.js.map +1 -1
- package/lib/config/env-config.d.ts +1 -0
- package/lib/config/env-config.d.ts.map +1 -1
- package/lib/config/env-config.js +3 -0
- package/lib/config/env-config.js.map +1 -1
- package/lib/machines/settingsMachine.d.ts.map +1 -1
- package/lib/machines/settingsMachine.js +65 -18
- package/lib/machines/settingsMachine.js.map +1 -1
- package/lib/machines/types.d.ts +8 -0
- package/lib/machines/types.d.ts.map +1 -1
- package/lib/utils/__tests__/configOverrides.test.d.ts +2 -0
- package/lib/utils/__tests__/configOverrides.test.d.ts.map +1 -0
- package/lib/utils/configOverrides.d.ts +213 -0
- package/lib/utils/configOverrides.d.ts.map +1 -0
- package/lib/utils/configOverrides.js +355 -0
- package/lib/utils/configOverrides.js.map +1 -0
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Layout/BasicLayout/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EACH,gBAAgB,EAIhB,iBAAiB,EAGpB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,KAA+C,MAAM,OAAO,CAAC;AAcpE,eAAO,MAAM,mBAAmB,GAAI;;;;CAAwD,sCAkC3F,CAAC;AAgCF,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAC9B,gBAAgB,GAAG,iBAAiB,GAAG;IAAE,WAAW,CAAC,EAAE,GAAG,CAAC;IAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Layout/BasicLayout/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EACH,gBAAgB,EAIhB,iBAAiB,EAGpB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,KAA+C,MAAM,OAAO,CAAC;AAcpE,eAAO,MAAM,mBAAmB,GAAI;;;;CAAwD,sCAkC3F,CAAC;AAgCF,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAC9B,gBAAgB,GAAG,iBAAiB,GAAG;IAAE,WAAW,CAAC,EAAE,GAAG,CAAC;IAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,CAmU3F,CAAC"}
|
|
@@ -120,6 +120,18 @@ const BasicLayout = props => {
|
|
|
120
120
|
const deviceType = isMobile ? 'mobile' : 'desktop';
|
|
121
121
|
const deviceSettings = routeSettings?.regions?.[deviceType] || {};
|
|
122
122
|
const layoutSettings = routeSettings?.layout?.[deviceType] || {};
|
|
123
|
+
// Helper function to get override value with fallback to old structure
|
|
124
|
+
const getOverrideValue = path => {
|
|
125
|
+
// Check new override format first
|
|
126
|
+
const routeDeviceKey = `[${currentRoute}][${deviceType}]`;
|
|
127
|
+
const override = settings?.uiSettings?.overrides?.[routeDeviceKey];
|
|
128
|
+
if (override) {
|
|
129
|
+
const value = path.split('.').reduce((obj, key) => obj?.[key], override);
|
|
130
|
+
if (value !== undefined) return value;
|
|
131
|
+
}
|
|
132
|
+
// Fallback to old structure
|
|
133
|
+
return path.split('.').reduce((obj, key) => obj?.[key], deviceSettings);
|
|
134
|
+
};
|
|
123
135
|
const backgroundSettings = deviceSettings?.background || {
|
|
124
136
|
type: 'color',
|
|
125
137
|
color: 'inherit',
|
|
@@ -293,12 +305,12 @@ const BasicLayout = props => {
|
|
|
293
305
|
setSearchOptionsShown(false);
|
|
294
306
|
}
|
|
295
307
|
}), jsx(Outlet, {})]
|
|
296
|
-
}),
|
|
308
|
+
}), getOverrideValue('footer.showFooter') && jsx("div", {
|
|
297
309
|
ref: refFooter,
|
|
298
310
|
className: footerFixed ? 'fixed bottom-0 w-full' : '',
|
|
299
311
|
children: jsx(FooterSlot, {
|
|
300
312
|
settings: settings,
|
|
301
|
-
active:
|
|
313
|
+
active: getOverrideValue('footer.showFooter')
|
|
302
314
|
})
|
|
303
315
|
})]
|
|
304
316
|
})]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/Layout/BasicLayout/index.tsx"],"sourcesContent":[null],"names":[],"mappings":"suCAyBO,MAAM,mBAAmB,GAAG,CAAC;AAChC,EAAA,WAAM;uBAES;AACX,EAAA;;AAEI,EAAA,MAAA,KAAA,GAAA,MAAM,EAAA;AACF,EAAA,SAAA,CAAA,MAAA;oBAAmB,CAAA,OAAO,IAAA,IAAA;;mBAG1B,GAAA,CAAA,IAAA;oBACA,IAAM,CAAA,EAAA;wBACN,EAAA;AAIA;;;AAGA,QAAA,IAAA,MAAA,CAAA,OAAU,GAAC,EAAA,EAAA;qBACP,CAAA,IAAA,CAAA;;AAEJ,QAAA,IAAA,MAAA,CAAA,OAAU,GAAC,EAAA,EAAA;AACP,UAAA,WAAA,CAAA,KAAA,CAAA;;AAER,QAAA,IAAA,MAAE,CAAA,WAAA,GAAA,MAAA,CAAA,OAAA,IAAA,QAAA,CAAA,IAAA,CAAA,YAAA,EAAA;AAEF,UAAA,gBAAO,EAAA;AACP,QAAA;AACI,MAAA,CAAA;AACJ,MAAA,MAAA,CAAC,gBAAC,CAAA,QAAA,EAAA,OAAA,CAAA;aACL,MAAA;QACF,MAAI,CAAA,mBAAA,CAAA,QAAA,EAAA,OAAA,CAAA;AACP,MAAA,CAAA;AACJ,IAAE;AAEF,EAAA,CAAA,EAAA;AAQI,EAAA,OAAA,KAAQ;AACR;AACA,MAAA,sBAAwB,GAAA,CAAA,SAAQ,EAAA,KAAA,KAAA;QAC5B;AACI,IAAA;AACA,GAAA,GAAA,KAAA;AACA,EAAA,MAAA,gBAAY,gBAAA,CAAA,SAAA,CAAA;qBACd,KAAA,KAAA,EAAA;IACN,OAAC;MACD,KAAI,EAAA,KAAA,CAAA,SAAkB,EAAA;AAClB,MAAA,EAAA,EAAA,EAAA;AACA,MAAA,QAAI,EAAA;;AAEI,EAAA;qBACK,EAAA;eACP,GAAA,eAAA,CAAA,SAAA,EAAA,aAAA,CAAA,KAAA,EAAA,aAAA,CAAA;QACN,OAAC,KAAA,KAAA,QAAA,EAAA;aACD;QACH,GAAA,aAAA;AACD,QAAA;AACJ,OAAE;AAEF,IAAA;IAGI,OAAA,CAAA,OAAA,KAAA,KAAA,QAAgC,EAAA,6DAAA,CAAA;;SAGhC,aAAA;;AAEO,MAAA,WAAU,GAAA,KAAW,IAAI;;QAEhC;AACA,IAAA,QACI,EAAA;MAmBJ,iBAAO,EAAc;;QAErB,iBAAO,GAAA;AACP,IAAA,GAAA,aAAe;AACf,IAAA,GAAA;AAEA,GAAA;QAEA,CAAA,QAAA,EAAA,WAAA,CAAA,GAAA,QAAA,CAAA,KAAA,CAAA;QACA,CAAA,SAAa,EAAE,YAAA,CAAA,GAAA,QAAA,CAAA,KAAA,CAAA;AACX,EAAA,MAAA,CAAA,WAAI,EAAA,cAAsB,CAAA,GAAA,QAAW,CAAA,KAAA,CAAA;;AAEjC,YAIA;gBACA;;;;;AAWI,IAAA,YAAA;AACJ,IAAA,eAAE;mBACL;AACL,IAAA;MAEA,iBAAA;AACA,EAAA,MAAA,CAAA,cAAkB,EAAG,iBAAU,CAAQ,GAAA,QAAQ,CAAA,KAAA,CAAA;AAC/C,EAAA,MAAA,CAAA,uBAAsB,CAAA,GAAU,QAAA,CAAA,KAAa,CAAE;QAE/C,CAAA,kBAAA,EAAA,qBAA+B,CAAA,GAAA,QAAA,CAAA,KAAA,CAAA;QAC/B;IACA;MACA,eAAM;
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/Layout/BasicLayout/index.tsx"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InvitationSettings.d.ts","sourceRoot":"","sources":["../../../src/components/SettingDrawer/InvitationSettings.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAG/C,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,KAAK,EAAE,oBAAoB,GAAG,GAAG,
|
|
1
|
+
{"version":3,"file":"InvitationSettings.d.ts","sourceRoot":"","sources":["../../../src/components/SettingDrawer/InvitationSettings.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAG/C,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,KAAK,EAAE,oBAAoB,GAAG,GAAG,2CAiE3E"}
|
|
@@ -12,8 +12,10 @@ import {jsxs,jsx}from'react/jsx-runtime';import {useTranslation}from'react-i18ne
|
|
|
12
12
|
} = useMediaQuery();
|
|
13
13
|
const currentRoute = location?.pathname || '/';
|
|
14
14
|
settings?.routeSettings?.[currentRoute] || settings?.routeSettings?.['/'] || settings;
|
|
15
|
-
//
|
|
16
|
-
|
|
15
|
+
// First check for override organization settings, then fallback to global
|
|
16
|
+
// The organization override is at the top level of uiSettings.overrides, not nested under bracket keys
|
|
17
|
+
const overrideOrganization = settings?.uiSettings?.overrides?.organization;
|
|
18
|
+
const invitations = overrideOrganization?.members?.invitations || settings?.organization?.members?.invitations || {};
|
|
17
19
|
const handleInvitationChange = (key, value) => {
|
|
18
20
|
if (!changeSetting) return;
|
|
19
21
|
const newInvitations = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InvitationSettings.js","sources":["../../../src/components/SettingDrawer/InvitationSettings.tsx"],"sourcesContent":[null],"names":[],"mappings":"yRAMc,SAAU,kBAAkB,CAAC,KAAiC,EAAA;QACxE;IACA,QAAQ;AACR,IAAA,aAAQ;AACR,IAAA;AACA,GAAA,GAAA;QACA;
|
|
1
|
+
{"version":3,"file":"InvitationSettings.js","sources":["../../../src/components/SettingDrawer/InvitationSettings.tsx"],"sourcesContent":[null],"names":[],"mappings":"yRAMc,SAAU,kBAAkB,CAAC,KAAiC,EAAA;QACxE;IACA,QAAQ;AACR,IAAA,aAAQ;AACR,IAAA;AACA,GAAA,GAAA;QACA;IAEA;MACA,cAAA,CAAA,UAAA,CAAA;QACA;AACA,IAAA;AAGA,GAAA,GAAA;AACI,EAAA,MAAA,YAAK,GAAA,QAAa,EAAA,QAAA,IAAA,GAAA;EAAS,QAAA,EAAA,aAAA,GAAA,YAAA,CAAA,IAAA,QAAA,EAAA,aAAA,GAAA,GAAA,CAAA,IAAA;AAEvB;;4BAEF,GAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,YAAA;AAEF,EAAA,MAAA,WAAA,GAAc,oBAAA,EAAA,OAAA,EAAA,WAAoC,IAAA,QAAgB,EAAA,YAAA,EAAA,OAAA,EAAA,WAAA,IAAA,EAAA;AACtE,EAAA,MAAE,sBAAA,GAAA,CAAA,GAAA,EAAA,KAAA,KAAA;AAEF,IAAA,IAAA,CAAA,aAAkB,EAAE;IAEpB,MAAA,cACI,GAAA;AAsCR,MAAC,GAAA,WAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LayoutChange.d.ts","sourceRoot":"","sources":["../../../src/components/SettingDrawer/LayoutChange.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"LayoutChange.d.ts","sourceRoot":"","sources":["../../../src/components/SettingDrawer/LayoutChange.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAI/C,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,KAAK,EAAE,oBAAoB,GAAG,GAAG,2CA0HrE"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {jsxs,jsx,Fragment}from'react/jsx-runtime';import {useTranslation}from'react-i18next';import {Switch}from'./Switch/index.js';import'
|
|
1
|
+
import {jsxs,jsx,Fragment}from'react/jsx-runtime';import {useMemo}from'react';import {useTranslation}from'react-i18next';import {Switch}from'./Switch/index.js';import'@react-icons/all-files/fa/FaMoon.js';import'@react-icons/all-files/fa/FaSun.js';import {useMediaQuery}from'../../hooks/useMediaQuery.js';import {getConfigValue,setConfigOverride}from'../../utils/configOverrides.js';function LayoutChange(props) {
|
|
2
2
|
const {
|
|
3
3
|
settings,
|
|
4
4
|
changeSetting,
|
|
@@ -14,15 +14,27 @@ import {jsxs,jsx,Fragment}from'react/jsx-runtime';import {useTranslation}from're
|
|
|
14
14
|
const {
|
|
15
15
|
navTheme
|
|
16
16
|
} = settings || {};
|
|
17
|
-
const routeSettings = settings?.routeSettings?.[currentRoute] || settings?.routeSettings?.['/'] || settings;
|
|
18
17
|
const deviceType = isMobile ? 'mobile' : 'desktop';
|
|
19
|
-
|
|
18
|
+
// Create context for override resolution
|
|
19
|
+
const context = {
|
|
20
|
+
route: currentRoute,
|
|
21
|
+
device: deviceType
|
|
22
|
+
};
|
|
23
|
+
// Get layout values using override system
|
|
24
|
+
const layoutValues = useMemo(() => ({
|
|
25
|
+
fixedHeader: getConfigValue(settings, 'layout.fixedHeader', context, true),
|
|
26
|
+
fixedSidebar: getConfigValue(settings, 'layout.fixedSidebar', context, true),
|
|
27
|
+
splitMenus: getConfigValue(settings, 'layout.splitMenus', context, false),
|
|
28
|
+
upperMenuDividerName: getConfigValue(settings, 'layout.upperMenuDividerName', context, 'Navigation'),
|
|
29
|
+
middleMenuDividerName: getConfigValue(settings, 'layout.middleMenuDividerName', context, 'Dashboard'),
|
|
30
|
+
lowerMenuDividerName: getConfigValue(settings, 'layout.lowerMenuDividerName', context, 'Admin')
|
|
31
|
+
}), [settings, currentRoute, deviceType]);
|
|
20
32
|
const handleLayoutChange = (key, value) => {
|
|
21
33
|
if (!changeSetting) return;
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
});
|
|
34
|
+
// Use setConfigOverride to get the properly formatted key
|
|
35
|
+
const override = setConfigOverride(`layout.${key}`, value, context);
|
|
36
|
+
// Send the flat key with override identifier to the backend
|
|
37
|
+
changeSetting(`${override.contextKey}.${override.path}`, value);
|
|
26
38
|
};
|
|
27
39
|
const textColor = {
|
|
28
40
|
color: navTheme === 'dark' ? '#ffff' : 'black'
|
|
@@ -37,7 +49,7 @@ import {jsxs,jsx,Fragment}from'react/jsx-runtime';import {useTranslation}from're
|
|
|
37
49
|
}), jsx("div", {
|
|
38
50
|
className: "flex-grow"
|
|
39
51
|
}), jsx(Switch, {
|
|
40
|
-
value:
|
|
52
|
+
value: layoutValues.fixedHeader,
|
|
41
53
|
onChange: checked => handleLayoutChange('fixedHeader', checked)
|
|
42
54
|
})]
|
|
43
55
|
}), jsxs("div", {
|
|
@@ -49,7 +61,7 @@ import {jsxs,jsx,Fragment}from'react/jsx-runtime';import {useTranslation}from're
|
|
|
49
61
|
}), jsx("div", {
|
|
50
62
|
className: "flex-grow"
|
|
51
63
|
}), jsx(Switch, {
|
|
52
|
-
value:
|
|
64
|
+
value: layoutValues.fixedSidebar,
|
|
53
65
|
onChange: checked => handleLayoutChange('fixedSidebar', checked)
|
|
54
66
|
})]
|
|
55
67
|
}), jsxs("div", {
|
|
@@ -61,10 +73,10 @@ import {jsxs,jsx,Fragment}from'react/jsx-runtime';import {useTranslation}from're
|
|
|
61
73
|
}), jsx("div", {
|
|
62
74
|
className: "flex-grow"
|
|
63
75
|
}), jsx(Switch, {
|
|
64
|
-
value:
|
|
76
|
+
value: layoutValues.splitMenus,
|
|
65
77
|
onChange: checked => handleLayoutChange('splitMenus', checked)
|
|
66
78
|
})]
|
|
67
|
-
}),
|
|
79
|
+
}), layoutValues.splitMenus && jsxs(Fragment, {
|
|
68
80
|
children: [jsx("div", {
|
|
69
81
|
className: "mt-6 mb-2",
|
|
70
82
|
children: jsx("p", {
|
|
@@ -83,7 +95,7 @@ import {jsxs,jsx,Fragment}from'react/jsx-runtime';import {useTranslation}from're
|
|
|
83
95
|
}), jsx("input", {
|
|
84
96
|
type: "text",
|
|
85
97
|
className: "px-3 py-2 border border-gray-300 rounded-md text-sm focus:outline-none focus:ring-2 focus:ring-blue-500 dark:bg-gray-700 dark:border-gray-600 dark:text-white",
|
|
86
|
-
value:
|
|
98
|
+
value: layoutValues.upperMenuDividerName,
|
|
87
99
|
onChange: e => {
|
|
88
100
|
handleLayoutChange('upperMenuDividerName', e.target.value);
|
|
89
101
|
}
|
|
@@ -97,7 +109,7 @@ import {jsxs,jsx,Fragment}from'react/jsx-runtime';import {useTranslation}from're
|
|
|
97
109
|
}), jsx("input", {
|
|
98
110
|
type: "text",
|
|
99
111
|
className: "px-3 py-2 border border-gray-300 rounded-md text-sm focus:outline-none focus:ring-2 focus:ring-blue-500 dark:bg-gray-700 dark:border-gray-600 dark:text-white",
|
|
100
|
-
value:
|
|
112
|
+
value: layoutValues.middleMenuDividerName,
|
|
101
113
|
onChange: e => {
|
|
102
114
|
handleLayoutChange('middleMenuDividerName', e.target.value);
|
|
103
115
|
}
|
|
@@ -111,7 +123,7 @@ import {jsxs,jsx,Fragment}from'react/jsx-runtime';import {useTranslation}from're
|
|
|
111
123
|
}), jsx("input", {
|
|
112
124
|
type: "text",
|
|
113
125
|
className: "px-3 py-2 border border-gray-300 rounded-md text-sm focus:outline-none focus:ring-2 focus:ring-blue-500 dark:bg-gray-700 dark:border-gray-600 dark:text-white",
|
|
114
|
-
value:
|
|
126
|
+
value: layoutValues.lowerMenuDividerName,
|
|
115
127
|
onChange: e => {
|
|
116
128
|
handleLayoutChange('lowerMenuDividerName', e.target.value);
|
|
117
129
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LayoutChange.js","sources":["../../../src/components/SettingDrawer/LayoutChange.tsx"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"LayoutChange.js","sources":["../../../src/components/SettingDrawer/LayoutChange.tsx"],"sourcesContent":[null],"names":[],"mappings":"8XAQc,SAAU,YAAY,CAAC,KAAiC,EAAA;QAClE;IACA,QAAQ;AACR,IAAA,aAAQ;AACR,IAAA;AACA,GAAA,GAAA;AACA,EAAA,MAAA;IAEA;MACA,cAAgB,CAAA,UAAS,CAAA;QAEzB;AACA,IAAA;mBAEmB,EAAE;QACb,YAAY,GAAE,QAAA,EAAA,QAAe,IAAQ;QACrC;;cAEA,IAAA,EAAA;QACA,UAAA,GAAA,QAAoB,GAAE,QAAA,GAAA,SAAe;;AAK7C,EAAA,MAAA;AACI,IAAA,KAAA,EAAA,YAAK;YAAe;;AAGpB;QAEA,YAAA,GAAA,OAAA,CAAA,OAAA;AACA,IAAA,WAAA,EAAA,cAAiB,CAAA,QAAS,EAAA,oBAA2B,EAAE,OAAQ,EAAC,IAAA,CAAA;AACpE,IAAA,YAAE,EAAA,cAAA,CAAA,QAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,IAAA,CAAA;AAEF,IAAA,0BAAyB,CAAE,QAAQ,EAAA,mBAAqB,EAAE,OAAC,OAAU,CAAA;IAErE,oBACI,EAAA,cACI,CAAA,QAAA,EAAA,sCAAuC,EAAA,YACnC,CAAA;kDAgDoB,EAAA,uCAA6C,EAAA,WAAc,CAAA;AAC/D,IAAA,oBAAA,EAAA,cAAA,CAAC,QAEH,0CACwB,OAAA;;AAUtB,EAAA,MAAA,kBAAA,GAAA,CAAA,GAAA,EAAA,KAAA,KACF;;AAYE;AAQhC,IAAC,MAAA,QAAA,GAAA,iBAAA,CAAA,CAAA,OAAA,EAAA,GAAA,CAAA,CAAA,EAAA,KAAA,EAAA,OAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NavigationsModes.d.ts","sourceRoot":"","sources":["../../../src/components/SettingDrawer/NavigationsModes.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"NavigationsModes.d.ts","sourceRoot":"","sources":["../../../src/components/SettingDrawer/NavigationsModes.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAgG/C,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,oBAAoB,2CAyFlG"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {jsxs,jsx}from'react/jsx-runtime';import'react';import'@react-icons/all-files/fa/FaMoon.js';import'@react-icons/all-files/fa/FaSun.js';import {useMediaQuery}from'../../hooks/useMediaQuery.js';const navigationModes = [{
|
|
1
|
+
import {jsxs,jsx}from'react/jsx-runtime';import {useMemo}from'react';import'@react-icons/all-files/fa/FaMoon.js';import'@react-icons/all-files/fa/FaSun.js';import {useMediaQuery}from'../../hooks/useMediaQuery.js';import {getConfigValue,setConfigOverride}from'../../utils/configOverrides.js';const navigationModes = [{
|
|
2
2
|
key: 'sidebar',
|
|
3
3
|
title: 'Sidebar',
|
|
4
4
|
svg: jsxs("svg", {
|
|
@@ -312,9 +312,17 @@ function NavigationModes({
|
|
|
312
312
|
isMobile
|
|
313
313
|
} = useMediaQuery();
|
|
314
314
|
const currentRoute = location?.pathname || '/';
|
|
315
|
-
const routeSettings = settings?.routeSettings?.[currentRoute] || settings?.routeSettings?.['/'] || settings;
|
|
316
315
|
const deviceType = isMobile ? 'mobile' : 'desktop';
|
|
317
|
-
|
|
316
|
+
// Create context for override resolution
|
|
317
|
+
const context = {
|
|
318
|
+
route: currentRoute,
|
|
319
|
+
device: deviceType
|
|
320
|
+
};
|
|
321
|
+
// Get navigation values using override system
|
|
322
|
+
const navigationValues = useMemo(() => ({
|
|
323
|
+
navigationMode: getConfigValue(settings, 'layout.navigationMode', context, 'mixed'),
|
|
324
|
+
sideMenuType: getConfigValue(settings, 'layout.sideMenuType', context, 'expanded')
|
|
325
|
+
}), [settings, currentRoute, deviceType]);
|
|
318
326
|
return jsxs("div", {
|
|
319
327
|
className: "space-y-8",
|
|
320
328
|
children: [jsxs("section", {
|
|
@@ -325,13 +333,14 @@ function NavigationModes({
|
|
|
325
333
|
className: "flex flex-row gap-4",
|
|
326
334
|
children: navigationModes.map((mode, index) => jsx("div", {
|
|
327
335
|
className: "relative cursor-pointer hover:opacity-80 transition-opacity shadow-sm dark:shadow-md rounded overflow-hidden",
|
|
328
|
-
onClick: () =>
|
|
329
|
-
|
|
330
|
-
navigationMode
|
|
331
|
-
|
|
336
|
+
onClick: () => {
|
|
337
|
+
// Use setConfigOverride to get the properly formatted key
|
|
338
|
+
const override = setConfigOverride('layout.navigationMode', mode.key, context);
|
|
339
|
+
changeSetting(`${override.contextKey}.${override.path}`, mode.key);
|
|
340
|
+
},
|
|
332
341
|
children: jsxs("div", {
|
|
333
342
|
className: "relative",
|
|
334
|
-
children: [mode.svg,
|
|
343
|
+
children: [mode.svg, navigationValues.navigationMode === mode.key && jsx("svg", {
|
|
335
344
|
className: "absolute top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2 w-6 h-6 text-blue-500 pointer-events-none",
|
|
336
345
|
viewBox: "0 0 24 24",
|
|
337
346
|
fill: "currentColor",
|
|
@@ -351,15 +360,15 @@ function NavigationModes({
|
|
|
351
360
|
children: menuTypes.map((type, index) => jsx("div", {
|
|
352
361
|
className: "relative cursor-pointer hover:opacity-80 transition-opacity shadow-sm dark:shadow-md rounded overflow-hidden",
|
|
353
362
|
onClick: () => {
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
363
|
+
// Use setConfigOverride to get the properly formatted key
|
|
364
|
+
const override = setConfigOverride('layout.sideMenuType', type.key, context);
|
|
365
|
+
changeSetting(`${override.contextKey}.${override.path}`, type.key);
|
|
366
|
+
// Also update the global sideMenuType for compatibility
|
|
358
367
|
changeSetting('sideMenuType', type.key);
|
|
359
368
|
},
|
|
360
369
|
children: jsxs("div", {
|
|
361
370
|
className: "relative",
|
|
362
|
-
children: [type.svg,
|
|
371
|
+
children: [type.svg, navigationValues.sideMenuType === type.key && jsx("svg", {
|
|
363
372
|
className: "absolute top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2 w-6 h-6 text-blue-500 pointer-events-none",
|
|
364
373
|
viewBox: "0 0 24 24",
|
|
365
374
|
fill: "currentColor",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NavigationsModes.js","sources":["../../../src/components/SettingDrawer/NavigationsModes.tsx"],"sourcesContent":[null],"names":["_jsxs","_jsx"],"mappings":"
|
|
1
|
+
{"version":3,"file":"NavigationsModes.js","sources":["../../../src/components/SettingDrawer/NavigationsModes.tsx"],"sourcesContent":[null],"names":["_jsxs","_jsx"],"mappings":"mSAIA,MAAM,eAAe,GAAG,CAAA;AACpB,EAAA,GAAA,EAAA,SAAA;AACI,EAAA,KAAA,EAAA,SAAK;AACL,EAAA,GAAA,EAAAA,IAAA,CAAK,KAAE,EAAA;AACP,IAAA,KAAA,EAAG,IACC;AAQP,IAAA,MAAA,EAAA,IAAA;AACD,IAAA,OAAA,EAAA,WAAA;AACI,IAAA,KAAA,EAAG,4BAAU;AACb,IAAA,QAAA,GAAOC,GAAA,CAAA,MAAS,EAAA;AAChB,MAAA,KAAG,EAAE,IACD;AAQP,MAAA,MAAA,EAAA,IAAA;AACD,MAAA,EAAA,EAAA,GAAA;AACI,MAAA,IAAA;AACA,KAAA,CAAA,EAAAA,GAAA,CAAK,MAAE,EAAA;SACP,GAAG;AAaN,MAAA,CAAA,EAAA,GAAA;MACH,KAAA,EAAA,IAAA;AAEF,MAAM,YAAY;AACd,MAAA,IAAA,EAAA;AACI,KAAA,CAAA,EAAAA,IAAK,MAAA,EAAA;AACL,MAAA,CAAA,EAAA,GAAA;SACA,GAAG;AAQN,MAAA,KAAA,EAAA,IAAA;AACD,MAAA,MAAA,EAAA,GAAA;AACI,MAAA,EAAA,EAAA,GAAK;AACL,MAAA,IAAA,EAAA;QACAA,GAAG,CAAE,MACD,EAAA;AAOP,MAAA,CAAA,EAAA,GAAA;AACD,MAAA,CAAA,EAAA,IAAA;AACI,MAAA,KAAG,EAAE,IAAA;AACL,MAAA,MAAA,KAAO;AACP,MAAA,EAAA,EAAA,GAAK;AAaR,MAAA,IAAA,EAAA,SAAA;MACH,OAAA,EAAA;AAEF,KAAA,CAAA,EAAOA,GAAE,CAAA,MAAS,EAAA;AAClB,MAAA,CAAO,EAAE,GAAA;AAET,MAAM,CAAC,EAAA,IAAA;AACH,MAAA,OAAQ,IAAA;AACR,MAAA;AACA,MAAA,EAAA,EAAM,GAAA;MAEN,IAAA,EAAA,SAAA;MACA,OAAM,EAAA;KAEN,CAAA;AACA,GAAA;;eAGQ;OACF,EACD,SAAQ;KAGb,EAAAD,IACI;;AAawB,IAAA,MAAA,EAAA,IAAA;AACA,IAAA,OAAA,EAAA,WAAA;uCACH;;AA+BG,MAAA,KAAA,EAAA,IAAA;AACA,MAAA,MAAA,EAAA,IAAA;;AAGA,MAAA,IAAA,EAAA;;AAqBhC,MAAC,CAAA,EAAA,GAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RegionalSettings.d.ts","sourceRoot":"","sources":["../../../src/components/SettingDrawer/RegionalSettings.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"RegionalSettings.d.ts","sourceRoot":"","sources":["../../../src/components/SettingDrawer/RegionalSettings.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAMjD,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,KAAK,EAAE,sBAAsB,2CAorBrE"}
|
|
@@ -1,19 +1,17 @@
|
|
|
1
|
-
import {jsxs,jsx,Fragment}from'react/jsx-runtime';import*as React from'react';import {useTranslation}from'react-i18next';import {Switch}from'./Switch/index.js';import {SearchBarBehavior}from'../../machines/types.js';import {config}from'../../config/env-config.js';import'@react-icons/all-files/fa/FaMoon.js';import'@react-icons/all-files/fa/FaSun.js';import {useMediaQuery}from'../../hooks/useMediaQuery.js';function RegionalSettings(props) {
|
|
1
|
+
import {jsxs,jsx,Fragment}from'react/jsx-runtime';import*as React from'react';import {useTranslation}from'react-i18next';import {Switch}from'./Switch/index.js';import {SearchBarBehavior}from'../../machines/types.js';import {config}from'../../config/env-config.js';import'@react-icons/all-files/fa/FaMoon.js';import'@react-icons/all-files/fa/FaSun.js';import {useMediaQuery}from'../../hooks/useMediaQuery.js';import {getConfigValue,getNestedValue,setConfigOverride}from'../../utils/configOverrides.js';function RegionalSettings(props) {
|
|
2
2
|
const {
|
|
3
3
|
t
|
|
4
4
|
} = useTranslation('settings');
|
|
5
5
|
const {
|
|
6
6
|
settings,
|
|
7
7
|
changeSetting,
|
|
8
|
-
location
|
|
8
|
+
location,
|
|
9
|
+
applyToAllRoutes = false
|
|
9
10
|
} = props;
|
|
10
11
|
const {
|
|
11
12
|
navTheme
|
|
12
13
|
} = settings || {};
|
|
13
14
|
const currentRoute = location?.pathname || '/';
|
|
14
|
-
const {
|
|
15
|
-
regions = {}
|
|
16
|
-
} = settings?.routeSettings?.[currentRoute] || {};
|
|
17
15
|
const [isHeaderExpanded, setIsHeaderExpanded] = React.useState(false);
|
|
18
16
|
const [isBackgroundExpanded, setIsBackgroundExpanded] = React.useState(true);
|
|
19
17
|
const [activeBackgroundTab, setActiveBackgroundTab] = React.useState('desktop');
|
|
@@ -23,36 +21,86 @@ import {jsxs,jsx,Fragment}from'react/jsx-runtime';import*as React from'react';im
|
|
|
23
21
|
} = useMediaQuery();
|
|
24
22
|
const scrollThresholdConfig = JSON.parse(config.SCROLL_THRESHOLD);
|
|
25
23
|
const deviceType = isMobile ? 'mobile' : 'desktop';
|
|
26
|
-
|
|
24
|
+
// Helper to get config value with overrides applied
|
|
25
|
+
const getConfigValue$1 = (configKey, defaultValue, useActiveTab = true) => {
|
|
26
|
+
const device = useActiveTab ? activeBackgroundTab || activeHeaderTab : deviceType;
|
|
27
|
+
// If applyToAllRoutes is true, treat as regular settings (no overrides, no device context)
|
|
28
|
+
if (applyToAllRoutes) {
|
|
29
|
+
return getConfigValue(settings, configKey, {}, defaultValue);
|
|
30
|
+
}
|
|
31
|
+
// Otherwise, check for route-specific overrides
|
|
32
|
+
if (settings?.uiSettings?.overrides) {
|
|
33
|
+
const contextKey = `[${currentRoute}][${device}]`;
|
|
34
|
+
const overrideSettings = settings.uiSettings.overrides[contextKey];
|
|
35
|
+
if (overrideSettings) {
|
|
36
|
+
// Handle the uilayout wrapper in override structure
|
|
37
|
+
const overrideData = overrideSettings.uilayout || overrideSettings;
|
|
38
|
+
const value = getNestedValue(overrideData, configKey);
|
|
39
|
+
if (value !== undefined) {
|
|
40
|
+
return value;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
// Fallback to regular settings
|
|
45
|
+
return getConfigValue(settings, configKey, {
|
|
46
|
+
route: currentRoute,
|
|
47
|
+
device
|
|
48
|
+
}, defaultValue);
|
|
49
|
+
};
|
|
50
|
+
// Helper to set config value with override
|
|
51
|
+
const setConfigValue = (configKey, value, useActiveTab = true) => {
|
|
27
52
|
if (!changeSetting) return;
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
53
|
+
const device = useActiveTab ? activeBackgroundTab || activeHeaderTab : deviceType;
|
|
54
|
+
// If applyToAllRoutes is true, save as regular setting (no overrides, no device context)
|
|
55
|
+
if (applyToAllRoutes) {
|
|
56
|
+
changeSetting(`uilayout.${configKey}`, value);
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
// Otherwise, create route-specific override
|
|
60
|
+
const override = setConfigOverride(configKey, value, {
|
|
61
|
+
route: currentRoute,
|
|
62
|
+
device
|
|
31
63
|
});
|
|
64
|
+
// Pass the flat path and value to changeSetting
|
|
65
|
+
changeSetting(`${override.contextKey}.${override.path}`, value);
|
|
66
|
+
};
|
|
67
|
+
const handleRegionChange = (key, value) => {
|
|
68
|
+
setConfigValue(`regions.header.${key}`, value, false);
|
|
32
69
|
};
|
|
33
70
|
const handleRegionFooterChange = (key, value) => {
|
|
34
|
-
|
|
35
|
-
changeSetting(`routeSettings.${currentRoute}.regions.${deviceType}.footer`, {
|
|
36
|
-
...regions[deviceType]?.footer,
|
|
37
|
-
[key]: value
|
|
38
|
-
});
|
|
71
|
+
setConfigValue(`regions.footer.${key}`, value, false);
|
|
39
72
|
};
|
|
40
73
|
const handleBackgroundChange = (property, value) => {
|
|
41
|
-
|
|
42
|
-
changeSetting(`routeSettings.${currentRoute}.regions.${deviceType}.background`, {
|
|
43
|
-
...regions[deviceType].background,
|
|
44
|
-
[property]: value
|
|
45
|
-
});
|
|
74
|
+
setConfigValue(`regions.background.${property}`, value, true);
|
|
46
75
|
};
|
|
47
76
|
const handleHeaderChange = (element, value) => {
|
|
48
|
-
|
|
49
|
-
changeSetting(`routeSettings.${currentRoute}.regions.${deviceType}.header`, {
|
|
50
|
-
...regions[deviceType]?.header,
|
|
51
|
-
[element]: value
|
|
52
|
-
});
|
|
77
|
+
setConfigValue(`regions.header.${element}`, value, true);
|
|
53
78
|
};
|
|
54
|
-
|
|
55
|
-
const
|
|
79
|
+
// Get current values using the override-aware getter with active header tab
|
|
80
|
+
const header = React.useMemo(() => ({
|
|
81
|
+
showLogo: getConfigValue$1('regions.header.showLogo', true, true),
|
|
82
|
+
showSearchSlot: getConfigValue$1('regions.header.showSearchSlot', true, true),
|
|
83
|
+
showRightContent: getConfigValue$1('regions.header.showRightContent', true, true),
|
|
84
|
+
showMenuToggle: getConfigValue$1('regions.header.showMenuToggle', true, true),
|
|
85
|
+
showBackButton: getConfigValue$1('regions.header.showBackButton', true, true),
|
|
86
|
+
showPageTitle: getConfigValue$1('regions.header.showPageTitle', true, true),
|
|
87
|
+
showActionButtons: getConfigValue$1('regions.header.showActionButtons', true, true),
|
|
88
|
+
fixedHeader: getConfigValue$1('regions.header.fixedHeader', true, true),
|
|
89
|
+
showHeader: getConfigValue$1('regions.header.showHeader', true, true),
|
|
90
|
+
showMenu: getConfigValue$1('regions.header.showMenu', true, true),
|
|
91
|
+
menuHeaderRender: getConfigValue$1('regions.header.menuHeaderRender', true, true),
|
|
92
|
+
searchBarRender: getConfigValue$1('regions.header.searchBarRender', true, true),
|
|
93
|
+
searchBarBehavior: getConfigValue$1('regions.header.searchBarBehavior', SearchBarBehavior.PERMANENT, true),
|
|
94
|
+
searchBarOverlay: getConfigValue$1('regions.header.searchBarOverlay', true, true),
|
|
95
|
+
scrollThreshold: getConfigValue$1('regions.header.scrollThreshold', scrollThresholdConfig.DEFAULT, true)
|
|
96
|
+
}), [activeHeaderTab, currentRoute, settings]);
|
|
97
|
+
const background = React.useMemo(() => ({
|
|
98
|
+
type: getConfigValue$1('regions.background.type', 'color', true),
|
|
99
|
+
color: getConfigValue$1('regions.background.color', 'inherit', true),
|
|
100
|
+
image: getConfigValue$1('regions.background.image', '', true),
|
|
101
|
+
video: getConfigValue$1('regions.background.video', '', true),
|
|
102
|
+
videoThumbnail: getConfigValue$1('regions.background.videoThumbnail', '', true)
|
|
103
|
+
}), [activeBackgroundTab, currentRoute, settings]);
|
|
56
104
|
// Helper function to render background settings based on current active tab
|
|
57
105
|
const renderBackgroundSettings = () => {
|
|
58
106
|
return jsxs(Fragment, {
|
|
@@ -263,7 +311,6 @@ import {jsxs,jsx,Fragment}from'react/jsx-runtime';import*as React from'react';im
|
|
|
263
311
|
};
|
|
264
312
|
// Helper function to render header settings based on current active tab
|
|
265
313
|
const renderHeaderSettings = () => {
|
|
266
|
-
const isDesktop = activeHeaderTab === 'desktop';
|
|
267
314
|
return jsxs("div", {
|
|
268
315
|
className: "space-y-2",
|
|
269
316
|
children: [jsxs("div", {
|
|
@@ -276,7 +323,7 @@ import {jsxs,jsx,Fragment}from'react/jsx-runtime';import*as React from'react';im
|
|
|
276
323
|
}), jsx("div", {
|
|
277
324
|
className: "flex-grow"
|
|
278
325
|
}), jsx(Switch, {
|
|
279
|
-
value:
|
|
326
|
+
value: header?.showHeader ?? true,
|
|
280
327
|
onChange: checked => handleHeaderChange('showHeader', checked)
|
|
281
328
|
})]
|
|
282
329
|
}), jsxs("div", {
|
|
@@ -706,7 +753,7 @@ import {jsxs,jsx,Fragment}from'react/jsx-runtime';import*as React from'react';im
|
|
|
706
753
|
}), jsx("div", {
|
|
707
754
|
className: "flex-grow"
|
|
708
755
|
}), jsx(Switch, {
|
|
709
|
-
value: regions
|
|
756
|
+
value: getConfigValue$1('regions.footer.showFooter', true),
|
|
710
757
|
onChange: checked => handleRegionFooterChange('showFooter', checked)
|
|
711
758
|
})]
|
|
712
759
|
}), jsxs("div", {
|
|
@@ -719,7 +766,7 @@ import {jsxs,jsx,Fragment}from'react/jsx-runtime';import*as React from'react';im
|
|
|
719
766
|
}), jsx("div", {
|
|
720
767
|
className: "flex-grow"
|
|
721
768
|
}), jsx(Switch, {
|
|
722
|
-
value: regions
|
|
769
|
+
value: getConfigValue$1('regions.header.showMenu', true),
|
|
723
770
|
onChange: checked => handleRegionChange('showMenu', checked)
|
|
724
771
|
})]
|
|
725
772
|
}), jsxs("div", {
|
|
@@ -732,7 +779,7 @@ import {jsxs,jsx,Fragment}from'react/jsx-runtime';import*as React from'react';im
|
|
|
732
779
|
}), jsx("div", {
|
|
733
780
|
className: "flex-grow"
|
|
734
781
|
}), jsx(Switch, {
|
|
735
|
-
value: regions
|
|
782
|
+
value: getConfigValue$1('regions.header.menuHeaderRender', true),
|
|
736
783
|
onChange: checked => handleRegionChange('menuHeaderRender', checked)
|
|
737
784
|
})]
|
|
738
785
|
})]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RegionalSettings.js","sources":["../../../src/components/SettingDrawer/RegionalSettings.tsx"],"sourcesContent":[null],"names":["
|
|
1
|
+
{"version":3,"file":"RegionalSettings.js","sources":["../../../src/components/SettingDrawer/RegionalSettings.tsx"],"sourcesContent":[null],"names":["getConfigValueUtil","getConfigValue","_jsxs","_jsx"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SettingDrawer.d.ts","sourceRoot":"","sources":["../../../src/components/SettingDrawer/SettingDrawer.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"SettingDrawer.d.ts","sourceRoot":"","sources":["../../../src/components/SettingDrawer/SettingDrawer.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAgB/B,OAAO,EAAsB,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAuTjE,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,GAAG,GAAG,CA4Z5D,CAAC"}
|
|
@@ -362,18 +362,34 @@ const SettingDrawer = props => {
|
|
|
362
362
|
const handleSaveSettings = async () => {
|
|
363
363
|
if (!isBrowser()) return;
|
|
364
364
|
try {
|
|
365
|
-
//
|
|
366
|
-
const
|
|
365
|
+
// Get overrides from uiSettings.overrides (already in bracket pattern format)
|
|
366
|
+
const overrideSettings = settingState.uiSettings?.overrides || {};
|
|
367
|
+
// Get regular settings from changedSettings (filter out route paths)
|
|
368
|
+
const regularSettings = {};
|
|
369
|
+
Object.keys(settingState.changedSettings || {}).forEach(key => {
|
|
370
|
+
// Only include non-route settings (don't include keys that start with '/')
|
|
371
|
+
if (!key.startsWith('/')) {
|
|
372
|
+
regularSettings[key] = settingState.changedSettings[key];
|
|
373
|
+
}
|
|
374
|
+
});
|
|
375
|
+
// DEBUG: Log what we're processing
|
|
376
|
+
console.log('DEBUG: regularSettings:', Object.keys(regularSettings));
|
|
377
|
+
console.log('DEBUG: overrideSettings:', Object.keys(overrideSettings));
|
|
367
378
|
// If there are no changes, don't save
|
|
368
|
-
if (Object.keys(
|
|
379
|
+
if (Object.keys(regularSettings).length === 0 && Object.keys(overrideSettings).length === 0) {
|
|
369
380
|
console.log('No changes to save');
|
|
370
381
|
return;
|
|
371
382
|
}
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
383
|
+
// Prepare mutation variables - put bracket pattern keys directly in settings
|
|
384
|
+
const variables = {
|
|
385
|
+
editingUri: resource,
|
|
386
|
+
settings: {
|
|
387
|
+
...regularSettings,
|
|
388
|
+
...overrideSettings // Bracket pattern keys like '[/dashboard][mobile]'
|
|
376
389
|
}
|
|
390
|
+
};
|
|
391
|
+
const response = await writeSettingsMutation({
|
|
392
|
+
variables
|
|
377
393
|
});
|
|
378
394
|
if (response.data) {
|
|
379
395
|
console.log('Settings saved successfully');
|
|
@@ -508,6 +524,33 @@ const SettingDrawer = props => {
|
|
|
508
524
|
location: location
|
|
509
525
|
})
|
|
510
526
|
})]
|
|
527
|
+
}), jsxs("div", {
|
|
528
|
+
className: "mt-8 pb-8 border-b border-black dark:border-[#2a2b2a]",
|
|
529
|
+
children: [jsx("p", {
|
|
530
|
+
className: "mb-4 text-black dark:text-white font-medium",
|
|
531
|
+
children: "Route Settings"
|
|
532
|
+
}), jsxs("div", {
|
|
533
|
+
className: "flex items-center justify-between",
|
|
534
|
+
children: [jsxs("div", {
|
|
535
|
+
children: [jsx("p", {
|
|
536
|
+
className: "text-sm text-black dark:text-white font-medium",
|
|
537
|
+
children: "Apply to All Routes"
|
|
538
|
+
}), jsx("p", {
|
|
539
|
+
className: "text-xs text-gray-600 dark:text-gray-400",
|
|
540
|
+
children: "When enabled, route-specific settings will apply to all routes instead of just the current route"
|
|
541
|
+
})]
|
|
542
|
+
}), jsxs("label", {
|
|
543
|
+
className: "relative inline-flex items-center cursor-pointer",
|
|
544
|
+
children: [jsx("input", {
|
|
545
|
+
type: "checkbox",
|
|
546
|
+
className: "sr-only peer",
|
|
547
|
+
checked: settingState.applyToAllRoutes || false,
|
|
548
|
+
onChange: e => handleSettingChange('applyToAllRoutes', e.target.checked)
|
|
549
|
+
}), jsx("div", {
|
|
550
|
+
className: "w-11 h-6 bg-gray-200 peer-focus:outline-none peer-focus:ring-4 peer-focus:ring-blue-300 dark:peer-focus:ring-blue-800 rounded-full peer dark:bg-gray-700 peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:border-gray-300 after:border after:rounded-full after:h-5 after:w-5 after:transition-all dark:border-gray-600 peer-checked:bg-blue-600"
|
|
551
|
+
})]
|
|
552
|
+
})]
|
|
553
|
+
})]
|
|
511
554
|
}), jsxs("div", {
|
|
512
555
|
className: "mt-8 pb-8 border-b border-black dark:border-[#2a2b2a]",
|
|
513
556
|
children: [jsx("p", {
|
|
@@ -516,6 +559,7 @@ const SettingDrawer = props => {
|
|
|
516
559
|
}), jsx(RegionalSettings, {
|
|
517
560
|
settings: settingState,
|
|
518
561
|
changeSetting: handleSettingChange,
|
|
562
|
+
applyToAllRoutes: settingState.applyToAllRoutes || false,
|
|
519
563
|
...props
|
|
520
564
|
})]
|
|
521
565
|
}), jsx("div", {
|