(state: Record<string, unknown>)
| 91 | * Apply legacy boolean-to-enum migrations from the old format |
| 92 | */ |
| 93 | export function applyLegacyMigrations(state: Record<string, unknown>): Record<string, unknown> { |
| 94 | const migrated = { ...state }; |
| 95 | |
| 96 | // Migrate old showCameras boolean to new cameraDisplayMode |
| 97 | if ('showCameras' in migrated && typeof migrated.showCameras === 'boolean') { |
| 98 | migrated.cameraDisplayMode = 'frustum'; |
| 99 | } |
| 100 | |
| 101 | // Migrate old showMatches boolean to new matchesDisplayMode |
| 102 | if ('showMatches' in migrated && typeof migrated.showMatches === 'boolean') { |
| 103 | migrated.matchesDisplayMode = 'static'; |
| 104 | } |
| 105 | |
| 106 | // Migrate old rainbowMode boolean to new selectionColorMode |
| 107 | if ('rainbowMode' in migrated && typeof migrated.rainbowMode === 'boolean') { |
| 108 | migrated.selectionColorMode = migrated.rainbowMode ? 'rainbow' : 'static'; |
| 109 | delete migrated.rainbowMode; |
| 110 | } |
| 111 | |
| 112 | // Migrate old rainbowSpeed to selectionAnimationSpeed |
| 113 | if ('rainbowSpeed' in migrated) { |
| 114 | migrated.selectionAnimationSpeed = migrated.rainbowSpeed; |
| 115 | delete migrated.rainbowSpeed; |
| 116 | } |
| 117 | |
| 118 | // Legacy showAxes boolean is now directly used (no migration needed) |
| 119 | // Old axesDisplayMode enum is handled in uiStore migration version 7 |
| 120 | |
| 121 | return migrated; |
| 122 | } |
| 123 | |
| 124 | function extractDomainState( |
| 125 | legacyState: Record<string, unknown>, |
no outgoing calls
no test coverage detected