'use server'; import { redirect } from 'next/navigation'; import { createAuthApi } from '@kit/auth/api'; import { enhanceAction } from '@kit/next/actions'; import { getSupabaseServerClient } from '@kit/supabase/server-client'; import pathsConfig from '~/config/paths.config'; import { UpdateAccountSchema } from '../schemas/update-account.schema'; export interface AccountSubmitData { firstName: string; lastName: string; personalCode: string; email: string; phone?: string; city?: string; weight: number | null; height: number | null; userConsent: boolean; } export const onUpdateAccount = enhanceAction( async (params: AccountSubmitData) => { const client = getSupabaseServerClient(); const api = createAuthApi(client); try { await api.updateAccount(params); console.log('SUCCESS', pathsConfig.auth.updateAccountSuccess); } catch (err: unknown) { if (err instanceof Error) { console.warn('On update account error: ' + err.message); } console.warn('On update account error: ', err); } const hasUnseenMembershipConfirmation = await api.hasUnseenMembershipConfirmation(); if (hasUnseenMembershipConfirmation) { redirect(pathsConfig.auth.membershipConfirmation); } else { redirect(pathsConfig.app.selectPackage); } }, { schema: UpdateAccountSchema, }, );