Silent timeline removed when hitting export
This commit is contained in:
@@ -10,6 +10,7 @@ type WsMsg =
|
||||
| { type: 'segments'; segments: { start: number; end: number }[]; duration: number }
|
||||
| { type: 'progress'; percent: number }
|
||||
| { type: 'done'; message: string }
|
||||
| { type: 'timeline'; segments: { start: number; end: number }[]; duration: number }
|
||||
| { type: 'error'; message: string }
|
||||
|
||||
type Phase = 'idle' | 'uploading' | 'analyzing' | 'ready' | 'exporting' | 'done'
|
||||
@@ -66,6 +67,13 @@ export default function App() {
|
||||
return { ...prev, progress: msg.percent }
|
||||
case 'done':
|
||||
return { ...prev, phase: 'done', outputFile: msg.message, progress: 100 }
|
||||
case 'timeline':
|
||||
return {
|
||||
...prev,
|
||||
phase: 'ready',
|
||||
duration: msg.duration,
|
||||
segments: msg.segments.map((s) => ({ ...s, kept: true })),
|
||||
}
|
||||
case 'error':
|
||||
return { ...prev, phase: 'ready', error: msg.message }
|
||||
default:
|
||||
@@ -86,7 +94,7 @@ export default function App() {
|
||||
minSilence: number,
|
||||
padding: number,
|
||||
) => {
|
||||
setState((prev) => ({ ...prev, phase: 'analyzing', segments: [], error: null }))
|
||||
setState((prev) => ({ ...prev, phase: 'analyzing', segments: [], outputFile: null, error: null }))
|
||||
try {
|
||||
const res = await fetch('/analyze', {
|
||||
method: 'POST',
|
||||
@@ -136,7 +144,7 @@ export default function App() {
|
||||
const res = await fetch('/export', {
|
||||
method: 'POST',
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
body: JSON.stringify({ filename: state.filename, segments: kept }),
|
||||
body: JSON.stringify({ filename: state.filename, segments: kept, duration: state.duration }),
|
||||
})
|
||||
if (!res.ok) throw new Error(await res.text())
|
||||
} catch (e) {
|
||||
@@ -254,7 +262,7 @@ export default function App() {
|
||||
</div>
|
||||
)}
|
||||
|
||||
{state.phase === 'done' && state.outputFile && (
|
||||
{state.outputFile && (
|
||||
<div className="done-panel">
|
||||
<span className="done-check">✓</span>
|
||||
<p>Export complete!</p>
|
||||
|
||||
Reference in New Issue
Block a user