feat(web): retrofit empty states to shared EmptyState primitive

Replace ad-hoc empty-state markup across Dashboard, TopologyList,
LiveLogs, Attackers, Bounty, AttackerDetail, SwarmHosts, RemoteUpdates
and CommandPalette with the new <EmptyState> component. Themed icons
+ hints improve discoverability; TopologyList and SwarmHosts gain
CTAs to their respective creation flows.
This commit is contained in:
2026-04-22 17:22:07 -04:00
parent de63a0ab5c
commit ecb813ad38
9 changed files with 82 additions and 50 deletions

View File

@@ -2,7 +2,9 @@ import React, { useEffect, useMemo, useRef, useState } from 'react';
import {
LayoutDashboard, Server, Network, Terminal, Archive, Crosshair,
PlusCircle, Pause, RefreshCw, Download, HardDrive, Package, UserPlus, Settings,
SearchX,
} from 'lucide-react';
import EmptyState from '../EmptyState/EmptyState';
import './CommandPalette.css';
type IconComponent = React.ComponentType<{ size?: number; className?: string }>;
@@ -141,7 +143,7 @@ const CommandPalette: React.FC<Props> = ({ open, onClose, onNav, onAction }) =>
</div>
))}
{filtered.length === 0 && (
<div className="cmd-empty">NO COMMAND MATCHES</div>
<EmptyState icon={SearchX} title="NO COMMAND MATCHES" size="compact" />
)}
</div>
<div className="cmd-hint">