Add end clip shortcuts

This commit is contained in:
Codex
2026-04-23 14:53:05 -05:00
parent 5cc4e3feac
commit 3347483092

View File

@@ -15,6 +15,7 @@ import { formatGameTitle, formatMemberName } from "../lib/teamsnapHelpers";
const MEDIA_ACCEPT = const MEDIA_ACCEPT =
".mp3,.m4a,.aac,.wav,.ogg,.oga,.flac,.mp4,.m4v,.mov,audio/*,video/*,application/octet-stream"; ".mp3,.m4a,.aac,.wav,.ogg,.oga,.flac,.mp4,.m4v,.mov,audio/*,video/*,application/octet-stream";
const DEFAULT_CLIP_LENGTH_MS = 30_000; const DEFAULT_CLIP_LENGTH_MS = 30_000;
const END_SHORTCUT_LENGTH_MS = 90_000;
const TRIM_NUDGE_MS = 100; const TRIM_NUDGE_MS = 100;
const TRIM_STEP_MS = 100; const TRIM_STEP_MS = 100;
const TRIM_ZOOM_WINDOW_MS = 3_000; const TRIM_ZOOM_WINDOW_MS = 3_000;
@@ -1274,10 +1275,6 @@ function WalkupClipEditorPanel({
await handleSave(); await handleSave();
} }
function useThirtySecondLength() {
setEndMs(startMs + DEFAULT_CLIP_LENGTH_MS);
}
function handleStartChange(nextStart: number) { function handleStartChange(nextStart: number) {
setStartMs(nextStart); setStartMs(nextStart);
if (nextStart >= endMs) { if (nextStart >= endMs) {
@@ -1554,10 +1551,14 @@ function ClipTrimScrubber({
onStartChange(nextStartMs); onStartChange(nextStartMs);
} }
function nudgeEnd(deltaMs: number) { function setEndToDefaultLength() {
const nextEndMs = Math.max(safeStartMs + 1, safeEndMs + deltaMs); onEndChange(Math.min(Math.max(1, durationMs), safeStartMs + END_SHORTCUT_LENGTH_MS));
setFocusEdge("end");
}
function setEndToSourceEnd() {
onEndChange(Math.max(1, durationMs));
setFocusEdge("end"); setFocusEdge("end");
onEndChange(nextEndMs);
} }
return ( return (
@@ -1608,12 +1609,12 @@ function ClipTrimScrubber({
<div className="clip-waveform-control-header"> <div className="clip-waveform-control-header">
<span>End</span> <span>End</span>
<span className="muted">{formatPlaybackPosition(safeEndMs)}</span> <span className="muted">{formatPlaybackPosition(safeEndMs)}</span>
<div className="clip-waveform-nudges"> <div className="btn-group btn-group-sm" role="group" aria-label="End clip shortcuts">
<button type="button" className="btn btn-outline-secondary btn-sm" onClick={() => nudgeEnd(-TRIM_NUDGE_MS)}> <button type="button" className="btn btn-outline-secondary" onClick={setEndToDefaultLength}>
-{TRIM_NUDGE_MS}ms 1:30
</button> </button>
<button type="button" className="btn btn-outline-secondary btn-sm" onClick={() => nudgeEnd(TRIM_NUDGE_MS)}> <button type="button" className="btn btn-outline-secondary" onClick={setEndToSourceEnd}>
+{TRIM_NUDGE_MS}ms EOF
</button> </button>
</div> </div>
</div> </div>