From bd04a59decc06594b14b429e4e13b3bde84ed381 Mon Sep 17 00:00:00 2001 From: Vaibhav <117663341+7ttp@users.noreply.github.com> Date: Fri, 17 Apr 2026 18:52:24 +0530 Subject: [PATCH] fix: phone provider (#44974) fixes phone provider saves that showed success but did not persist the enabled state (smol regression from the refactor) ## ref: - closes https://github.com/supabase/supabase/issues/44966 ig was introduced by 6b35cc80345d3eea63893bcd2f424d24d753bda5 ## Summary by CodeRabbit * **Bug Fixes** * Automatically clears certain conditional fields when their visibility condition becomes false to avoid stale values. * Preserves input values and registration state for fields removed from the UI (they no longer unregister on hide), improving form continuity during toggles. --- .../interfaces/Auth/AuthProvidersForm/FormField.tsx | 12 ++++++++++-- .../Auth/AuthProvidersForm/ProviderForm.tsx | 2 +- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/apps/studio/components/interfaces/Auth/AuthProvidersForm/FormField.tsx b/apps/studio/components/interfaces/Auth/AuthProvidersForm/FormField.tsx index b923356c29c..2da5f06e915 100644 --- a/apps/studio/components/interfaces/Auth/AuthProvidersForm/FormField.tsx +++ b/apps/studio/components/interfaces/Auth/AuthProvidersForm/FormField.tsx @@ -1,6 +1,7 @@ import { format } from 'date-fns' import { CalendarIcon, ExternalLink } from 'lucide-react' -import { type Control } from 'react-hook-form' +import { useEffect } from 'react' +import { useFormContext, type Control } from 'react-hook-form' import ReactMarkdown from 'react-markdown' import { Button, @@ -53,6 +54,7 @@ const FormField = ({ disabled: disabledProp, readOnly, }: FormFieldProps) => { + const { setValue } = useFormContext() const { description: originalDescription } = properties let description = originalDescription @@ -79,6 +81,12 @@ const FormField = ({ disabled: properties.show == null, }) + useEffect(() => { + if (properties.show?.key != null && !showValue && fieldValue !== '') { + setValue(name, '', { shouldDirty: true }) + } + }, [fieldValue, name, properties.show?.key, setValue, showValue]) + if (properties.show) { if (properties.show.matches) { if (!properties.show.matches.includes(showValue)) { @@ -341,7 +349,7 @@ const FormField = ({ > diff --git a/apps/studio/components/interfaces/Auth/AuthProvidersForm/ProviderForm.tsx b/apps/studio/components/interfaces/Auth/AuthProvidersForm/ProviderForm.tsx index c4602505546..5fc691fac28 100644 --- a/apps/studio/components/interfaces/Auth/AuthProvidersForm/ProviderForm.tsx +++ b/apps/studio/components/interfaces/Auth/AuthProvidersForm/ProviderForm.tsx @@ -165,7 +165,7 @@ export const ProviderForm = ({ config, provider, isActive }: ProviderFormProps) const form = useForm({ defaultValues: INITIAL_VALUES, resolver: zodResolver(provider.validationSchema), - shouldUnregister: true, + shouldUnregister: false, }) useEffect(() => {