From 68ae15f73127091b2ddf0b9d2de77196d098b846 Mon Sep 17 00:00:00 2001 From: Mikael Finstad Date: Fri, 20 Nov 2020 23:01:32 +0100 Subject: [PATCH] Improve cut segment import (less error) --- src/App.jsx | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/App.jsx b/src/App.jsx index b81c7cd5..83882556 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -1110,15 +1110,21 @@ const App = memo(() => { return getOutPath(cod, fp, `html5ified-${type}.${ext}`); }, []); + const resetCutSegments = useCallback((edl) => { + cutSegmentsHistory.go(0); + setCutSegments(edl); + }, [cutSegmentsHistory, setCutSegments]); + const loadCutSegments = useCallback((edl) => { - if (edl.length === 0) throw new Error(); - const allRowsValid = edl.every(row => row.start === undefined || row.end === undefined || row.start < row.end); + const validEdl = edl.filter((row) => ( + (row.start === undefined || row.end === undefined || row.start < row.end) + && (row.start === undefined || row.start >= 0) + )); - if (!allRowsValid) throw new Error(i18n.t('Invalid start or end values for one or more segments')); + if (validEdl.length === 0) throw new Error(i18n.t('No valid segments found')); - cutSegmentsHistory.go(0); - setCutSegments(edl.map(createSegment)); - }, [cutSegmentsHistory, setCutSegments]); + resetCutSegments(validEdl.map(createSegment)); + }, [resetCutSegments]); const loadEdlFile = useCallback(async (path, type = 'csv') => { try {