fix: trigger validation on mount

This commit is contained in:
Simon Emanuelsson
2024-08-23 13:02:26 +02:00
parent 68be3275cf
commit eb98059abb

View File

@@ -8,6 +8,7 @@ import { usePhoneInput } from "react-international-phone"
import { useIntl } from "react-intl" import { useIntl } from "react-intl"
import { profile } from "@/constants/routes/myPages" import { profile } from "@/constants/routes/myPages"
import { trpc } from "@/lib/trpc/client"
import { editProfile } from "@/actions/editProfile" import { editProfile } from "@/actions/editProfile"
import Button from "@/components/TempDesignSystem/Button" import Button from "@/components/TempDesignSystem/Button"
@@ -33,6 +34,7 @@ export default function Form({ user }: EditFormProps) {
const router = useRouter() const router = useRouter()
const params = useParams() const params = useParams()
const lang = params.lang as Lang const lang = params.lang as Lang
const utils = trpc.useUtils()
/** /**
* RHF isValid defaults to false and never * RHF isValid defaults to false and never
* changes when JS is disabled, therefore * changes when JS is disabled, therefore
@@ -69,6 +71,7 @@ export default function Form({ user }: EditFormProps) {
resolver: zodResolver(editProfileSchema), resolver: zodResolver(editProfileSchema),
reValidateMode: "onChange", reValidateMode: "onChange",
}) })
const trigger = methods.trigger
async function handleSubmit(data: EditProfileSchema) { async function handleSubmit(data: EditProfileSchema) {
const response = await editProfile(data) const response = await editProfile(data)
@@ -89,11 +92,7 @@ export default function Form({ user }: EditFormProps) {
toast.success( toast.success(
intl.formatMessage({ id: "Successfully updated profile!" }) intl.formatMessage({ id: "Successfully updated profile!" })
) )
/** utils.user.get.invalidate()
* TODO: Toaster?
* Design only has toasters for credit cards
* and membership cards
*/
router.push(profile[lang]) router.push(profile[lang])
break break
} }
@@ -103,6 +102,10 @@ export default function Form({ user }: EditFormProps) {
setIsValid(methods.formState.isValid) setIsValid(methods.formState.isValid)
}, [setIsValid, methods.formState.isValid]) }, [setIsValid, methods.formState.isValid])
useEffect(() => {
trigger()
}, [trigger])
return ( return (
<section className={styles.container}> <section className={styles.container}>
<hgroup className={styles.title}> <hgroup className={styles.title}>