) => {
+ if (e.key !== "Enter") return;
+ e.preventDefault();
+ commitJumpFrame();
+ },
+ [commitJumpFrame],
+ );
+
return (
{formatTime(0)}
- /
- {formatTime(duration)}
+ {timeDisplayMode === "time" ? (
+ <>
+ /
+ {formatTime(duration)}
+ >
+ ) : null}
{/* Seek bar — teal progress fill */}
@@ -256,7 +306,7 @@ export const PlayerControls = memo(function PlayerControls({
aria-valuemin={0}
aria-valuemax={Math.round(duration)}
aria-valuenow={0}
- className="flex-1 h-6 flex items-center cursor-pointer group"
+ className="min-w-[96px] flex-1 h-6 flex items-center cursor-pointer group"
// `touch-action: none` tells the browser we're handling every
// pointer gesture on this element ourselves. Without it, iOS
// Safari consumes horizontal swipes for its own swipe-back-to-
@@ -292,7 +342,7 @@ export const PlayerControls = memo(function PlayerControls({
+
+
+
+
+
+
+
+ {SHORTCUT_HINTS.map((shortcut) => (
+
+ {shortcut.key}
+
+ {shortcut.label}
+
+
+ ))}
+
+
{/* Timeline toggle */}
{onToggleTimeline !== undefined && (