Fix transcript text edit not showing after Enter

The display renders segment.words (not segment.text), so editing the text
field alone had no visible effect. Now finishEditing() rebuilds the words
array from the edited text so the change is immediately visible.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Claude
2026-03-20 22:20:20 -07:00
parent 27b705b5b6
commit 727107323c

View File

@@ -60,12 +60,25 @@
function finishEditing(segmentId: string) {
const trimmed = editText.trim();
if (trimmed) {
// Update the segment text in the store
// Update the segment text and rebuild words from the edited text.
// The display renders segment.words, so we must update them too.
segments.update(segs => segs.map(s => {
if (s.id !== segmentId) return s;
// Rebuild words from the edited text, preserving timing from the
// original segment boundaries (individual word timing is lost on edit)
const newWords = trimmed.split(/\s+/).map((word, widx) => ({
id: `${s.id}-word-${widx}`,
segment_id: s.id,
word,
start_ms: s.start_ms,
end_ms: s.end_ms,
confidence: 1.0,
word_index: widx,
}));
return {
...s,
text: trimmed,
words: newWords,
original_text: s.original_text ?? s.text,
is_edited: true,
edited_at: new Date().toISOString(),