From c70a0845a8f0002264abafc8b56ff2096134741f Mon Sep 17 00:00:00 2001 From: Nicolas Meienberger Date: Thu, 12 Oct 2023 20:43:37 +0200 Subject: [PATCH] fix(settings): app crashing when restarting --- src/app/actions/settings/disable-totp.ts | 3 +++ src/app/actions/settings/setup-totp-action.ts | 3 +++ src/client/components/hoc/StatusProvider/StatusProvider.tsx | 2 +- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/app/actions/settings/disable-totp.ts b/src/app/actions/settings/disable-totp.ts index 740354c7..08c86b05 100644 --- a/src/app/actions/settings/disable-totp.ts +++ b/src/app/actions/settings/disable-totp.ts @@ -5,6 +5,7 @@ import { action } from '@/lib/safe-action'; import { getUserFromCookie } from '@/server/common/session.helpers'; import { AuthServiceClass } from '@/server/services/auth/auth.service'; import { db } from '@/server/db'; +import { revalidatePath } from 'next/cache'; import { handleActionError } from '../utils/handle-action-error'; const input = z.object({ password: z.string() }); @@ -23,6 +24,8 @@ export const disableTotpAction = action(input, async ({ password }) => { const authService = new AuthServiceClass(db); await authService.disableTotp({ userId: user.id, password }); + revalidatePath('/settings'); + return { success: true }; } catch (e) { return handleActionError(e); diff --git a/src/app/actions/settings/setup-totp-action.ts b/src/app/actions/settings/setup-totp-action.ts index a1012e92..57360d7c 100644 --- a/src/app/actions/settings/setup-totp-action.ts +++ b/src/app/actions/settings/setup-totp-action.ts @@ -5,6 +5,7 @@ import { action } from '@/lib/safe-action'; import { getUserFromCookie } from '@/server/common/session.helpers'; import { AuthServiceClass } from '@/server/services/auth/auth.service'; import { db } from '@/server/db'; +import { revalidatePath } from 'next/cache'; import { handleActionError } from '../utils/handle-action-error'; const input = z.object({ totpCode: z.string() }); @@ -23,6 +24,8 @@ export const setupTotpAction = action(input, async ({ totpCode }) => { const authService = new AuthServiceClass(db); await authService.setupTotp({ userId: user.id, totpCode }); + revalidatePath('/settings'); + return { success: true }; } catch (e) { return handleActionError(e); diff --git a/src/client/components/hoc/StatusProvider/StatusProvider.tsx b/src/client/components/hoc/StatusProvider/StatusProvider.tsx index 077ecb5a..a2b9d462 100644 --- a/src/client/components/hoc/StatusProvider/StatusProvider.tsx +++ b/src/client/components/hoc/StatusProvider/StatusProvider.tsx @@ -20,7 +20,7 @@ export const StatusProvider: React.FC = ({ children }) => { const getStatusMutation = useAction(getStatusAction, { onSuccess: (data) => { - if (data.success) { + if (data?.success) { setStatus(data.status); } },