import { RecoilState, useRecoilState } from 'recoil'; import { Switch, InfoHoverCard, ESide } from '@librechat/client'; import { useLocalize } from '~/hooks'; type LocalizeFn = ReturnType; type LocalizeKey = Parameters[0]; interface ToggleSwitchProps { stateAtom: RecoilState; localizationKey: LocalizeKey; hoverCardText?: LocalizeKey; switchId: string; onCheckedChange?: (value: boolean) => void; } const ToggleSwitch: React.FC = ({ stateAtom, localizationKey, hoverCardText, switchId, onCheckedChange, }) => { const [switchState, setSwitchState] = useRecoilState(stateAtom); const localize = useLocalize(); const handleCheckedChange = (value: boolean) => { setSwitchState(value); onCheckedChange?.(value); }; return (
{localize(localizationKey)}
{hoverCardText && }
); }; export default ToggleSwitch;