fix: Edit: Chapter: When undoing / redoing edits, the edits are not saved

This commit is contained in:
Yiannis Christodoulou 2025-10-13 01:49:53 +03:00
parent bd786c0fe6
commit d9aee11d44
2 changed files with 14 additions and 0 deletions

View File

@ -847,6 +847,7 @@ const TimelineControls = ({
document.addEventListener('update-trim', handleTrimUpdate as EventListener); document.addEventListener('update-trim', handleTrimUpdate as EventListener);
document.addEventListener('delete-segment', scheduleAutoSave); document.addEventListener('delete-segment', scheduleAutoSave);
document.addEventListener('split-segment', scheduleAutoSave); document.addEventListener('split-segment', scheduleAutoSave);
document.addEventListener('undo-redo-autosave', scheduleAutoSave);
return () => { return () => {
logger.debug('Cleaning up auto-save event listeners...'); logger.debug('Cleaning up auto-save event listeners...');
@ -855,6 +856,7 @@ const TimelineControls = ({
document.removeEventListener('update-trim', handleTrimUpdate as EventListener); document.removeEventListener('update-trim', handleTrimUpdate as EventListener);
document.removeEventListener('delete-segment', scheduleAutoSave); document.removeEventListener('delete-segment', scheduleAutoSave);
document.removeEventListener('split-segment', scheduleAutoSave); document.removeEventListener('split-segment', scheduleAutoSave);
document.removeEventListener('undo-redo-autosave', scheduleAutoSave);
// Clear any pending auto-save timer // Clear any pending auto-save timer
if (autoSaveTimerRef.current) { if (autoSaveTimerRef.current) {

View File

@ -620,6 +620,12 @@ const useVideoChapters = () => {
setSplitPoints([...previousState.splitPoints]); setSplitPoints([...previousState.splitPoints]);
setClipSegments(JSON.parse(JSON.stringify(previousState.clipSegments))); setClipSegments(JSON.parse(JSON.stringify(previousState.clipSegments)));
setHistoryPosition(historyPosition - 1); setHistoryPosition(historyPosition - 1);
// Trigger auto-save by dispatching a custom event
setTimeout(() => {
const event = new CustomEvent('undo-redo-autosave');
document.dispatchEvent(event);
}, 10);
} else { } else {
logger.debug('Cannot undo: at earliest history position'); logger.debug('Cannot undo: at earliest history position');
} }
@ -648,6 +654,12 @@ const useVideoChapters = () => {
setSplitPoints([...nextState.splitPoints]); setSplitPoints([...nextState.splitPoints]);
setClipSegments(JSON.parse(JSON.stringify(nextState.clipSegments))); setClipSegments(JSON.parse(JSON.stringify(nextState.clipSegments)));
setHistoryPosition(historyPosition + 1); setHistoryPosition(historyPosition + 1);
// Trigger auto-save by dispatching a custom event
setTimeout(() => {
const event = new CustomEvent('undo-redo-autosave');
document.dispatchEvent(event);
}, 10);
} else { } else {
logger.debug('Cannot redo: at latest history position'); logger.debug('Cannot redo: at latest history position');
} }