|
|
|
|
@ -1,4 +1,4 @@
|
|
|
|
|
import { memo, useState, useMemo, useCallback, Dispatch, SetStateAction, CSSProperties, ReactNode, ChangeEventHandler } from 'react';
|
|
|
|
|
import { memo, useState, useMemo, useCallback, Dispatch, SetStateAction, CSSProperties, ReactNode, ChangeEventHandler, DragEventHandler } from 'react';
|
|
|
|
|
|
|
|
|
|
import { FaImage, FaPaperclip, FaVideo, FaVideoSlash, FaFileImport, FaVolumeUp, FaVolumeMute, FaBan, FaFileExport } from 'react-icons/fa';
|
|
|
|
|
import { GoFileBinary } from 'react-icons/go';
|
|
|
|
|
@ -361,7 +361,7 @@ const fileStyle: CSSProperties = { margin: '1.5em 1em 1.5em 1em', padding: 5, ov
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function StreamsSelector({
|
|
|
|
|
mainFilePath, mainFileFormatData, mainFileStreams, mainFileChapters, isCopyingStreamId, toggleCopyStreamId, setCopyStreamIdsForPath, onExtractStreamPress, onExtractAllStreamsPress, allFilesMeta, externalFilesMeta, setExternalFilesMeta, showAddStreamSourceDialog, shortestFlag, setShortestFlag, nonCopiedExtraStreams, customTagsByFile, setCustomTagsByFile, paramsByStreamId, updateStreamParams, formatTimecode, loadSubtitleTrackToSegments, toggleCopyStreamIds, changeEnabledStreamsFilter, toggleCopyAllStreamsForPath,
|
|
|
|
|
mainFilePath, mainFileFormatData, mainFileStreams, mainFileChapters, isCopyingStreamId, toggleCopyStreamId, setCopyStreamIdsForPath, onExtractStreamPress, onExtractAllStreamsPress, allFilesMeta, externalFilesMeta, setExternalFilesMeta, showAddStreamSourceDialog, shortestFlag, setShortestFlag, nonCopiedExtraStreams, customTagsByFile, setCustomTagsByFile, paramsByStreamId, updateStreamParams, formatTimecode, loadSubtitleTrackToSegments, toggleCopyStreamIds, changeEnabledStreamsFilter, toggleCopyAllStreamsForPath, onStreamSourceFileDrop,
|
|
|
|
|
}: {
|
|
|
|
|
mainFilePath: string,
|
|
|
|
|
mainFileFormatData: FFprobeFormat | undefined,
|
|
|
|
|
@ -388,6 +388,7 @@ function StreamsSelector({
|
|
|
|
|
toggleCopyStreamIds: (path: string, filter: (a: FFprobeStream) => boolean) => void,
|
|
|
|
|
changeEnabledStreamsFilter: () => void,
|
|
|
|
|
toggleCopyAllStreamsForPath: (path: string) => void,
|
|
|
|
|
onStreamSourceFileDrop: DragEventHandler<HTMLDivElement>,
|
|
|
|
|
}) {
|
|
|
|
|
const [editingFile, setEditingFile] = useState<string>();
|
|
|
|
|
const [editingStream, setEditingStream] = useState<EditingStream>();
|
|
|
|
|
@ -421,7 +422,7 @@ function StreamsSelector({
|
|
|
|
|
<>
|
|
|
|
|
<p style={{ margin: '.5em 2em .5em 1em' }}>{t('Click to select which tracks to keep when exporting:')}</p>
|
|
|
|
|
|
|
|
|
|
<div style={fileStyle}>
|
|
|
|
|
<div style={fileStyle} onDrop={onStreamSourceFileDrop}>
|
|
|
|
|
{/* We only support editing main file metadata for now */}
|
|
|
|
|
<FileHeading onInfoClick={onInfoClick} path={mainFilePath} formatData={mainFileFormatData} chapters={mainFileChapters} onEditClick={() => setEditingFile(mainFilePath)} toggleCopyAllStreams={() => toggleCopyAllStreamsForPath(mainFilePath)} onExtractAllStreamsPress={onExtractAllStreamsPress} changeEnabledStreamsFilter={changeEnabledStreamsFilter} />
|
|
|
|
|
<table className={styles['table']}>
|
|
|
|
|
|