fix: store menu 404, logger crash, platform detection, and sidebar UX
All checks were successful
All checks were successful
- Fix store menu API URL (/store/menu/render/store, not /store/core/...) - Fix storeLog/merchantLog fallback to console object instead of console.log - Embed platform_id/platform_code in store JWT from URL context at login - Use token_platform_id in store menu endpoint with DB fallback for old tokens - Add "Menu unavailable" warning in sidebar fallback for all three frontends - Standardize admin section default to all-open (consistent with store/merchant) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -95,8 +95,10 @@ async def get_rendered_store_menu(
|
||||
# Get the store from the JWT token's store context
|
||||
store = store_service.get_store_by_id(db, current_user.token_store_id)
|
||||
|
||||
# Resolve the store's platform via service layer
|
||||
platform_id = menu_service.get_store_primary_platform_id(db, store.id)
|
||||
# Platform from JWT (set at login from URL context), fall back to DB for old tokens
|
||||
platform_id = current_user.token_platform_id
|
||||
if platform_id is None:
|
||||
platform_id = menu_service.get_store_primary_platform_id(db, store.id)
|
||||
|
||||
# Get filtered menu with platform visibility and store_code interpolation
|
||||
menu = menu_service.get_menu_for_rendering(
|
||||
|
||||
@@ -214,7 +214,7 @@ function data() {
|
||||
// Initialize openSections for new sections (default: first section open)
|
||||
if (this.openSections[section.id] === undefined) {
|
||||
// Default: first section open, rest closed
|
||||
this.openSections[section.id] = (sections.indexOf(section) === 0);
|
||||
this.openSections[section.id] = true;
|
||||
}
|
||||
}
|
||||
console.debug('Menu config loaded:', this.visibleMenuItems.size, 'items');
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
*/
|
||||
|
||||
// Use centralized logger (guarded: log-config.js loads with defer, so it may not be ready yet)
|
||||
const merchantLog = (window.LogConfig && window.LogConfig.log) || console.log;
|
||||
const merchantLog = (window.LogConfig && window.LogConfig.log) || console;
|
||||
|
||||
console.log('[MERCHANT INIT-ALPINE] Loading...');
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
*/
|
||||
|
||||
// Use centralized logger (guarded: log-config.js loads with defer, so it may not be ready yet)
|
||||
const storeLog = (window.LogConfig && window.LogConfig.log) || console.log;
|
||||
const storeLog = (window.LogConfig && window.LogConfig.log) || console;
|
||||
|
||||
console.log('[STORE INIT-ALPINE] Loading...');
|
||||
|
||||
@@ -129,7 +129,7 @@ function data() {
|
||||
|
||||
this.menuLoading = true;
|
||||
try {
|
||||
this.menuData = await apiClient.get('/store/core/menu/render/store');
|
||||
this.menuData = await apiClient.get('/store/menu/render/store');
|
||||
// Initialize section open state from response
|
||||
for (const section of (this.menuData?.sections || [])) {
|
||||
if (this.openSections[section.id] === undefined) {
|
||||
|
||||
Reference in New Issue
Block a user