From 5891dfd6b7e44ffbcde7729001d7f3953a46bb25 Mon Sep 17 00:00:00 2001 From: Michael Mainguy Date: Sun, 21 Dec 2025 12:00:37 -0600 Subject: [PATCH] Fix hamburger menu visibility and feature config format MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Fix z-index layering so hamburger menu appears above canvas - Lower canvas zIndex from 1000 to 1 - Add zIndex={100} to Affix and Menu components - Add position="bottom-start" to prevent dropdown going off-screen - Update feature configs to use string states instead of booleans - Convert all JSON configs from true/false to "on"/"off"/"coming-soon"/"pro" - Fix BASIC_FEATURE_CONFIG to enable core features for logged-in users - This fixes menu items not responding to clicks when authenticated 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- public/api/user/features | 34 ++++++++++++++--------------- public/api/user/features-basic.json | 28 ++++++++++++------------ public/api/user/features-free.json | 28 ++++++++++++------------ public/api/user/features-none.json | 28 ++++++++++++------------ public/api/user/features-pro.json | 28 ++++++++++++------------ src/react/pages/vrExperience.tsx | 8 +++---- src/util/featureConfig.ts | 26 +++++++++++----------- 7 files changed, 90 insertions(+), 90 deletions(-) diff --git a/public/api/user/features b/public/api/user/features index 26f3329..12fb4e6 100644 --- a/public/api/user/features +++ b/public/api/user/features @@ -1,26 +1,26 @@ { - "tier": "none", + "tier": "basic", "pages": { - "examples": false, - "documentation": false, - "pricing": false, - "vrExperience": true + "examples": "coming-soon", + "documentation": "coming-soon", + "pricing": "coming-soon", + "vrExperience": "on" }, "features": { - "createDiagram": false, - "createFromTemplate": false, - "manageDiagrams": false, - "shareCollaborate": false, - "privateDesigns": false, - "encryptedDesigns": false, - "editData": false, - "config": true, - "enterImmersive": true, - "launchMetaQuest": true + "createDiagram": "on", + "createFromTemplate": "coming-soon", + "manageDiagrams": "on", + "shareCollaborate": "coming-soon", + "privateDesigns": "coming-soon", + "encryptedDesigns": "pro", + "editData": "coming-soon", + "config": "on", + "enterImmersive": "on", + "launchMetaQuest": "on" }, "limits": { - "maxDiagrams": 0, + "maxDiagrams": 10, "maxCollaborators": 0, - "storageQuotaMB": 0 + "storageQuotaMB": 200 } } diff --git a/public/api/user/features-basic.json b/public/api/user/features-basic.json index 7227ad6..a2b7cc9 100644 --- a/public/api/user/features-basic.json +++ b/public/api/user/features-basic.json @@ -1,22 +1,22 @@ { "tier": "basic", "pages": { - "examples": true, - "documentation": true, - "pricing": true, - "vrExperience": true + "examples": "on", + "documentation": "on", + "pricing": "on", + "vrExperience": "on" }, "features": { - "createDiagram": true, - "createFromTemplate": true, - "manageDiagrams": true, - "shareCollaborate": false, - "privateDesigns": true, - "encryptedDesigns": false, - "editData": true, - "config": true, - "enterImmersive": true, - "launchMetaQuest": true + "createDiagram": "on", + "createFromTemplate": "on", + "manageDiagrams": "on", + "shareCollaborate": "coming-soon", + "privateDesigns": "on", + "encryptedDesigns": "pro", + "editData": "on", + "config": "on", + "enterImmersive": "on", + "launchMetaQuest": "on" }, "limits": { "maxDiagrams": 25, diff --git a/public/api/user/features-free.json b/public/api/user/features-free.json index 9b88239..4ff824a 100644 --- a/public/api/user/features-free.json +++ b/public/api/user/features-free.json @@ -1,22 +1,22 @@ { "tier": "free", "pages": { - "examples": true, - "documentation": true, - "pricing": true, - "vrExperience": true + "examples": "on", + "documentation": "on", + "pricing": "on", + "vrExperience": "on" }, "features": { - "createDiagram": true, - "createFromTemplate": false, - "manageDiagrams": true, - "shareCollaborate": false, - "privateDesigns": false, - "encryptedDesigns": false, - "editData": true, - "config": true, - "enterImmersive": true, - "launchMetaQuest": true + "createDiagram": "on", + "createFromTemplate": "coming-soon", + "manageDiagrams": "on", + "shareCollaborate": "coming-soon", + "privateDesigns": "coming-soon", + "encryptedDesigns": "pro", + "editData": "on", + "config": "on", + "enterImmersive": "on", + "launchMetaQuest": "on" }, "limits": { "maxDiagrams": 6, diff --git a/public/api/user/features-none.json b/public/api/user/features-none.json index 5cbcc46..6265836 100644 --- a/public/api/user/features-none.json +++ b/public/api/user/features-none.json @@ -1,22 +1,22 @@ { "tier": "none", "pages": { - "examples": false, - "documentation": false, - "pricing": false, - "vrExperience": false + "examples": "off", + "documentation": "off", + "pricing": "off", + "vrExperience": "off" }, "features": { - "createDiagram": false, - "createFromTemplate": false, - "manageDiagrams": false, - "shareCollaborate": false, - "privateDesigns": false, - "encryptedDesigns": false, - "editData": false, - "config": false, - "enterImmersive": false, - "launchMetaQuest": false + "createDiagram": "off", + "createFromTemplate": "off", + "manageDiagrams": "off", + "shareCollaborate": "off", + "privateDesigns": "off", + "encryptedDesigns": "off", + "editData": "off", + "config": "off", + "enterImmersive": "off", + "launchMetaQuest": "off" }, "limits": { "maxDiagrams": 0, diff --git a/public/api/user/features-pro.json b/public/api/user/features-pro.json index 8069625..a9f4ddd 100644 --- a/public/api/user/features-pro.json +++ b/public/api/user/features-pro.json @@ -1,22 +1,22 @@ { "tier": "pro", "pages": { - "examples": true, - "documentation": true, - "pricing": true, - "vrExperience": true + "examples": "on", + "documentation": "on", + "pricing": "on", + "vrExperience": "on" }, "features": { - "createDiagram": true, - "createFromTemplate": true, - "manageDiagrams": true, - "shareCollaborate": true, - "privateDesigns": true, - "encryptedDesigns": true, - "editData": true, - "config": true, - "enterImmersive": true, - "launchMetaQuest": true + "createDiagram": "on", + "createFromTemplate": "on", + "manageDiagrams": "on", + "shareCollaborate": "on", + "privateDesigns": "on", + "encryptedDesigns": "on", + "editData": "on", + "config": "on", + "enterImmersive": "on", + "launchMetaQuest": "on" }, "limits": { "maxDiagrams": -1, diff --git a/src/react/pages/vrExperience.tsx b/src/react/pages/vrExperience.tsx index a67e2fe..549ced9 100644 --- a/src/react/pages/vrExperience.tsx +++ b/src/react/pages/vrExperience.tsx @@ -222,7 +222,7 @@ export default function VrExperience() { {/* Guest Mode Banner - Non-aggressive, dismissible (hidden for demo) */} {!isAuthenticated && !guestBannerDismissed && dbName !== 'demo' && ( - + {createModal()} {manageModal()} - - + + @@ -361,7 +361,7 @@ export default function VrExperience() { left: 0, width: '100%', height: '100%', - zIndex: 1000 + zIndex: 1 }}/> {chatOpen && setChatOpen(false)}/>} diff --git a/src/util/featureConfig.ts b/src/util/featureConfig.ts index 9bf4c13..f705770 100644 --- a/src/util/featureConfig.ts +++ b/src/util/featureConfig.ts @@ -74,27 +74,27 @@ export const DEFAULT_FEATURE_CONFIG: FeatureConfig = { export const BASIC_FEATURE_CONFIG: FeatureConfig = { tier: 'basic', pages: { - examples: 'off', - documentation: 'off', + examples: 'coming-soon', + documentation: 'coming-soon', pricing: 'coming-soon', vrExperience: 'on', }, features: { createDiagram: 'on', - createFromTemplate: 'off', - manageDiagrams: 'off', - shareCollaborate: 'off', - privateDesigns: 'off', - encryptedDesigns: 'off', - editData: 'off', - config: 'off', - enterImmersive: 'off', - launchMetaQuest: 'off', + createFromTemplate: 'coming-soon', + manageDiagrams: 'on', + shareCollaborate: 'coming-soon', + privateDesigns: 'coming-soon', + encryptedDesigns: 'pro', + editData: 'coming-soon', + config: 'on', + enterImmersive: 'on', + launchMetaQuest: 'on', }, limits: { - maxDiagrams: 0, + maxDiagrams: 10, maxCollaborators: 0, - storageQuotaMB: 0, + storageQuotaMB: 200, }, };