Spaces:
Sleeping
Sleeping
| import React from 'react'; | |
| import { useSystemDetailsByAsset } from '@/hooks/asset-management/useSystemDetails'; | |
| import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; | |
| import { Badge } from '@/components/ui/badge'; | |
| import { LoadingSpinner } from './shared'; | |
| import { Monitor, Cpu, HardDrive, MemoryStick, Palette } from 'lucide-react'; | |
| interface SystemDetailsExampleProps { | |
| assetId: number; | |
| } | |
| const SystemDetailsExample: React.FC<SystemDetailsExampleProps> = ({ assetId }) => { | |
| const { data: systemDetails, isLoading, error } = useSystemDetailsByAsset(assetId); | |
| if (isLoading) { | |
| return ( | |
| <Card> | |
| <CardContent className="p-6"> | |
| <LoadingSpinner size="md" text="Loading system details..." /> | |
| </CardContent> | |
| </Card> | |
| ); | |
| } | |
| if (error) { | |
| return ( | |
| <Card> | |
| <CardContent className="p-6"> | |
| <div className="text-center text-red-600"> | |
| Error loading system details: {error.message} | |
| </div> | |
| </CardContent> | |
| </Card> | |
| ); | |
| } | |
| if (!systemDetails) { | |
| return ( | |
| <Card> | |
| <CardContent className="p-6"> | |
| <div className="text-center text-muted-foreground"> | |
| No system details found for this asset. | |
| </div> | |
| </CardContent> | |
| </Card> | |
| ); | |
| } | |
| return ( | |
| <Card> | |
| <CardHeader> | |
| <CardTitle className="flex items-center gap-2"> | |
| <Monitor className="h-5 w-5" /> | |
| System Details | |
| <Badge variant="outline">ID: {systemDetails.systemDetailsID}</Badge> | |
| </CardTitle> | |
| </CardHeader> | |
| <CardContent className="space-y-4"> | |
| <div className="grid grid-cols-1 md:grid-cols-2 gap-4"> | |
| <div className="space-y-3"> | |
| <div className="flex items-center gap-2"> | |
| <Monitor className="h-4 w-4 text-muted-foreground" /> | |
| <div> | |
| <div className="text-sm font-medium">System Model</div> | |
| <div className="text-sm text-muted-foreground">{systemDetails.systemModel}</div> | |
| </div> | |
| </div> | |
| <div className="flex items-center gap-2"> | |
| <Cpu className="h-4 w-4 text-muted-foreground" /> | |
| <div> | |
| <div className="text-sm font-medium">Processor</div> | |
| <div className="text-sm text-muted-foreground">{systemDetails.processor}</div> | |
| </div> | |
| </div> | |
| <div className="flex items-center gap-2"> | |
| <MemoryStick className="h-4 w-4 text-muted-foreground" /> | |
| <div> | |
| <div className="text-sm font-medium">Installed RAM</div> | |
| <div className="text-sm text-muted-foreground">{systemDetails.installedRAM}</div> | |
| </div> | |
| </div> | |
| <div className="flex items-center gap-2"> | |
| <Palette className="h-4 w-4 text-muted-foreground" /> | |
| <div> | |
| <div className="text-sm font-medium">Graphics</div> | |
| <div className="text-sm text-muted-foreground">{systemDetails.graphics}</div> | |
| </div> | |
| </div> | |
| </div> | |
| <div className="space-y-3"> | |
| <div className="flex items-center gap-2"> | |
| <Monitor className="h-4 w-4 text-muted-foreground" /> | |
| <div> | |
| <div className="text-sm font-medium">Screen Resolution</div> | |
| <div className="text-sm text-muted-foreground">{systemDetails.screenResolution}</div> | |
| </div> | |
| </div> | |
| <div className="flex items-center gap-2"> | |
| <HardDrive className="h-4 w-4 text-muted-foreground" /> | |
| <div> | |
| <div className="text-sm font-medium">Disk Model</div> | |
| <div className="text-sm text-muted-foreground">{systemDetails.diskModel}</div> | |
| </div> | |
| </div> | |
| <div className="flex items-center gap-2"> | |
| <HardDrive className="h-4 w-4 text-muted-foreground" /> | |
| <div> | |
| <div className="text-sm font-medium">Disk Size</div> | |
| <div className="text-sm text-muted-foreground">{systemDetails.diskSize}</div> | |
| </div> | |
| </div> | |
| <div className="flex items-center gap-2"> | |
| <Monitor className="h-4 w-4 text-muted-foreground" /> | |
| <div> | |
| <div className="text-sm font-medium">Manufacturer</div> | |
| <div className="text-sm text-muted-foreground">{systemDetails.manufacturer}</div> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| </CardContent> | |
| </Card> | |
| ); | |
| }; | |
| export default SystemDetailsExample; |