"use client"; import { DriverInfo, DriverManagementConfig } from "../types"; import { getStatusColor, getStatusLabel, formatTime, COLUMN_LABELS } from "./driverUtils"; import { Progress } from "@/components/ui/progress"; interface DriverListViewProps { drivers: DriverInfo[]; config: DriverManagementConfig; isCompact?: boolean; // 작은 크기 (2x2 등) } export function DriverListView({ drivers, config, isCompact = false }: DriverListViewProps) { const { visibleColumns } = config; // 컴팩트 모드: 요약 정보만 표시 if (isCompact) { const stats = { driving: drivers.filter((d) => d.status === "driving").length, standby: drivers.filter((d) => d.status === "standby").length, resting: drivers.filter((d) => d.status === "resting").length, maintenance: drivers.filter((d) => d.status === "maintenance").length, }; return (
| {COLUMN_LABELS.status} | )} {visibleColumns.includes("name") && ({COLUMN_LABELS.name} | )} {visibleColumns.includes("vehicleNumber") && ({COLUMN_LABELS.vehicleNumber} | )} {visibleColumns.includes("vehicleType") && ({COLUMN_LABELS.vehicleType} | )} {visibleColumns.includes("departure") && ({COLUMN_LABELS.departure} | )} {visibleColumns.includes("destination") && ({COLUMN_LABELS.destination} | )} {visibleColumns.includes("departureTime") && ({COLUMN_LABELS.departureTime} | )} {visibleColumns.includes("estimatedArrival") && ({COLUMN_LABELS.estimatedArrival} | )} {visibleColumns.includes("phone") && ({COLUMN_LABELS.phone} | )} {visibleColumns.includes("progress") && ({COLUMN_LABELS.progress} | )}
|---|---|---|---|---|---|---|---|---|---|
| {getStatusLabel(driver.status)} | )} {visibleColumns.includes("name") && ({driver.name} | )} {visibleColumns.includes("vehicleNumber") && ({driver.vehicleNumber} | )} {visibleColumns.includes("vehicleType") && ({driver.vehicleType} | )} {visibleColumns.includes("departure") && ({driver.departure || -} | )} {visibleColumns.includes("destination") && ({driver.destination || -} | )} {visibleColumns.includes("departureTime") && ({formatTime(driver.departureTime)} | )} {visibleColumns.includes("estimatedArrival") && ({formatTime(driver.estimatedArrival)} | )} {visibleColumns.includes("phone") && ({driver.phone} | )} {visibleColumns.includes("progress") && (
{driver.progress !== undefined ? (
{driver.progress}%
) : (
-
)}
|
)}