"use client"; import { Box, Filter, Globe, Search, Server } from "lucide-react"; import { useState } from "react"; import { Badge } from "@/components/ui/badge"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; import { Popover, PopoverContent, PopoverTrigger } from "@/components/ui/popover"; import { Switch } from "@/components/ui/switch"; import type { TopologyFilters } from "@/lib/topology-types"; interface TopologyToolbarProps { filters: TopologyFilters; onFiltersChange: (filters: TopologyFilters) => void; metadata: { totalServers: number; totalProxies: number; totalK8sNodes: number; totalConnections: number; healthySystems: number; degradedSystems: number; unhealthySystems: number; }; } export function TopologyToolbar({ filters, onFiltersChange, metadata }: TopologyToolbarProps) { const [searchQuery, setSearchQuery] = useState(filters.searchQuery); const handleSearchChange = (value: string) => { setSearchQuery(value); onFiltersChange({ ...filters, searchQuery: value }); }; const toggleFilter = (key: keyof TopologyFilters) => { onFiltersChange({ ...filters, [key]: !filters[key] }); }; return (
{/* Stats */}
Servers
{metadata.totalServers}
Proxies
{metadata.totalProxies}
Nodes
{metadata.totalK8sNodes}
{/* Health Status */}
{metadata.healthySystems} Healthy
{metadata.degradedSystems} Degraded
{metadata.unhealthySystems} Down
{/* Search */}
handleSearchChange(e.target.value)} className="pl-9" />
{/* Filters */}

Show/Hide

toggleFilter("showServers")} />
toggleFilter("showProxies")} />
toggleFilter("showK8sNodes")} />
toggleFilter("showConnections")} />
); }