mirror of
https://github.com/jamiepine/voicebox.git
synced 2026-09-18 14:20:42 -07:00
fix: prevent intermittent clip splitting failures (#403)
Two changes to address the race condition causing "Failed to split clip": Backend (stories.py): Added with_for_update() to the item query in split_story_item so concurrent requests for the same clip are serialized via a row lock instead of racing. Frontend (StoryTrackEditor.tsx): Guard handleSplit with splitItem.isPending to prevent rapid double-clicks from firing multiple mutations before the first completes. Fixes #366 Co-authored-by: Matt Van Horn <[email protected]>
This commit is contained in:
co-authored by
Matt Van Horn
parent
9a3c307c75
commit
13ba5f1aa6
@@ -500,7 +500,7 @@ export function StoryTrackEditor({ storyId, items }: StoryTrackEditorProps) {
|
||||
}, [trimmingItem, trimSide, tempTrimValues, storyId, trimItem, toast]);
|
||||
|
||||
const handleSplit = useCallback(() => {
|
||||
if (!selectedClipId) return;
|
||||
if (!selectedClipId || splitItem.isPending) return;
|
||||
|
||||
const item = items.find((i) => i.id === selectedClipId);
|
||||
if (!item) return;
|
||||
|
||||
Reference in New Issue
Block a user