import { createFileRoute, useParams, useNavigate } from "@tanstack/react-router"; import { useState } from "react"; import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; import { LayoutGrid, TableIcon, Monitor, FolderCheck } from "lucide-react"; import { Button } from "@/components/ui/button"; import { useGetDeviceFromRoom } from "@/hooks/queries"; import { useDeviceEvents } from "@/hooks/useDeviceEvents"; import { DeviceGrid } from "@/components/grids/device-grid"; import { DeviceTable } from "@/components/tables/device-table"; import { useMachineNumber } from "@/hooks/useMachineNumber"; import { CommandActionButtons } from "@/components/buttons/command-action-buttons"; export const Route = createFileRoute("/_auth/rooms/$roomName/")({ head: ({ params }) => ({ meta: [{ title: `Danh sách thiết bị phòng ${params.roomName}` }], }), loader: async ({ context, params }) => { context.breadcrumbs = [ { title: "Danh sách phòng", path: "/rooms/" }, { title: `Phòng ${params.roomName}`, path: `/rooms/${params.roomName}/` }, ]; }, component: RoomDetailPage, }); function RoomDetailPage() { const { roomName } = useParams({ from: "/_auth/rooms/$roomName/" }); const [viewMode, setViewMode] = useState<"grid" | "table">("grid"); // SSE real-time updates useDeviceEvents(roomName); // Folder status from SS const { data: devices = [] } = useGetDeviceFromRoom(roomName); const parseMachineNumber = useMachineNumber(); const navigate = useNavigate(); const sortedDevices = [...devices].sort((a, b) => { return parseMachineNumber(a.id) - parseMachineNumber(b.id); }); return (
Phòng này chưa có thiết bị nào được kết nối.