diff --git a/apps/web/app/(app)/[emailAccountId]/assistant/settings/MultiRuleSetting.tsx b/apps/web/app/(app)/[emailAccountId]/assistant/settings/MultiRuleSetting.tsx index e03b4a9f58..357743aad3 100644 --- a/apps/web/app/(app)/[emailAccountId]/assistant/settings/MultiRuleSetting.tsx +++ b/apps/web/app/(app)/[emailAccountId]/assistant/settings/MultiRuleSetting.tsx @@ -1,5 +1,6 @@ "use client"; +import { useCallback } from "react"; import { Toggle } from "@/components/Toggle"; import { enableMultiRuleSelectionAction } from "@/utils/actions/rule"; import { toastError } from "@/components/Toast"; @@ -19,6 +20,7 @@ export function MultiRuleSetting() { mutate(); }, onError: (error) => { + mutate(); toastError({ description: `There was an error: ${error.error.serverError || "Unknown error"}`, }); @@ -28,6 +30,21 @@ export function MultiRuleSetting() { const enabled = data?.multiRuleSelectionEnabled ?? false; + const handleToggle = useCallback( + (enable: boolean) => { + if (!data) return; + + const optimisticData = { + ...data, + multiRuleSelectionEnabled: enable, + }; + mutate(optimisticData, false); + + execute({ enable }); + }, + [data, mutate, execute], + ); + return ( execute({ enable })} + onChange={handleToggle} disabled={isLoading} /> diff --git a/apps/web/app/(app)/[emailAccountId]/assistant/settings/ReferralSignatureSetting.tsx b/apps/web/app/(app)/[emailAccountId]/assistant/settings/ReferralSignatureSetting.tsx index e405f671ac..b4b0734249 100644 --- a/apps/web/app/(app)/[emailAccountId]/assistant/settings/ReferralSignatureSetting.tsx +++ b/apps/web/app/(app)/[emailAccountId]/assistant/settings/ReferralSignatureSetting.tsx @@ -25,6 +25,7 @@ export function ReferralSignatureSetting() { }); }, onError: (error) => { + mutate(); toastError({ description: error.error.serverError || @@ -38,10 +39,18 @@ export function ReferralSignatureSetting() { ); const handleToggle = useCallback( - async (enabled: boolean) => { + (enabled: boolean) => { + if (!data) return; + + const optimisticData = { + ...data, + includeReferralSignature: enabled, + }; + mutate(optimisticData, false); + execute({ enabled }); }, - [execute], + [data, mutate, execute], ); if (env.NEXT_PUBLIC_DISABLE_REFERRAL_SIGNATURE) { diff --git a/version.txt b/version.txt index e7a3a8850d..76e9b418a3 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -v2.17.34 +v2.17.35