Harden audio-only script flow and mode propagation

This commit is contained in:
ي
2026-04-20 08:44:46 +05:30
parent ba9ddbf368
commit e68c289901
7 changed files with 148 additions and 11 deletions

View File

@@ -25,6 +25,7 @@ interface ScriptEditorProps {
avatarUrl?: string | null; // Base avatar URL for consistent scene image generation
analysis?: any;
outline?: any;
podcastMode?: "audio_only" | "video_only" | "audio_video";
}
export const ScriptEditor: React.FC<ScriptEditorProps> = ({
@@ -43,6 +44,7 @@ export const ScriptEditor: React.FC<ScriptEditorProps> = ({
avatarUrl,
analysis,
outline,
podcastMode = "video_only",
}) => {
const [script, setScript] = useState<Script | null>(initialScript);
const [loading, setLoading] = useState(false);
@@ -93,6 +95,7 @@ export const ScriptEditor: React.FC<ScriptEditorProps> = ({
knobs,
speakers,
durationMinutes,
podcastMode,
analysis,
outline,
})
@@ -112,7 +115,7 @@ export const ScriptEditor: React.FC<ScriptEditorProps> = ({
return () => {
mounted = false;
};
}, [projectId, rawResearch, idea, knobs, speakers, durationMinutes, analysis, outline, emitScriptChange, onError, script]);
}, [projectId, rawResearch, idea, knobs, speakers, durationMinutes, podcastMode, analysis, outline, emitScriptChange, onError, script]);
const updateScene = (updated: Scene) => {
// Use functional update to ensure we're working with latest state
@@ -837,4 +840,3 @@ export const ScriptEditor: React.FC<ScriptEditorProps> = ({
</Box>
);
};

View File

@@ -208,6 +208,7 @@ export const ScriptEditorProvider: React.FC<ScriptEditorProviderProps> = ({
knobs,
speakers,
durationMinutes,
podcastMode,
analysis,
outline,
})
@@ -547,4 +548,4 @@ export const useScriptEditor = (): ScriptEditorContextType => {
throw new Error("useScriptEditor must be used within ScriptEditorProvider");
}
return context;
};
};