disable ui when no file #2609

and don't allow seeking
pull/2575/head
Mikael Finstad 8 months ago
parent 2511118645
commit 2511111103
No known key found for this signature in database
GPG Key ID: 25AB36E3E81CBC26

@ -70,7 +70,8 @@ const InvertCutModeButton = memo(({ invertCutSegments, setInvertCutSegments }: {
// eslint-disable-next-line react/display-name
const CutTimeInput = memo(({ darkMode, cutTime, setCutTime, startTimeOffset, seekAbs, currentCutSeg, isStart, formatTimecode, parseTimecode }: {
const CutTimeInput = memo(({ disabled, darkMode, cutTime, setCutTime, startTimeOffset, seekAbs, currentCutSeg, isStart, formatTimecode, parseTimecode }: {
disabled: boolean,
darkMode: boolean,
cutTime: number | undefined,
setCutTime: (type: 'start' | 'end', v: number | undefined) => void,
@ -229,6 +230,7 @@ const CutTimeInput = memo(({ darkMode, cutTime, setCutTime, startTimeOffset, see
return (
<form onSubmit={handleSubmit}>
<input
disabled={disabled}
style={style}
type="text"
title={isStart ? t('Manually input current segment\'s start time') : t('Manually input current segment\'s end time')}
@ -454,7 +456,7 @@ function BottomBar({
<SetCutpointButton currentCutSeg={currentCutSegOrDefault} side="start" onClick={setCutStart} title={t('Start current segment at current time')} style={{ marginRight: 5 }} />
{!simpleMode && <CutTimeInput darkMode={darkMode} currentCutSeg={currentCutSeg} startTimeOffset={startTimeOffset} seekAbs={seekAbs} cutTime={currentCutSeg?.start} setCutTime={setCutTime} isStart formatTimecode={formatTimecode} parseTimecode={parseTimecode} />}
{!simpleMode && <CutTimeInput disabled={!isFileOpened} darkMode={darkMode} currentCutSeg={currentCutSeg} startTimeOffset={startTimeOffset} seekAbs={seekAbs} cutTime={currentCutSeg?.start} setCutTime={setCutTime} isStart formatTimecode={formatTimecode} parseTimecode={parseTimecode} />}
{keyframesEnabled && (
<IoMdKey
@ -500,7 +502,7 @@ function BottomBar({
/>
)}
{!simpleMode && <CutTimeInput darkMode={darkMode} currentCutSeg={currentCutSeg} startTimeOffset={startTimeOffset} seekAbs={seekAbs} cutTime={currentCutSeg?.end} setCutTime={setCutTime} formatTimecode={formatTimecode} parseTimecode={parseTimecode} />}
{!simpleMode && <CutTimeInput disabled={!isFileOpened} darkMode={darkMode} currentCutSeg={currentCutSeg} startTimeOffset={startTimeOffset} seekAbs={seekAbs} cutTime={currentCutSeg?.end} setCutTime={setCutTime} formatTimecode={formatTimecode} parseTimecode={parseTimecode} />}
<SetCutpointButton currentCutSeg={currentCutSeg} side="end" onClick={setCutEnd} title={t('End current segment at current time')} style={{ marginLeft: 5 }} />

@ -65,6 +65,7 @@ export default ({ filePath }: { filePath: string | undefined }) => {
}, []);
const seekAbs = useCallback((val: number | undefined) => {
if (filePath == null) return;
const video = videoRef.current;
if (video == null || val == null || Number.isNaN(val)) return;
let outVal = val;
@ -73,7 +74,7 @@ export default ({ filePath }: { filePath: string | undefined }) => {
smoothSeek(outVal);
setCommandedTime(outVal);
}, [setCommandedTime, smoothSeek]);
}, [filePath, setCommandedTime, smoothSeek]);
// Relevant time is the player's playback position if we're currently playing - if not, it's the user's commanded time.
const relevantTime = useMemo(() => (playing ? playerTime : commandedTime) || 0, [commandedTime, playerTime, playing]);

Loading…
Cancel
Save