import { Archive, Clock, FolderOpen, HardDrive, Lock, Settings, Shield } from "lucide-react"; import { Card, CardContent, CardTitle } from "~/client/components/ui/card"; import type { Repository } from "~/client/lib/types"; import type { GetRepositoryStatsResponse } from "~/client/api-client/types.gen"; import type { RepositoryConfig } from "@zerobyte/core/restic"; import { DoctorReport } from "../components/doctor-report"; import { CompressionStatsChart } from "../components/compression-stats-chart"; import { cn } from "~/client/lib/utils"; import { useTimeFormat } from "~/client/lib/datetime"; type Props = { repository: Repository; initialStats?: GetRepositoryStatsResponse; }; const getEffectiveLocalPath = (repository: Repository): string | null => { if (repository.config.backend !== "local") return null; return repository.config.path; }; type ConfigRowProps = { icon: React.ReactNode; label: string; value: string; mono?: boolean; valueClassName?: string }; function ConfigRow({ icon, label, value, mono, valueClassName }: ConfigRowProps) { return (
{repository.name}
{repository.type}
{repository.provisioningId ? "Provisioned" : "Manual"}
{repository.compressionMode || "off"}
{formatDateTime(repository.createdAt)}
{effectiveLocalPath}