import { FloatingCardView } from "@/components/popout/FloatingCard"; import { FloatingView } from "@/components/popout/FloatingView"; import { useFloatingRouter } from "@/hooks/useFloatingRouter"; import { useSettings } from "@/state/settings"; import { useTranslation } from "react-i18next"; import { ChangeEventHandler } from "react"; import { PopoutSection } from "./PopoutUtils"; type SliderProps = { label: string; min: number; max: number; step: number; value: number; valueDisplay?: string; onChange: ChangeEventHandler; stops?: number[]; }; function Slider(params: SliderProps) { const stops = params.stops ?? [Math.floor((params.max + params.min) / 2)]; return (
{stops.map((s) => (
{params.valueDisplay ?? params.value}
); } export function CaptionSettingsPopout(props: { router: ReturnType; prefix: string; }) { // For now, won't add label texts to language files since options are prone to change const { t } = useTranslation(); const { captionSettings, setCaptionBackgroundColor, setCaptionColor, setCaptionDelay, setCaptionFontSize, } = useSettings(); const colors = ["#ffffff", "#00ffff", "#ffff00"]; return ( props.router.navigate("/captions")} /> setCaptionDelay(e.target.valueAsNumber)} stops={[-5, 0, 5]} /> setCaptionFontSize(e.target.valueAsNumber)} /> setCaptionBackgroundColor( `${captionSettings.style.backgroundColor.substring( 0, 7 )}${e.target.valueAsNumber.toString(16)}` ) } />
{colors.map((color) => (
setCaptionColor(e.target.value)} />
))}
); }