import type { ReactNode } from 'react'; import { AlertTriangle } from 'lucide-react'; import { SettingsCallout } from './SettingsCallout'; import type { NodeSettingsLoadPhase } from './useNodeSettingsLoad'; /** Persistent error state when node settings failed to load for the active node. */ export function SettingsLoadError() { return ( } title="Could not load settings" subtitle="Settings for this node could not be loaded. Save stays unavailable until loading succeeds." /> ); } /** * Renders content only after an authoritative load for the active node. * Mid-switch / in-flight loads show `skeleton`; a failed load shows SettingsLoadError. */ export function SettingsLoadGate({ phase, isCurrentNodeLoaded, skeleton, children, }: { phase: NodeSettingsLoadPhase; isCurrentNodeLoaded: boolean; skeleton: ReactNode; children: ReactNode; }) { if (isCurrentNodeLoaded) return children; if (phase === 'error') return ; return skeleton; }