From c6fe984511427670d88b688d161c4c6085efa167 Mon Sep 17 00:00:00 2001 From: Pouzor Date: Sun, 8 Mar 2026 14:00:03 +0100 Subject: [PATCH] feat: open edit modal immediately after approving a pending device --- frontend/src/App.tsx | 1 + frontend/src/components/panels/Sidebar.tsx | 8 +++++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index 0283974..65f4ddd 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -263,6 +263,7 @@ export default function App() { onAddNode={() => setAddNodeOpen(true)} onScan={() => setScanConfigOpen(true)} onSave={handleSave} + onNodeApproved={setEditNodeId} />
void onScan: () => void onSave: () => void + onNodeApproved: (nodeId: string) => void } -export function Sidebar({ onAddNode, onScan, onSave }: SidebarProps) { +export function Sidebar({ onAddNode, onScan, onSave, onNodeApproved }: SidebarProps) { const [collapsed, setCollapsed] = useState(false) const [activeView, setActiveView] = useState('canvas') const { nodes, hasUnsavedChanges } = useCanvasStore() @@ -90,7 +91,7 @@ export function Sidebar({ onAddNode, onScan, onSave }: SidebarProps) { {/* View content (only when expanded) */} {!collapsed && activeView !== 'canvas' && (
- {activeView === 'pending' && } + {activeView === 'pending' && } {activeView === 'hidden' && } {activeView === 'history' && }
@@ -136,7 +137,7 @@ export function Sidebar({ onAddNode, onScan, onSave }: SidebarProps) { ) } -function PendingDevicesPanel() { +function PendingDevicesPanel({ onNodeApproved }: { onNodeApproved: (nodeId: string) => void }) { const [devices, setDevices] = useState([]) const [loading, setLoading] = useState(false) const [selected, setSelected] = useState(null) @@ -180,6 +181,7 @@ function PendingDevicesPanel() { }) toast.success(`Approved ${nodeData.label}`) setDevices((prev) => prev.filter((d) => d.id !== device.id)) + onNodeApproved(nodeId) } catch { toast.error('Failed to approve device') }