diff --git a/src/features/payers/components/payer-dialog.tsx b/src/features/payers/components/payer-dialog.tsx index f0bb772..9fdd9e6 100644 --- a/src/features/payers/components/payer-dialog.tsx +++ b/src/features/payers/components/payer-dialog.tsx @@ -37,6 +37,8 @@ import { getAvatarSrc } from "@/shared/lib/payers/utils"; import { StatusSelectContent } from "./payer-select-items"; import type { Payer, PayerFormValues } from "./types"; +type PayerCreatePayload = Parameters[0]; + interface PayerDialogProps { mode: "create" | "update"; trigger?: React.ReactNode; @@ -93,10 +95,11 @@ export function PayerDialog({ useFormState(initialState); const availableAvatars = useMemo(() => { - const set = new Set(); - avatarOptions.forEach((avatar) => set.add(avatar)); - set.add(initialState.avatarUrl); - set.add(DEFAULT_PAYER_AVATAR); + const set = new Set([ + ...avatarOptions, + initialState.avatarUrl, + DEFAULT_PAYER_AVATAR, + ]); return Array.from(set).sort((a, b) => a.localeCompare(b, "pt-BR", { sensitivity: "base" }), ); @@ -110,8 +113,6 @@ export function PayerDialog({ } }, [dialogOpen, initialState, resetForm]); - type PayerCreatePayload = Parameters[0]; - const handleSubmit = (event: React.FormEvent) => { event.preventDefault(); setErrorMessage(null); @@ -135,29 +136,10 @@ export function PayerDialog({ }; startTransition(async () => { - if (mode === "create") { - const result = await createPayerAction(payload); - - if (result.success) { - toast.success(result.message); - setDialogOpen(false); - resetForm(initialState); - return; - } - - setErrorMessage(result.error); - toast.error(result.error); - return; - } - - if (!payerId) { - return; - } - - const result = await updatePayerAction({ - id: payerId, - ...payload, - }); + const result = + mode === "create" + ? await createPayerAction(payload) + : await updatePayerAction({ id: payerId ?? "", ...payload }); if (result.success) { toast.success(result.message); @@ -189,7 +171,7 @@ export function PayerDialog({
-
+
@@ -244,7 +226,7 @@ export function PayerDialog({
-
+
-
+
-
+
{availableAvatars.map((avatar) => { @@ -287,13 +269,13 @@ export function PayerDialog({ alt={`Avatar ${avatar}`} width={40} height={40} - className="size-12 rounded-full object-cove hover:scale-110 transition-transform duration-200" + className="size-12 rounded-full object-cover hover:scale-110 transition-transform duration-200" /> ); })}
-
+
@@ -305,7 +287,7 @@ export function PayerDialog({ />
-
+ {errorMessage ? (

{errorMessage}