Go to file
Michael Mainguy e329b95f2f Fix AppConfig persistence and consolidate handle storage
AppConfig Persistence Fixes:
- Fix constructor to properly handle null localStorage values
- Add null check before JSON.parse to prevent errors
- Create fresh config copies with spread operator to avoid reference issues
- Add better error handling and logging for config loading
- Initialize handles array properly

React ConfigModal Improvements:
- Fix config initialization to get fresh values on render instead of stale module-level values
- Separate useEffect hooks for each config property (prevents unnecessary updates)
- Fix SegmentedControl string-to-number conversion (locationSnaps now use "0.01", "0.1" format)
- Enable/disable logic now properly sets values to 0 when disabled

Handle Storage Consolidation:
- Create dynamic HandleConfig type with Vec3 for serializable position/rotation/scale
- Add handles array to AppConfigType for flexible handle storage
- Replace individual localStorage keys with centralized AppConfig storage
- Add handle management methods: getHandleConfig, setHandleConfig, removeHandleConfig, getAllHandleConfigs
- Update Handle class to read from AppConfig instead of direct localStorage
- Update dropMesh to save handles via AppConfig using Vec3 serialization
- Convert between BabylonJS Vector3 and serializable Vec3 at conversion points

Benefits:
- Single source of truth for all configuration
- Proper localStorage persistence across page reloads
- Dynamic handle creation without code changes
- Type-safe configuration with proper JSON serialization
- Consolidated storage (one appConfig key instead of multiple handle-* keys)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-19 15:34:40 -06:00
.github/workflows Update node.js.yml 2024-08-30 12:18:10 -05:00
api Initial Menu System Commit. 2023-06-29 21:03:00 -05:00
docs Add WebXR rendering mode toggle with 4 modes 2025-11-13 10:36:03 -06:00
functions Added Initial Voice Command Handler, fixed connection issues. 2023-08-14 13:27:20 -05:00
netlify/functions added request headers to CORD response. 2023-12-12 06:53:14 -06:00
pages Initial Menu System Commit. 2023-06-27 16:58:19 -05:00
public Fix label positioning, add billboard mode, fix XR entry shift, and fix config system 2025-11-18 08:52:04 -06:00
server Add WebXR rendering mode toggle with 4 modes 2025-11-13 10:36:03 -06:00
src Fix AppConfig persistence and consolidate handle storage 2025-11-19 15:34:40 -06:00
.gitignore Refactored api path. 2023-08-11 07:51:46 -05:00
CLAUDE.md Add configurable feature management system with JSON-based feature flags 2025-11-18 06:52:39 -06:00
index.html Added webxr exit button 2025-02-14 11:01:27 -06:00
LICENSE.txt Disabled service worker, enhanced management console. 2024-08-30 12:43:19 -05:00
package-lock.json Refactor config naming and upgrade dependencies 2025-11-12 21:36:56 -06:00
package.json version bump 2025-11-19 13:35:40 -06:00
server.js Re added quest link. 2024-04-02 14:19:27 -05:00
tsconfig.json Added 3d closet demo, cleaned up menus. 2024-02-05 10:46:23 -06:00
versionBump.js Added smart versioning 2024-06-11 16:58:35 -05:00
vite.config.ts Add configurable feature management system with JSON-based feature flags 2025-11-18 06:52:39 -06:00
VRCONFIGPLAN.md Add VR configuration panel implementation plan and Phase 1 foundation 2025-11-18 11:53:47 -06:00