Some checks failed
build-packages / resolve bundled mosh-client (push) Has been cancelled
build-packages / resolve bundled et-client (push) Has been cancelled
build-packages / build-macos (push) Has been cancelled
build-packages / build-windows (push) Has been cancelled
build-packages / build-linux-x64 (push) Has been cancelled
build-packages / build-linux-arm64 (push) Has been cancelled
build-packages / release (push) Has been cancelled
build-packages / update Nix release metadata (push) Has been cancelled
build-packages / bump homebrew tap (push) Has been cancelled
test / lint-and-test (push) Has been cancelled
AI automation / Route event (push) Has been cancelled
AI automation / Hand reopened issue to maintainers (push) Has been cancelled
AI automation / Clean source issue state (push) Has been cancelled
AI automation / Reconcile handoffs (push) Has been cancelled
AI automation / Classify issue (push) Has been cancelled
AI automation / Claude Code smoke (push) Has been cancelled
AI automation / Review issue follow-up (push) Has been cancelled
AI automation / Publish issue follow-up (push) Has been cancelled
AI automation / Implement with Claude Code (push) Has been cancelled
AI automation / Publish implement PR (push) Has been cancelled
AI automation / Continue queued issue comments (push) Has been cancelled
AI automation / Codex review loop (push) Has been cancelled
AI automation / Publish Codex fix (push) Has been cancelled
AI automation / Clear Codex dispatch marker (push) Has been cancelled
AI automation / Own PR re-request Codex (push) Has been cancelled
AI automation / External PR re-request Codex (push) Has been cancelled
AI automation / Poll Codex reaction / retry (push) Has been cancelled
build-et-binaries / build-linux-x64 (push) Has been cancelled
build-et-binaries / build-linux-arm64 (push) Has been cancelled
build-et-binaries / build-macos-universal (push) Has been cancelled
build-et-binaries / build-windows-x64 (push) Has been cancelled
build-et-binaries / release (push) Has been cancelled
53 lines
1.0 KiB
TypeScript
53 lines
1.0 KiB
TypeScript
import {
|
|
Activity,
|
|
Box,
|
|
Cloud,
|
|
Code2,
|
|
Container,
|
|
Cpu,
|
|
Database,
|
|
Globe2,
|
|
HardDrive,
|
|
KeyRound,
|
|
Lock,
|
|
Monitor,
|
|
Network,
|
|
Router,
|
|
Server,
|
|
ServerCog,
|
|
Shield,
|
|
SquareTerminal,
|
|
Wifi,
|
|
Zap,
|
|
} from "lucide-react";
|
|
import React from "react";
|
|
import type { HostIconId } from "../domain/models";
|
|
|
|
const HOST_ICON_COMPONENTS = {
|
|
server: Server,
|
|
terminal: SquareTerminal,
|
|
database: Database,
|
|
cloud: Cloud,
|
|
router: Router,
|
|
shield: Shield,
|
|
code: Code2,
|
|
box: Box,
|
|
globe: Globe2,
|
|
cpu: Cpu,
|
|
"hard-drive": HardDrive,
|
|
network: Network,
|
|
wifi: Wifi,
|
|
lock: Lock,
|
|
key: KeyRound,
|
|
monitor: Monitor,
|
|
container: Container,
|
|
activity: Activity,
|
|
zap: Zap,
|
|
"server-cog": ServerCog,
|
|
} as const satisfies Record<HostIconId, React.ComponentType<{ className?: string; size?: number }>>;
|
|
|
|
export const renderHostIconGlyph = (iconId: HostIconId, className?: string): React.ReactNode => {
|
|
const Icon = HOST_ICON_COMPONENTS[iconId] || Server;
|
|
return <Icon className={className} />;
|
|
};
|