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>
62 lines
1.5 KiB
TypeScript
62 lines
1.5 KiB
TypeScript
/// <reference types="vitest" />
|
|
import {defineConfig} from "vite";
|
|
|
|
/** @type {import('vite').UserConfig} */
|
|
export default defineConfig({
|
|
test: {},
|
|
define: {},
|
|
build: {
|
|
sourcemap: true,
|
|
rollupOptions: {
|
|
output: {
|
|
manualChunks: {
|
|
'babylon': ['@babylonjs/core']
|
|
}
|
|
}
|
|
}
|
|
},
|
|
optimizeDeps: {
|
|
esbuildOptions: {
|
|
define: {
|
|
global: 'window',
|
|
}
|
|
}
|
|
},
|
|
server: {
|
|
port: 3001,
|
|
proxy: {
|
|
'^/sync/.*': {
|
|
target: 'https://www.deepdiagram.com/',
|
|
changeOrigin: true,
|
|
},
|
|
'^/create-db': {
|
|
target: 'https://www.deepdiagram.com/',
|
|
changeOrigin: true,
|
|
},
|
|
'^/api/images': {
|
|
target: 'https://www.deepdiagram.com/',
|
|
changeOrigin: true,
|
|
}
|
|
}
|
|
|
|
},
|
|
preview: {
|
|
port: 3001,
|
|
proxy: {
|
|
'^/sync/.*': {
|
|
target: 'https://www.deepdiagram.com/',
|
|
changeOrigin: true,
|
|
},
|
|
'^/create-db': {
|
|
target: 'https://www.deepdiagram.com/',
|
|
changeOrigin: true,
|
|
},
|
|
'^/api/images': {
|
|
target: 'https://www.deepdiagram.com/',
|
|
changeOrigin: true,
|
|
}
|
|
}
|
|
},
|
|
base: "/"
|
|
|
|
}) |