import { useEffect } from "react"; import { useMutation, useQuery } from "blitz"; import { useForm } from "react-hook-form"; import setPhoneNumber from "../../mutations/set-phone-number"; import getAvailablePhoneNumbers from "../../queries/get-available-phone-numbers"; import useCurrentUser from "app/core/hooks/use-current-user"; import useUserPhoneNumber from "app/core/hooks/use-current-phone-number"; import Button from "../button"; import SettingsSection from "../settings-section"; type Form = { phoneNumberSid: string; }; export default function PhoneNumberForm() { const { hasFilledTwilioCredentials } = useCurrentUser(); const currentPhoneNumber = useUserPhoneNumber(); const { register, handleSubmit, setValue, formState: { isSubmitting }, } = useForm
(); const [setPhoneNumberMutation] = useMutation(setPhoneNumber); const [availablePhoneNumbers] = useQuery(getAvailablePhoneNumbers, {}, { enabled: hasFilledTwilioCredentials }); useEffect(() => { if (currentPhoneNumber) { setValue("phoneNumberSid", currentPhoneNumber.id); } }, [currentPhoneNumber]); const onSubmit = handleSubmit(async ({ phoneNumberSid }) => { if (isSubmitting) { return; } await setPhoneNumberMutation({ phoneNumberSid }); }); if (!hasFilledTwilioCredentials) { return null; } return ( } >
); }