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

@@ -4,6 +4,7 @@ import { Network, Plus, Power, Trash2, UploadCloud, RefreshCw, Skull } from 'luc
import api from '../../utils/api';
import { clearLayout } from '../MazeNET/useMazeLayoutStore';
import CreateTopologyWizard from './CreateTopologyWizard';
import EmptyState from '../EmptyState/EmptyState';
import './TopologyList.css';
interface TopologySummary {
@@ -237,9 +238,12 @@ const TopologyList: React.FC = () => {
</div>
))}
{!loading && rows.length === 0 && (
<div className="tlist-empty">
No topologies yet. Click NEW TOPOLOGY to create one.
</div>
<EmptyState
icon={Network}
title="NO TOPOLOGIES YET"
hint="spin one up to deploy a honeynet"
cta={{ label: 'NEW TOPOLOGY', icon: Plus, onClick: () => setCreating(true) }}
/>
)}
</div>
</div>