'use server'; import { redirect } from 'next/navigation'; import { updateCustomer } from '@lib/data/customer'; import { enhanceAction } from '@kit/next/actions'; import { getSupabaseServerClient } from '@kit/supabase/server-client'; import pathsConfig from '~/config/paths.config'; 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); } await updateCustomer({ first_name: params.firstName, last_name: params.lastName, phone: params.phone, }); const hasUnseenMembershipConfirmation = await api.hasUnseenMembershipConfirmation(); if (hasUnseenMembershipConfirmation) { redirect(pathsConfig.auth.membershipConfirmation); } else { redirect(pathsConfig.app.selectPackage); } }, { schema: UpdateAccountSchema, }, );