Implement comprehensive feature toggle system allowing menu options and features to be controlled via JSON configuration fetched from API endpoint or static files. Core System: - Create FeatureConfig type system with page, feature, and limit-based flags - Add React Context (FeatureProvider) that fetches from /api/user/features - Implement custom hooks (useFeatures, useIsFeatureEnabled, useFeatureLimit, etc.) - Default config disables everything except home page Integration: - Update PageHeader to filter menu items based on page flags - Add ProtectedRoute component to guard routes - Update VR menu to conditionally render items based on feature flags - Update CreateDiagramModal to enable/disable options (private, encrypted, invite) - Update ManageDiagramsModal to use configurable maxDiagrams limit Configuration Files: - Add static JSON files for local testing (none, free, basic, pro tiers) - Add dev proxy for /api/user/features endpoint - Include README with testing instructions Updates: - Complete CLAUDE.md naming conventions section - Version bump to 0.0.8-27 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
27 lines
526 B
JSON
27 lines
526 B
JSON
{
|
|
"tier": "basic",
|
|
"pages": {
|
|
"examples": true,
|
|
"documentation": true,
|
|
"pricing": true,
|
|
"vrExperience": true
|
|
},
|
|
"features": {
|
|
"createDiagram": true,
|
|
"createFromTemplate": true,
|
|
"manageDiagrams": true,
|
|
"shareCollaborate": false,
|
|
"privateDesigns": true,
|
|
"encryptedDesigns": false,
|
|
"editData": true,
|
|
"config": true,
|
|
"enterImmersive": true,
|
|
"launchMetaQuest": true
|
|
},
|
|
"limits": {
|
|
"maxDiagrams": 25,
|
|
"maxCollaborators": 0,
|
|
"storageQuotaMB": 500
|
|
}
|
|
}
|