Fix hamburger menu visibility and feature config format

- 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 <noreply@anthropic.com>
This commit is contained in:
Michael Mainguy 2025-12-21 12:00:37 -06:00
parent a7aa385d98
commit 5891dfd6b7
7 changed files with 90 additions and 90 deletions

View File

@ -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
}
}

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -222,7 +222,7 @@ export default function VrExperience() {
<VrTemplate>
{/* Guest Mode Banner - Non-aggressive, dismissible (hidden for demo) */}
{!isAuthenticated && !guestBannerDismissed && dbName !== 'demo' && (
<Affix position={{top: 20, right: 20}} style={{maxWidth: 400}}>
<Affix position={{top: 20, right: 20}} style={{maxWidth: 400}} zIndex={100}>
<Alert
variant="light"
color="blue"
@ -248,8 +248,8 @@ export default function VrExperience() {
<ConfigModal closeConfig={closeConfig} configOpened={configOpened}/>
{createModal()}
{manageModal()}
<Affix position={{top: 30, left: 60}}>
<Menu opened={menuOpened} onChange={setMenuOpened}>
<Affix position={{top: 30, left: 60}} zIndex={100}>
<Menu opened={menuOpened} onChange={setMenuOpened} position="bottom-start" zIndex={100}>
<Menu.Target>
<Burger opened={menuOpened} onClick={toggleMenu} size="xl"/>
</Menu.Target>
@ -361,7 +361,7 @@ export default function VrExperience() {
left: 0,
width: '100%',
height: '100%',
zIndex: 1000
zIndex: 1
}}/>
</div>
{chatOpen && <ChatPanel onClose={() => setChatOpen(false)}/>}

View File

@ -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,
},
};