import { useForm } from 'react-hook-form'; import { useEffect } from 'react'; import { PreferencesSchema } from '~common/schemas'; import zodResolver from '~renderer/utils/zodResolver'; import { api } from '~renderer/utils/api'; import TextButton from './styled/TextButton'; import FilePickerInput from './form/FilePickerInput'; import CloseButton from './styled/CloseButton'; type Props = { close: () => void }; const ClientDirDialog = ({ close }: Props) => { const { data: pref } = api.preferences.get.useQuery(); const setPref = api.preferences.set.useMutation(); const isValidClientDir = api.preferences.isValidClientDir.useQuery( pref?.clientDir, { enabled: !!pref?.isPortable } ); const verify = api.updater.verify.useMutation(); const { register, handleSubmit, watch, formState, setValue, setError, reset } = useForm({ defaultValues: { clientDir: pref?.clientDir ?? '' }, resolver: zodResolver(PreferencesSchema.pick({ clientDir: true })) }); useEffect(() => { pref && reset(pref); }, [reset, pref]); if (pref?.isPortable) { return (
); } return ( ); }; export default ClientDirDialog;