From cb45febdc28474c061f18ff07d1772e9cfa5014f Mon Sep 17 00:00:00 2001 From: MHSanaei Date: Fri, 22 May 2026 03:49:05 +0200 Subject: [PATCH] Memoize compactAdvancedJson and update deps Wrap compactAdvancedJson in useCallback (dependent on messageApi) and add it to the dependency array of applyAdvancedJsonToBasic. This ensures a stable function reference for correct dependency tracking and avoids stale closures/unnecessary re-renders in InboundFormModal.tsx. --- frontend/src/pages/inbounds/InboundFormModal.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/frontend/src/pages/inbounds/InboundFormModal.tsx b/frontend/src/pages/inbounds/InboundFormModal.tsx index ef3ad247..b75c0413 100644 --- a/frontend/src/pages/inbounds/InboundFormModal.tsx +++ b/frontend/src/pages/inbounds/InboundFormModal.tsx @@ -659,14 +659,14 @@ export default function InboundFormModal({ } }, [messageApi]); - const compactAdvancedJson = (raw: string, fallback: string, label: string) => { + const compactAdvancedJson = useCallback((raw: string, fallback: string, label: string) => { try { return JSON.stringify(JSON.parse(raw || fallback)); } catch (e) { messageApi.error(`${label} JSON invalid: ${(e as Error).message}`); throw e; } - }; + }, [messageApi]); const applyAdvancedJsonToBasic = useCallback((): boolean => { const ib = inboundRef.current; @@ -888,7 +888,7 @@ export default function InboundFormModal({ } finally { setSaving(false); } - }, [canEnableStream, t, mode, dbInbound, isFallbackHost, saveFallbacks, onSaved, onClose]); + }, [canEnableStream, compactAdvancedJson, t, mode, dbInbound, isFallbackHost, saveFallbacks, onSaved, onClose]); const protocolSnapshot = inboundRef.current?.protocol; const streamSnapshot = JSON.stringify(inboundRef.current?.stream?.toJson?.() || {});