From ed5afe4b2194aeaaa3904e88c3f45cb3eb5ae215 Mon Sep 17 00:00:00 2001 From: Nora Date: Fri, 26 Jun 2026 05:53:17 -0600 Subject: [PATCH] =?UTF-8?q?fix:=20react-doctor=20exhaustive-deps=203?= =?UTF-8?q?=E2=86=920,=20prefer-use-effect-event=203=E2=86=920=20(useEffec?= =?UTF-8?q?tEvent=20for=20modal=20cancel=20handlers),=20role-supports-aria?= =?UTF-8?q?-props=203=E2=86=920=20(aria-pressed/aria-current=20on=20button?= =?UTF-8?q?s)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/admin/AbandonedCartDashboard.tsx | 10 +++++++--- src/components/admin/BrandSelector.tsx | 4 ++-- src/components/admin/CommandPalette.tsx | 2 +- src/components/admin/ProductFormModal.tsx | 10 +++++++--- src/components/admin/ProductsClient.tsx | 10 +++++++--- src/components/route-trace/StickerPreviewModal.tsx | 10 +++++++--- src/components/wholesale/DepositModal.tsx | 10 +++++++--- src/components/wholesale/OrderDetailsModal.tsx | 10 +++++++--- 8 files changed, 45 insertions(+), 21 deletions(-) diff --git a/src/components/admin/AbandonedCartDashboard.tsx b/src/components/admin/AbandonedCartDashboard.tsx index ef07496..83251dd 100644 --- a/src/components/admin/AbandonedCartDashboard.tsx +++ b/src/components/admin/AbandonedCartDashboard.tsx @@ -1,6 +1,6 @@ "use client"; -import { useState, useCallback, useEffect, useRef } from "react"; +import { useState, useCallback, useEffect, useRef, useEffectEvent } from "react"; import { getAbandonedCarts, manuallyCloseAbandonedCart, resendAbandonedCartEmail, type AbandonedCart } from "@/actions/email-automation/abandoned-cart"; type Props = { brandId: string }; @@ -197,6 +197,10 @@ export default function AbandonedCartDashboard({ brandId }: Props) { function CartDetailModal({ cart, onClose }: { cart: AbandonedCart | null; onClose: () => void }) { const dialogRef = useRef(null); + const onCloseEvent = useEffectEvent(() => { + onClose(); + }); + useEffect(() => { const dialog = dialogRef.current; if (!dialog) return; @@ -204,13 +208,13 @@ function CartDetailModal({ cart, onClose }: { cart: AbandonedCart | null; onClos if (!cart && dialog.open) dialog.close(); const onCancel = (e: Event) => { e.preventDefault(); - onClose(); + onCloseEvent(); }; dialog.addEventListener("cancel", onCancel); return () => { dialog.removeEventListener("cancel", onCancel); }; - }, [cart, onClose]); + }, [cart]); if (!cart) return null; diff --git a/src/components/admin/BrandSelector.tsx b/src/components/admin/BrandSelector.tsx index 660f472..93c82cd 100644 --- a/src/components/admin/BrandSelector.tsx +++ b/src/components/admin/BrandSelector.tsx @@ -152,7 +152,7 @@ export default function BrandSelector({