import clsx from 'clsx'; import { t } from 'i18next'; import { forwardRef, ReactNode } from 'react'; import styles from './player-button.module.css'; import { ActionIcon, ActionIconProps } from '/@/shared/components/action-icon/action-icon'; import { Tooltip, TooltipProps } from '/@/shared/components/tooltip/tooltip'; interface PlayerButtonProps extends Omit { icon: ReactNode; isActive?: boolean; tooltip?: Omit; variant: 'main' | 'secondary' | 'tertiary'; } export const PlayerButton = forwardRef( ({ icon, isActive, tooltip, variant, ...rest }: PlayerButtonProps, ref) => { if (tooltip) { return ( { e.stopPropagation(); rest.onClick?.(e); }} variant="subtle" > {icon} ); } return ( { e.stopPropagation(); rest.onClick?.(e); }} variant="subtle" > {icon} ); }, ); interface PlayButtonProps extends Omit { isPaused?: boolean; } export const PlayButton = forwardRef( ({ isPaused, onClick, ...props }: PlayButtonProps, ref) => { return ( { e.stopPropagation(); onClick?.(e); }} ref={ref} tooltip={{ label: isPaused ? (t('player.play', { postProcess: 'sentenceCase' }) as string) : (t('player.pause', { postProcess: 'sentenceCase' }) as string), }} {...props} /> ); }, );