diff --git a/src/App.jsx b/src/App.jsx index bb42146e..72526044 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -1757,9 +1757,11 @@ const App = memo(() => { if (workingRef.current) return; try { + const enabledStreams = mainStreams.filter((stream) => isCopyingStreamId(filePath, stream.index)); + setWorking(i18n.t('Extracting all streams')); setStreamsSelectorShown(false); - const extractedPaths = await extractStreams({ customOutDir, filePath, streams: mainStreams, enableOverwriteOutput }); + const extractedPaths = await extractStreams({ customOutDir, filePath, streams: enabledStreams, enableOverwriteOutput }); if (!hideAllNotifications) openDirToast({ icon: 'success', filePath: extractedPaths[0], text: i18n.t('All streams have been extracted as separate files') }); } catch (err) { if (err instanceof RefuseOverwriteError) { @@ -1771,7 +1773,7 @@ const App = memo(() => { } finally { setWorking(); } - }, [customOutDir, enableOverwriteOutput, filePath, hideAllNotifications, mainStreams, setWorking]); + }, [customOutDir, enableOverwriteOutput, filePath, hideAllNotifications, isCopyingStreamId, mainStreams, setWorking]); const detectSegments = useCallback(async ({ name, workingText, errorText, fn }) => { if (!filePath) return; @@ -2611,31 +2613,33 @@ const App = memo(() => { isShown={streamsSelectorShown} onCloseComplete={() => setStreamsSelectorShown(false)} > - + {mainStreams && ( + + )} diff --git a/src/StreamsSelector.jsx b/src/StreamsSelector.jsx index e3287240..cdf32bcd 100644 --- a/src/StreamsSelector.jsx +++ b/src/StreamsSelector.jsx @@ -333,7 +333,7 @@ const tableStyle = { fontSize: 14, width: '100%' }; const fileStyle = { marginBottom: 20, padding: 5, minWidth: '100%', overflowX: 'auto' }; const StreamsSelector = memo(({ - mainFilePath, mainFileFormatData, streams: mainFileStreams, mainFileChapters, isCopyingStreamId, toggleCopyStreamId, + mainFilePath, mainFileFormatData, mainFileStreams, mainFileChapters, isCopyingStreamId, toggleCopyStreamId, setCopyStreamIdsForPath, onExtractStreamPress, onExtractAllStreamsPress, allFilesMeta, externalFilesMeta, setExternalFilesMeta, showAddStreamSourceDialog, shortestFlag, setShortestFlag, nonCopiedExtraStreams, customTagsByFile, setCustomTagsByFile, customTagsByStreamId, setCustomTagsByStreamId, @@ -343,8 +343,6 @@ const StreamsSelector = memo(({ const [editingStream, setEditingStream] = useState(); const { t } = useTranslation(); - if (!mainFileStreams) return null; - function getFormatDuration(formatData) { if (!formatData || !formatData.duration) return undefined; const parsed = parseFloat(formatData.duration, 10);