feat: open edit modal immediately after approving a pending device

This commit is contained in:
Pouzor
2026-03-08 14:00:03 +01:00
parent f156d9dd95
commit c6fe984511
2 changed files with 6 additions and 3 deletions
+1
View File
@@ -263,6 +263,7 @@ export default function App() {
onAddNode={() => setAddNodeOpen(true)}
onScan={() => setScanConfigOpen(true)}
onSave={handleSave}
onNodeApproved={setEditNodeId}
/>
<div className="flex flex-col flex-1 min-w-0">
<Toolbar
+5 -3
View File
@@ -29,9 +29,10 @@ interface SidebarProps {
onAddNode: () => 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<SidebarView>('canvas')
const { nodes, hasUnsavedChanges } = useCanvasStore()
@@ -90,7 +91,7 @@ export function Sidebar({ onAddNode, onScan, onSave }: SidebarProps) {
{/* View content (only when expanded) */}
{!collapsed && activeView !== 'canvas' && (
<div className="flex-1 min-h-0 overflow-y-auto border-t border-border">
{activeView === 'pending' && <PendingDevicesPanel />}
{activeView === 'pending' && <PendingDevicesPanel onNodeApproved={onNodeApproved} />}
{activeView === 'hidden' && <HiddenDevicesPanel />}
{activeView === 'history' && <ScanHistoryPanel />}
</div>
@@ -136,7 +137,7 @@ export function Sidebar({ onAddNode, onScan, onSave }: SidebarProps) {
)
}
function PendingDevicesPanel() {
function PendingDevicesPanel({ onNodeApproved }: { onNodeApproved: (nodeId: string) => void }) {
const [devices, setDevices] = useState<PendingDevice[]>([])
const [loading, setLoading] = useState(false)
const [selected, setSelected] = useState<PendingDevice | null>(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')
}