'use server'; import { redirect } from 'next/navigation'; import { updateCustomer } from '@lib/data/customer'; import { AccountSubmitData, createAuthApi } from '@kit/auth/api'; import { enhanceAction } from '@kit/next/actions'; import { getSupabaseServerClient } from '@kit/supabase/server-client'; import { pathsConfig } from '@kit/shared/config'; import { UpdateAccountSchema } from '../schemas/update-account.schema'; 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); } try { await updateCustomer({ first_name: params.firstName, last_name: params.lastName, phone: params.phone, }); } catch (e) { console.error("Failed to update Medusa customer", e); } const hasUnseenMembershipConfirmation = await api.hasUnseenMembershipConfirmation(); if (hasUnseenMembershipConfirmation) { redirect(pathsConfig.auth.membershipConfirmation); } else { redirect(pathsConfig.app.selectPackage); } }, { schema: UpdateAccountSchema, }, );