41 lines
1000 B
TypeScript
41 lines
1000 B
TypeScript
import {
|
|
Bot,
|
|
Database,
|
|
Download,
|
|
Gauge,
|
|
MapPinned,
|
|
ScanLine,
|
|
Settings2,
|
|
ShieldCheck,
|
|
} from 'lucide-react'
|
|
import type { WorkspaceKey } from '../overview/OverviewWorkspace'
|
|
|
|
interface WorkspaceSignalProps {
|
|
workspace: WorkspaceKey
|
|
}
|
|
|
|
const workspaceIcons = {
|
|
overview: Gauge,
|
|
data: Database,
|
|
map: MapPinned,
|
|
assistant: Bot,
|
|
analysis: ShieldCheck,
|
|
ai: ScanLine,
|
|
exports: Download,
|
|
system: Settings2,
|
|
} as const
|
|
|
|
export function WorkspaceSignal({ workspace }: WorkspaceSignalProps): JSX.Element {
|
|
const Icon = workspaceIcons[workspace]
|
|
|
|
return (
|
|
<div className={`workspace-signal workspace-signal-${workspace}`} aria-hidden="true">
|
|
<span className="workspace-signal-grid" />
|
|
<span className="workspace-signal-orbit workspace-signal-orbit-a" />
|
|
<span className="workspace-signal-orbit workspace-signal-orbit-b" />
|
|
<span className="workspace-signal-beam" />
|
|
<span className="workspace-signal-icon"><Icon /></span>
|
|
</div>
|
|
)
|
|
}
|