Device List
Comprehensive device listing with search, filters, and bulk actions.
Device ListUnsaved changes
import { Card, CardContent } from "./components/ui/card" import { Input } from "./components/ui/input" import { Badge } from "./components/ui/badge" import { Button } from "./components/ui/button" import { Search, Filter, MoreVertical, Power } from "lucide-react" export default function DeviceList() { const devices = [ { id: "DEV-001", name: "Solar Panel Array A", type: "Solar", status: "Online", power: "4.2 kW" }, { id: "DEV-002", name: "Battery Storage Unit", type: "Battery", status: "Charging", power: "85%" }, { id: "DEV-003", name: "Solar Panel Array B", type: "Solar", status: "Online", power: "3.8 kW" }, { id: "DEV-004", name: "Inverter Unit 1", type: "Inverter", status: "Online", power: "8.0 kW" }, { id: "DEV-005", name: "Wind Turbine", type: "Wind", status: "Offline", power: "0 kW" }, ] return ( <div className="p-6 space-y-6 max-w-7xl mx-auto"> <div className="flex items-center justify-between"> <div> <h1 className="text-3xl font-bold">Devices</h1> <p className="text-muted-foreground">Manage your connected devices</p> </div> <Button>Add Device</Button> </div> <Card> <CardContent className="p-4"> <div className="flex gap-4"> <div className="relative flex-1"> <Search className="absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground" /> <Input placeholder="Search devices..." className="pl-9" /> </div> <Button variant="outline"> <Filter className="h-4 w-4 mr-2" /> Filters </Button> </div> </CardContent> </Card> <div className="space-y-2"> {devices.map((device) => ( <Card key={device.id}> <CardContent className="p-4"> <div className="flex items-center justify-between"> <div className="flex items-center gap-4"> <div className="h-10 w-10 rounded-lg bg-primary/20 flex items-center justify-center"> <Power className="h-5 w-5 text-primary" /> </div> <div> <p className="font-medium">{device.name}</p> <p className="text-sm text-muted-foreground">{device.id} • {device.type}</p> </div> </div> <div className="flex items-center gap-4"> <div className="text-right"> <p className="font-medium">{device.power}</p> <Badge variant={device.status === "Online" ? "success" : device.status === "Charging" ? "default" : "destructive"}> {device.status} </Badge> </div> <Button variant="ghost" size="icon"> <MoreVertical className="h-4 w-4" /> </Button> </div> </div> </CardContent> </Card> ))} </div> </div> ) }