From 6e0491144f09837fc36282f15be0175c8a021eb5 Mon Sep 17 00:00:00 2001 From: FernandoM33 Date: Mon, 7 Sep 2026 00:46:26 -0700 Subject: [PATCH] fix: preserve short workflow on open --- frontend/scripts/smoke-clips-first-lifecycle.mjs | 4 +++- frontend/scripts/smoke-editor-state.mjs | 2 +- frontend/src/App.tsx | 5 +++-- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/frontend/scripts/smoke-clips-first-lifecycle.mjs b/frontend/scripts/smoke-clips-first-lifecycle.mjs index e3bbe53..6f22a74 100644 --- a/frontend/scripts/smoke-clips-first-lifecycle.mjs +++ b/frontend/scripts/smoke-clips-first-lifecycle.mjs @@ -13,7 +13,9 @@ const appSource = readSource('../src/App.tsx'); const panelSource = readSource('../src/components/AIPanel.tsx'); const aiStoreSource = readSource('../src/store/aiStore.ts'); -assert.match(appSource, /label=\{editorWorkflow === 'short' \? 'Export Video' : 'Export'\}/); +assert.match(appSource, /const currentWorkflowIntent: WorkflowIntent = editorWorkflow === 'short' \? 'short' : 'full-video'/); +assert.match(appSource, /onClick=\{\(\) => void handleOpenFile\(currentWorkflowIntent\)\}/); +assert.match(appSource, /label=\{editorWorkflow === 'short' \? 'Export Full Video' : 'Export'\}/); assert.match(appSource, /dataAction="full-video-export"/); assert.match(appSource, /const resetMediaAIWorkspaceForNewMedia = useCallback/); assert.match(appSource, /useAIStore\.getState\(\)\.resetMediaAIWorkspace\(\)/); diff --git a/frontend/scripts/smoke-editor-state.mjs b/frontend/scripts/smoke-editor-state.mjs index 9b30b77..572e4ab 100644 --- a/frontend/scripts/smoke-editor-state.mjs +++ b/frontend/scripts/smoke-editor-state.mjs @@ -112,7 +112,7 @@ assert.equal(historyStore.temporal.getState().pastStates.length, 1, 'transient p const appSource = readFileSync(resolve(__dirname, '../src/App.tsx'), 'utf8'); const editorStoreSource = readFileSync(resolve(__dirname, '../src/store/editorStore.ts'), 'utf8'); -assert.match(appSource, /onClick=\{\(\) => void handleOpenFile\(\)\}/); +assert.match(appSource, /onClick=\{\(\) => void handleOpenFile\(currentWorkflowIntent\)\}/); assert.doesNotMatch(appSource, /onClick=\{handleOpenFile\}/); assert.match(editorStoreSource, /partialize:\s*partializeEditorHistory/); assert.match(editorStoreSource, /equality:\s*editorHistoryEqual/); diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index 9b3ee1f..8261ed6 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -669,6 +669,7 @@ export default function App() { const sidePanelLabel = activePanel === 'ai' ? editorWorkflow === 'short' ? 'Create Clips' : 'AI tools' : activePanel === 'export' ? 'Export' : 'Settings'; + const currentWorkflowIntent: WorkflowIntent = editorWorkflow === 'short' ? 'short' : 'full-video'; const resolveAutosaveRestore = (restore: boolean) => { const request = autosaveRestoreRequest; @@ -771,7 +772,7 @@ export default function App() { } label="Open" - onClick={() => void handleOpenFile()} + onClick={() => void handleOpenFile(currentWorkflowIntent)} disabled={isBrowserUploading} /> } - label={editorWorkflow === 'short' ? 'Export Video' : 'Export'} + label={editorWorkflow === 'short' ? 'Export Full Video' : 'Export'} active={activePanel === 'export'} onClick={() => togglePanel('export')} disabled={words.length === 0}