From 076953340f87bd00b4e493c5032f98a5a9360039 Mon Sep 17 00:00:00 2001 From: Felipe Coutinho Date: Tue, 17 Mar 2026 17:09:59 +0000 Subject: [PATCH] =?UTF-8?q?fix(pagadores):=20corrige=20envio=20e=20sele?= =?UTF-8?q?=C3=A7=C3=A3o=20de=20avatar=20no=20di=C3=A1logo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../payers/components/payer-dialog.tsx | 54 +++++++------------ 1 file changed, 18 insertions(+), 36 deletions(-) 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}