@admin-layout/client 12.0.16-alpha.64 â 12.0.16-alpha.67
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/UpdateSettings/UpdateSettings.server.d.ts +1 -0
- package/lib/components/UpdateSettings/UpdateSettings.server.d.ts.map +1 -1
- package/lib/components/UpdateSettings/UpdateSettings.server.js +12 -6
- package/lib/components/UpdateSettings/UpdateSettings.server.js.map +1 -1
- package/lib/hooks/useLayoutSettings.d.ts +1 -0
- package/lib/hooks/useLayoutSettings.d.ts.map +1 -1
- package/lib/hooks/useLayoutSettings.js +18 -8
- package/lib/hooks/useLayoutSettings.js.map +1 -1
- package/lib/index.js +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UpdateSettings.server.d.ts","sourceRoot":"","sources":["../../../src/components/UpdateSettings/UpdateSettings.server.ts"],"names":[],"mappings":"AAgBA;;;;;GAKG;AACH,eAAO,MAAM,cAAc,4CAMzB,CAAC;AAEH;;;;;;;;;;;GAWG;AACH,wBAAsB,0BAA0B,CAAC,OAAO,EAAE,OAAO,EAAE,kBAAkB,CAAC,EAAE,MAAM;;GAuF7F;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAsB,kBAAkB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE;;;;CAAA;;;
|
|
1
|
+
{"version":3,"file":"UpdateSettings.server.d.ts","sourceRoot":"","sources":["../../../src/components/UpdateSettings/UpdateSettings.server.ts"],"names":[],"mappings":"AAgBA;;;;;GAKG;AACH,eAAO,MAAM,cAAc,4CAMzB,CAAC;AAEH;;;;;;;;;;;GAWG;AACH,wBAAsB,0BAA0B,CAAC,OAAO,EAAE,OAAO,EAAE,kBAAkB,CAAC,EAAE,MAAM;;GAuF7F;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAsB,kBAAkB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE;;;;CAAA;;;GA8GpE;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAQrE"}
|
|
@@ -52,7 +52,7 @@ async function fetchPageSettingsWithFetch(request, overrideIdentifier) {
|
|
|
52
52
|
options,
|
|
53
53
|
};
|
|
54
54
|
console.log('đ Fetching settings with direct fetch to:', url);
|
|
55
|
-
console.log('đ Query variables:', JSON.stringify(variables, null, 2));
|
|
55
|
+
// console.log('đ Query variables:', JSON.stringify(variables, null, 2));
|
|
56
56
|
// Forward cookies and headers from the incoming request
|
|
57
57
|
const headers = {
|
|
58
58
|
'Content-Type': 'application/json',
|
|
@@ -134,13 +134,12 @@ async function fetchPageSettingsWithFetch(request, overrideIdentifier) {
|
|
|
134
134
|
async function settingsLoaderUtil({ request, context, params }) {
|
|
135
135
|
// 1. Detect device type from User-Agent header
|
|
136
136
|
const userAgent = request.headers.get('User-Agent') || '';
|
|
137
|
-
const
|
|
138
|
-
const deviceType = isMobile ? 'mobile' : 'desktop';
|
|
137
|
+
const deviceType = getDeviceType(userAgent);
|
|
139
138
|
// 2. Fetch settings from GraphQL backend with device-specific overrides
|
|
140
139
|
// Override identifier format: "[desktop]" or "[mobile]"
|
|
141
140
|
const overrideIdentifier = `[${deviceType}]`;
|
|
142
141
|
const result = await fetchPageSettingsWithFetch(request, overrideIdentifier);
|
|
143
|
-
console.log('ddRESULT=========>', JSON.stringify(result));
|
|
142
|
+
// console.log('ddRESULT=========>', JSON.stringify(result));
|
|
144
143
|
const pageBackendSettings = result?.data?.pageSettings?.settings
|
|
145
144
|
? JSON.parse(JSON.stringify(result?.data?.pageSettings?.settings))
|
|
146
145
|
: null;
|
|
@@ -161,7 +160,7 @@ async function settingsLoaderUtil({ request, context, params }) {
|
|
|
161
160
|
console.log('âšī¸ No request payload (likely a loader call)');
|
|
162
161
|
requestPayload = {};
|
|
163
162
|
}
|
|
164
|
-
console.log('đ DEBUG - pageBackendSettings:', JSON.stringify(pageBackendSettings, null, 2));
|
|
163
|
+
// console.log('đ DEBUG - pageBackendSettings:', JSON.stringify(pageBackendSettings, null, 2));
|
|
165
164
|
// 4. Parse environment-based layout settings (fallback/default values)
|
|
166
165
|
const envLayoutSettings = parseEnvLayoutSettings();
|
|
167
166
|
// 5. Parse and validate existing cookie settings
|
|
@@ -217,4 +216,11 @@ async function settingsLoaderUtil({ request, context, params }) {
|
|
|
217
216
|
const cookie = await settingsCookie.serialize(cookieUpdatedSettings);
|
|
218
217
|
console.log('â
FULL_SETTINGS prepared:', Object.keys(fullSettings).length, 'keys');
|
|
219
218
|
return { settings: fullSettings, setCookie: cookie };
|
|
220
|
-
}
|
|
219
|
+
}
|
|
220
|
+
function getDeviceType(userAgent) {
|
|
221
|
+
if (!userAgent)
|
|
222
|
+
return 'desktop';
|
|
223
|
+
// Enhanced regex that catches more mobile devices
|
|
224
|
+
const mobileRegex = /mobile|android|iphone|ipad|ipod|blackberry|windows phone|opera mini|iemobile|webos|palm|playbook|kindle|silk|psp|symbian|nokia|nexus|htc|samsung|sony|ericsson|lg|motorola|sgh|sec|sharp|vodafone|benq|sanyo|kyocera|nec|alcatel|denso|jarviss|docomo|emacs|minimo|maemo|blazer|dolfin|dolphin|netfront|openwave|teleca|elaine|bolt|iris|maui|packet|pie|portalmmm|w3c|wig|zte|audiovox|ericsson|kyocera|panasonic|qwerty|sendo|sharp|sie-|sonyericsson|t-mobile|up\.browser|up\.link|verizon|vodafone|wap|winwap|xda|zte/i;
|
|
225
|
+
return mobileRegex.test(userAgent) ? 'mobile' : 'desktop';
|
|
226
|
+
}export{fetchPageSettingsWithFetch,getDeviceType,settingsCookie,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":";;;;;;;;;;AAyCG,IAAA,IAAA,EAAA,GAAA;AACH,IAAA,MAAA,EAAA,MAAA,CAAA,MAAsB,GAAA,MAAA,CAAA,UAAA,GAAA,SAA2B;;AAuFhD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoCG,QAAA,WAAA,EAAA,QAAA;AACH,QAAA,OAAA;;;;AAAqE;;;
|
|
1
|
+
{"version":3,"file":"UpdateSettings.server.js","sources":["../../../src/components/UpdateSettings/UpdateSettings.server.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;AAyCG,IAAA,IAAA,EAAA,GAAA;AACH,IAAA,MAAA,EAAA,MAAA,CAAA,MAAsB,GAAA,MAAA,CAAA,UAAA,GAAA,SAA2B;;AAuFhD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoCG,QAAA,WAAA,EAAA,QAAA;AACH,QAAA,OAAA;;;;AAAqE;;;AA8GpE,QAAA,eAAA,EAAA,qCAAA;AAED,QAAA,MAAA,EAAA,UAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useLayoutSettings.d.ts","sourceRoot":"","sources":["../../src/hooks/useLayoutSettings.ts"],"names":[],"mappings":"AAkBA,eAAO,MAAM,iBAAiB;;0BAgDP,GAAG;;
|
|
1
|
+
{"version":3,"file":"useLayoutSettings.d.ts","sourceRoot":"","sources":["../../src/hooks/useLayoutSettings.ts"],"names":[],"mappings":"AAkBA,eAAO,MAAM,iBAAiB;;0BAgDP,GAAG;;CAiEzB,CAAC;AAEF,wBAAgB,mBAAmB,IAAI,QAAQ,GAAG,SAAS,CAY1D"}
|
|
@@ -45,9 +45,7 @@ const useLayoutSettings = () => {
|
|
|
45
45
|
}
|
|
46
46
|
}, []);
|
|
47
47
|
const setSettings = useCallback(async (config) => {
|
|
48
|
-
|
|
49
|
-
const flatConfig = config;
|
|
50
|
-
const { colorWeak, contentWidth } = flatConfig;
|
|
48
|
+
const { colorWeak, contentWidth } = config;
|
|
51
49
|
try {
|
|
52
50
|
// Handle UI updates for special settings
|
|
53
51
|
if (settings.contentWidth !== contentWidth) {
|
|
@@ -56,18 +54,20 @@ const useLayoutSettings = () => {
|
|
|
56
54
|
}
|
|
57
55
|
}
|
|
58
56
|
updateColorWeak(!!colorWeak);
|
|
59
|
-
const cleanDiffSettings = compareAndSaveSettingsDifferences(
|
|
57
|
+
const cleanDiffSettings = compareAndSaveSettingsDifferences(config, settings);
|
|
58
|
+
if (Object.keys(cleanDiffSettings).length === 0)
|
|
59
|
+
return;
|
|
60
60
|
const response = await fetch('/resources/settings', {
|
|
61
61
|
method: 'POST',
|
|
62
62
|
headers: {
|
|
63
63
|
'Content-Type': 'application/json',
|
|
64
64
|
orgName: orgNameFromParams || orgNameFromUrl || '',
|
|
65
65
|
},
|
|
66
|
-
body: JSON.stringify({ config: cleanDiffSettings }),
|
|
66
|
+
body: JSON.stringify({ config: cleanDiffSettings, deviceType: getClientDeviceType() }),
|
|
67
67
|
});
|
|
68
68
|
// Check content type before parsing
|
|
69
69
|
const contentType = response.headers.get('content-type');
|
|
70
|
-
console.log('Response content-type:', contentType);
|
|
70
|
+
// console.log('Response content-type:', contentType);
|
|
71
71
|
if (!response.ok) {
|
|
72
72
|
const errorText = await response.text();
|
|
73
73
|
console.error('Server error response:', errorText.substring(0, 500));
|
|
@@ -84,7 +84,7 @@ const useLayoutSettings = () => {
|
|
|
84
84
|
const result = await response.json();
|
|
85
85
|
const pageDefaultSettings = result;
|
|
86
86
|
// Merge the full config with default settings before updating the store
|
|
87
|
-
const mergedSettings = merge({}, pageDefaultSettings,
|
|
87
|
+
const mergedSettings = merge({}, pageDefaultSettings, config);
|
|
88
88
|
dispatch({
|
|
89
89
|
type: CHANGE_SETTINGS_ACTION,
|
|
90
90
|
payload: mergedSettings,
|
|
@@ -96,4 +96,14 @@ const useLayoutSettings = () => {
|
|
|
96
96
|
}
|
|
97
97
|
}, [dispatch, settings]);
|
|
98
98
|
return { settings, setSettings, getSettings };
|
|
99
|
-
};
|
|
99
|
+
};
|
|
100
|
+
function getClientDeviceType() {
|
|
101
|
+
if (typeof window === 'undefined') {
|
|
102
|
+
return 'desktop'; // SSR fallback
|
|
103
|
+
}
|
|
104
|
+
const userAgent = window.navigator.userAgent;
|
|
105
|
+
const isMobile = /mobile|android|iphone|ipad|ipod|webos|opera mini|iemobile|windows phone/i.test(userAgent);
|
|
106
|
+
// Also check viewport width as fallback
|
|
107
|
+
const isSmallViewport = window.matchMedia('(max-width: 768px)').matches;
|
|
108
|
+
return isMobile || isSmallViewport ? 'mobile' : 'desktop';
|
|
109
|
+
}export{getClientDeviceType,useLayoutSettings};//# sourceMappingURL=useLayoutSettings.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useLayoutSettings.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useLayoutSettings.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/lib/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{SearchBarBehavior}from'./interfaces/settings.js';export{APPLICATION_ERROR_SLOT_FILL,CHANGE_LANGUAGE,CHANGE_SETTINGS_ACTION}from'./constants/constants.js';export{BACKEND_ERROR,CLEAR_APPLICATION_ERRORS,DISMISS_APPLICATION_ERROR,LOG_APPLICATION_ERROR,RESTORE_APPLICATION_ERRORS}from'./constants/error.js';export{HEADER_SEARCHBAR_FILL,HEADER_SEARCH_BUTTON_FILL,RIGHT_CONTENT_FILL,SCROLL_END_FILL}from'./constants/layout.js';export{languages}from'./constants/languages.js';export{dismissApplicationError,restoreApplicationError,setApplicationError}from'./redux/actions/error-actions.js';export{applicationErrors,initialErrorsState}from'./redux/reducers/error.js';export{settingsReducer}from'./redux/reducers/settings.js';export{store}from'./redux/store.js';export{useAppDispatch,useAppSelector}from'./redux/hooks.js';export{getMenuSeparation}from'./utils/seperatedMenus.js';export{useComponentSize,useIsomorphicLayoutEffect}from'./utils/componentSize.js';export{matchParentRoute}from'./utils/parentRoute.js';export{addProLayoutParentKeys,filterRoutesWithLocale,menuDataRender,removeUnnecessaryProperties,setLocale,transformData}from'./utils/menuUtils.js';export{getMatchMenuKeys}from'./utils/matchMenuKeys.js';export{generateMenuPath}from'./utils/generateMenuLink.js';export{compareAndSaveSettingsDifferences}from'./utils/settingsDifference.js';export{ApplicationErrorHandlerCommon}from'./components/ApplicationErrorHandlerCommon.js';export{ErrorBoundaryCommon}from'./components/ErrorBoundaryCommon.js';export{ApplicationErrorFillWrapper}from'./components/ApplicationErrorFillWrapper.js';export{LayoutCookieProvider}from'./components/LayoutCookieProvider.js';export{ErrorLink,errorReduxLink}from'./graphql/link/error-link.js';export{systemFont}from'./themes/systemFont/index.js';export{borderRadius,colors,lightLayoutTheme,lightNavigationBarTheme,lightTabBarTheme,shadows,sizes,spacings,textVariants}from'./themes/templates/lightLayoutTheme.js';export{createLayoutTheme}from'./themes/templates/createLayoutTheme.js';export{darkColors,darkLayoutTheme,darkNavigationBarTheme,darkTabBarTheme}from'./themes/templates/darkLayoutTheme.js';export{config}from'./config/env-config.js';export{AMENITIES,DEFAULT_HEADER,DEFAULT_LAYOUT,SEARCH_TYPES,SHARED_VIEW_CONFIG}from'./config/defaultSettings.js';export{useLayoutSettings}from'./hooks/useLayoutSettings.js';export{usePermissionAutoFetch,useSetting,useSettingsLoader}from'@adminide-stack/platform-client';export{ClientOnly}from'./hooks/Client-only.js';export{blue}from'./colors/presets/blue.js';export{brinkPink}from'./colors/presets/brinkPink.js';export{cyan}from'./colors/presets/cyan.js';export{green}from'./colors/presets/green.js';export{lime}from'./colors/presets/lime.js';export{orange}from'./colors/presets/orange.js';export{pink}from'./colors/presets/pink.js';export{purple}from'./colors/presets/purple.js';export{red}from'./colors/presets/red.js';export{skyBlue}from'./colors/presets/skyBlue.js';export{turquoise}from'./colors/presets/turquoise.js';export{yellow}from'./colors/presets/yellow.js';export{white}from'./colors/presets/white.js';export{black}from'./colors/presets/black.js';export{colorList,getThemeColors}from'./colors/colorsList.js';//# sourceMappingURL=index.js.map
|
|
1
|
+
export{SearchBarBehavior}from'./interfaces/settings.js';export{APPLICATION_ERROR_SLOT_FILL,CHANGE_LANGUAGE,CHANGE_SETTINGS_ACTION}from'./constants/constants.js';export{BACKEND_ERROR,CLEAR_APPLICATION_ERRORS,DISMISS_APPLICATION_ERROR,LOG_APPLICATION_ERROR,RESTORE_APPLICATION_ERRORS}from'./constants/error.js';export{HEADER_SEARCHBAR_FILL,HEADER_SEARCH_BUTTON_FILL,RIGHT_CONTENT_FILL,SCROLL_END_FILL}from'./constants/layout.js';export{languages}from'./constants/languages.js';export{dismissApplicationError,restoreApplicationError,setApplicationError}from'./redux/actions/error-actions.js';export{applicationErrors,initialErrorsState}from'./redux/reducers/error.js';export{settingsReducer}from'./redux/reducers/settings.js';export{store}from'./redux/store.js';export{useAppDispatch,useAppSelector}from'./redux/hooks.js';export{getMenuSeparation}from'./utils/seperatedMenus.js';export{useComponentSize,useIsomorphicLayoutEffect}from'./utils/componentSize.js';export{matchParentRoute}from'./utils/parentRoute.js';export{addProLayoutParentKeys,filterRoutesWithLocale,menuDataRender,removeUnnecessaryProperties,setLocale,transformData}from'./utils/menuUtils.js';export{getMatchMenuKeys}from'./utils/matchMenuKeys.js';export{generateMenuPath}from'./utils/generateMenuLink.js';export{compareAndSaveSettingsDifferences}from'./utils/settingsDifference.js';export{ApplicationErrorHandlerCommon}from'./components/ApplicationErrorHandlerCommon.js';export{ErrorBoundaryCommon}from'./components/ErrorBoundaryCommon.js';export{ApplicationErrorFillWrapper}from'./components/ApplicationErrorFillWrapper.js';export{LayoutCookieProvider}from'./components/LayoutCookieProvider.js';export{ErrorLink,errorReduxLink}from'./graphql/link/error-link.js';export{systemFont}from'./themes/systemFont/index.js';export{borderRadius,colors,lightLayoutTheme,lightNavigationBarTheme,lightTabBarTheme,shadows,sizes,spacings,textVariants}from'./themes/templates/lightLayoutTheme.js';export{createLayoutTheme}from'./themes/templates/createLayoutTheme.js';export{darkColors,darkLayoutTheme,darkNavigationBarTheme,darkTabBarTheme}from'./themes/templates/darkLayoutTheme.js';export{config}from'./config/env-config.js';export{AMENITIES,DEFAULT_HEADER,DEFAULT_LAYOUT,SEARCH_TYPES,SHARED_VIEW_CONFIG}from'./config/defaultSettings.js';export{getClientDeviceType,useLayoutSettings}from'./hooks/useLayoutSettings.js';export{usePermissionAutoFetch,useSetting,useSettingsLoader}from'@adminide-stack/platform-client';export{ClientOnly}from'./hooks/Client-only.js';export{blue}from'./colors/presets/blue.js';export{brinkPink}from'./colors/presets/brinkPink.js';export{cyan}from'./colors/presets/cyan.js';export{green}from'./colors/presets/green.js';export{lime}from'./colors/presets/lime.js';export{orange}from'./colors/presets/orange.js';export{pink}from'./colors/presets/pink.js';export{purple}from'./colors/presets/purple.js';export{red}from'./colors/presets/red.js';export{skyBlue}from'./colors/presets/skyBlue.js';export{turquoise}from'./colors/presets/turquoise.js';export{yellow}from'./colors/presets/yellow.js';export{white}from'./colors/presets/white.js';export{black}from'./colors/presets/black.js';export{colorList,getThemeColors}from'./colors/colorsList.js';//# sourceMappingURL=index.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@admin-layout/client",
|
|
3
|
-
"version": "12.0.16-alpha.
|
|
3
|
+
"version": "12.0.16-alpha.67",
|
|
4
4
|
"description": "Sample client for higher packages to depend on",
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"author": "CDMBase LLC",
|
|
@@ -44,5 +44,5 @@
|
|
|
44
44
|
"typescript": {
|
|
45
45
|
"definition": "lib/index.d.ts"
|
|
46
46
|
},
|
|
47
|
-
"gitHead": "
|
|
47
|
+
"gitHead": "d8c9237b79c0bb4b1457cf446ab77dd5b43d8e05"
|
|
48
48
|
}
|