Files
mtdb_movie/common/resources/client/player/ui/controls/seeking/seek-button.tsx
maher 703f50a09d
Some checks failed
Build / run (push) Has been cancelled
first commit
2025-10-29 11:42:25 +01:00

47 lines
1.3 KiB
TypeScript
Executable File

import {usePlayerStore} from '@common/player/hooks/use-player-store';
import {useTrans} from '@common/i18n/use-trans';
import {message} from '@common/i18n/message';
import {usePlayerActions} from '@common/player/hooks/use-player-actions';
import {IconButton} from '@common/ui/buttons/icon-button';
import {ButtonProps} from '@common/ui/buttons/button';
import {ReactElement} from 'react';
import {SvgIconProps} from '@common/icons/svg-icon';
import {MediaSeekForward15Icon} from '@common/icons/media/media-seek-forward15';
interface Props {
color?: ButtonProps['color'];
size?: ButtonProps['size'];
iconSize?: ButtonProps['size'];
className?: string;
seconds?: number | string;
children?: ReactElement<SvgIconProps>;
}
export function SeekButton({
size = 'md',
iconSize,
color,
className,
seconds = '+15',
children,
}: Props) {
const {trans} = useTrans();
const player = usePlayerActions();
const playerReady = usePlayerStore(s => s.providerReady);
return (
<IconButton
disabled={!playerReady}
aria-label={trans(message('Next'))}
size={size}
color={color}
iconSize={iconSize}
className={className}
onClick={() => {
player.seek(seconds);
}}
>
{children || <MediaSeekForward15Icon />}
</IconButton>
);
}