mirror of
https://github.com/p-stream/p-stream.git
synced 2026-05-12 11:10:57 +00:00
50 lines
1.4 KiB
TypeScript
50 lines
1.4 KiB
TypeScript
import { useCallback } from "react";
|
|
|
|
import { Icons } from "@/components/Icon";
|
|
import { VideoPlayerButton } from "@/components/player/internals/Button";
|
|
import { usePlayerStore } from "@/stores/player/store";
|
|
import { usePreferencesStore } from "@/stores/preferences";
|
|
|
|
export function SkipForward(props: {
|
|
iconSizeClass?: string;
|
|
inControl: boolean;
|
|
}) {
|
|
const display = usePlayerStore((s) => s.display);
|
|
const time = usePlayerStore((s) => s.progress.time);
|
|
const enableDoubleClickToSeek = usePreferencesStore(
|
|
(s) => s.enableDoubleClickToSeek,
|
|
);
|
|
const commit = useCallback(() => {
|
|
display?.setTime(time + 10);
|
|
}, [display, time]);
|
|
if (!props.inControl || enableDoubleClickToSeek) return null;
|
|
return (
|
|
<VideoPlayerButton
|
|
iconSizeClass={props.iconSizeClass}
|
|
onClick={commit}
|
|
icon={Icons.SKIP_FORWARD}
|
|
/>
|
|
);
|
|
}
|
|
|
|
export function SkipBackward(props: {
|
|
iconSizeClass?: string;
|
|
inControl: boolean;
|
|
}) {
|
|
const display = usePlayerStore((s) => s.display);
|
|
const time = usePlayerStore((s) => s.progress.time);
|
|
const enableDoubleClickToSeek = usePreferencesStore(
|
|
(s) => s.enableDoubleClickToSeek,
|
|
);
|
|
const commit = useCallback(() => {
|
|
display?.setTime(time - 10);
|
|
}, [display, time]);
|
|
if (!props.inControl || enableDoubleClickToSeek) return null;
|
|
return (
|
|
<VideoPlayerButton
|
|
iconSizeClass={props.iconSizeClass}
|
|
onClick={commit}
|
|
icon={Icons.SKIP_BACKWARD}
|
|
/>
|
|
);
|
|
}
|