@@ -130,6 +130,7 @@ const defaultComponentTabName = 'App.tsx'
130130const defaultStylesTabName = 'app.css'
131131const defaultEntryTabDirectory = 'src/components'
132132const allowedEntryTabFileNames = new Set ( [ 'app.tsx' , 'app.js' ] )
133+ const renderModeStorageKey = 'knighted-develop:render-mode'
133134const editorKinds = [ 'component' , 'styles' ]
134135const editorPanelsByKind = {
135136 component : componentEditorPanel ,
@@ -1492,6 +1493,7 @@ const applyWorkspaceRecord = async (workspace, { silent = false } = {}) => {
14921493 if ( renderMode . value !== nextRenderMode ) {
14931494 renderMode . value = nextRenderMode
14941495 }
1496+ persistRenderMode ( nextRenderMode )
14951497
14961498 const activeTab = getActiveWorkspaceTab ( )
14971499 if ( activeTab ) {
@@ -2421,6 +2423,27 @@ const getStyleEditorLanguage = mode => {
24212423
24222424const normalizeRenderMode = mode => ( mode === 'react' ? 'react' : 'dom' )
24232425
2426+ const persistRenderMode = mode => {
2427+ const normalizedMode = normalizeRenderMode ( mode )
2428+
2429+ try {
2430+ localStorage . setItem ( renderModeStorageKey , normalizedMode )
2431+ } catch {
2432+ /* Ignore storage write errors in restricted browsing modes. */
2433+ }
2434+ }
2435+
2436+ const getInitialRenderMode = ( ) => {
2437+ try {
2438+ const value = localStorage . getItem ( renderModeStorageKey )
2439+ return normalizeRenderMode ( value )
2440+ } catch {
2441+ /* Ignore storage read errors in restricted browsing modes. */
2442+ }
2443+
2444+ return 'dom'
2445+ }
2446+
24242447const updateRenderModeEditability = ( ) => {
24252448 if ( ! ( renderMode instanceof HTMLSelectElement ) ) {
24262449 return
@@ -3044,6 +3067,8 @@ function applyRenderMode({ mode, fromActivePrContext: _fromActivePrContext = fal
30443067 renderMode . value = nextMode
30453068 }
30463069
3070+ persistRenderMode ( nextMode )
3071+
30473072 resetDiagnosticsFlow ( )
30483073
30493074 maybeRender ( )
@@ -3396,6 +3421,7 @@ if (workspaceTabAddStyles instanceof HTMLButtonElement) {
33963421}
33973422
33983423applyTheme ( getInitialTheme ( ) , { persist : false } )
3424+ renderMode . value = getInitialRenderMode ( )
33993425applyEditorToolsVisibility ( )
34003426applyPanelCollapseState ( )
34013427syncHeaderLabels ( )
0 commit comments