import { useMemo } from "react" import { getCorrectTextColor } from "renderer/helpers/correct-text-color"; import { cn } from "renderer/helpers/css-class.helpers"; import { useConstant } from "renderer/hooks/use-constant.hook"; import { useThemeColor } from "renderer/hooks/use-theme-color.hook"; type Props = { checked?: boolean; className?: string; classNames?: { container?: string; dot?: string; active?: string; inactive?: string; } bgColor?: string; onChange?: (isChecked: boolean) => void; } export function ToogleSwitch({ checked, className, classNames, bgColor, onChange }: Readonly) { const uuid = useConstant(() => crypto.randomUUID()); const { firstColor } = useThemeColor(); const backgroundColor = useMemo(() => bgColor ?? firstColor, [bgColor, firstColor]); const dotColor = useMemo(() => { return getCorrectTextColor(backgroundColor); }, [backgroundColor]); const textColor = useMemo(() => { return getCorrectTextColor(dotColor) }, [dotColor]); const handleCheckboxChange = () => { onChange?.(!checked); } return ( ) }