From f6de7d17702276cefb6e22172ba8ece01ebfc302 Mon Sep 17 00:00:00 2001 From: findthelorax Date: Mon, 20 Apr 2026 00:13:07 -0400 Subject: [PATCH] fix: removed setState within an effect, responsibility moved to parent key --- frontend/src/App.tsx | 1 + frontend/src/components/modals/NodeModal.tsx | 10 +--------- .../src/components/modals/__tests__/NodeModal.test.tsx | 6 +++--- 3 files changed, 5 insertions(+), 12 deletions(-) diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index fdd1b1c..2a2717b 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -422,6 +422,7 @@ export default function App() { setAddNodeOpen(false)} onSubmit={handleAddNode} diff --git a/frontend/src/components/modals/NodeModal.tsx b/frontend/src/components/modals/NodeModal.tsx index 0895f77..5caa1cd 100644 --- a/frontend/src/components/modals/NodeModal.tsx +++ b/frontend/src/components/modals/NodeModal.tsx @@ -1,4 +1,4 @@ -import { createElement, useEffect, useState } from 'react' +import { createElement, useState } from 'react' import { RotateCcw, ChevronDown } from 'lucide-react' import { Dialog, DialogContent, DialogHeader, DialogTitle } from '@/components/ui/dialog' import { Button } from '@/components/ui/button' @@ -48,14 +48,6 @@ export function NodeModal({ open, onClose, onSubmit, initial, title = 'Add Node' const [iconPickerOpen, setIconPickerOpen] = useState(false) const [labelError, setLabelError] = useState(false) - useEffect(() => { - if (!open) return - setForm({ ...DEFAULT_DATA, ...initial }) - setIconSearch('') - setIconPickerOpen(false) - setLabelError(false) - }, [open, initial]) - const set = (key: keyof NodeData, value: unknown) => setForm((f) => ({ ...f, [key]: value })) diff --git a/frontend/src/components/modals/__tests__/NodeModal.test.tsx b/frontend/src/components/modals/__tests__/NodeModal.test.tsx index ffe9b2c..7a8eee7 100644 --- a/frontend/src/components/modals/__tests__/NodeModal.test.tsx +++ b/frontend/src/components/modals/__tests__/NodeModal.test.tsx @@ -134,12 +134,12 @@ describe('NodeModal', () => { const onClose = vi.fn() const onSubmit = vi.fn() - const { rerender } = render() + const { rerender } = render() fireEvent.change(screen.getByPlaceholderText('My Server'), { target: { value: 'Temp Node' } }) fireEvent.change(screen.getByPlaceholderText('server.lan'), { target: { value: 'temp.local' } }) - rerender() - rerender() + rerender() + rerender() expect((screen.getByPlaceholderText('My Server') as HTMLInputElement).value).toBe('') expect((screen.getByPlaceholderText('server.lan') as HTMLInputElement).value).toBe('')