diff --git a/app/client/modules/repositories/components/compression-stats-chart.tsx b/app/client/modules/repositories/components/compression-stats-chart.tsx index 0921b939..c1ef7431 100644 --- a/app/client/modules/repositories/components/compression-stats-chart.tsx +++ b/app/client/modules/repositories/components/compression-stats-chart.tsx @@ -64,7 +64,7 @@ export function CompressionStatsChart({ repositoryShortId, initialStats }: Props const hasStats = !!stats && (storedSize > 0 || uncompressedSize > 0 || snapshotsCount > 0); - const storedPercent = uncompressedSize > 0 ? (storedSize / uncompressedSize) * 100 : 0; + const storedPercent = Math.min(100, Math.max(0, uncompressedSize > 0 ? (storedSize / uncompressedSize) * 100 : 0)); return ( diff --git a/app/client/modules/repositories/routes/repository-details.tsx b/app/client/modules/repositories/routes/repository-details.tsx index 4e79a73f..07c7cf5c 100644 --- a/app/client/modules/repositories/routes/repository-details.tsx +++ b/app/client/modules/repositories/routes/repository-details.tsx @@ -1,5 +1,5 @@ import { useMutation, useSuspenseQuery } from "@tanstack/react-query"; -import { Suspense, useState } from "react"; +import { useState } from "react"; import { useNavigate, useSearch } from "@tanstack/react-router"; import { toast } from "sonner"; import { ChevronDown, Database, Pencil, Square, Stethoscope, Trash2, Unlock } from "lucide-react"; @@ -134,7 +134,7 @@ export default function RepositoryDetailsPage({ {repository.provisioningId && Managed}

- Created {formatDateTime(repository.createdAt)} · Last checked{" "} + Created {formatDateTime(repository.createdAt)} · Last checked  {formatTimeAgo(repository.lastChecked)}

@@ -222,13 +222,11 @@ export default function RepositoryDetailsPage({ - - - + diff --git a/app/client/modules/volumes/routes/volume-details.tsx b/app/client/modules/volumes/routes/volume-details.tsx index 2a35bec4..6e3d6392 100644 --- a/app/client/modules/volumes/routes/volume-details.tsx +++ b/app/client/modules/volumes/routes/volume-details.tsx @@ -140,36 +140,35 @@ export function VolumeDetails({ volumeId }: { volumeId: string }) {
- {isMounted ? ( - - ) : ( - - )} + +
- {volume.lastError && ( - -
-

Last Error

-

{volume.lastError}

-
-
- )} + +
+

Last Error

+

{volume.lastError}

+
+
navigate({ to: ".", search: () => ({ tab: value }) })}> diff --git a/app/client/modules/volumes/tabs/info.tsx b/app/client/modules/volumes/tabs/info.tsx index 7ce10814..7529c7ec 100644 --- a/app/client/modules/volumes/tabs/info.tsx +++ b/app/client/modules/volumes/tabs/info.tsx @@ -3,7 +3,7 @@ import { FolderOpen, HardDrive, Settings, Unplug } from "lucide-react"; import { Label, Pie, PieChart } from "recharts"; import { ByteSize } from "~/client/components/bytes-size"; import { Card, CardTitle } from "~/client/components/ui/card"; -import { type ChartConfig, ChartContainer, ChartTooltip, ChartTooltipContent } from "~/client/components/ui/chart"; +import { ChartContainer, ChartTooltip, ChartTooltipContent } from "~/client/components/ui/chart"; import type { StatFs, Volume } from "~/client/lib/types"; import { cn } from "~/client/lib/utils"; @@ -21,17 +21,14 @@ const backendLabels: Record = { sftp: "SFTP", }; -function ConfigRow({ - icon, - label, - value, - mono, -}: { +type ConfigRowProps = { icon: React.ReactNode; label: string; value: string; mono?: boolean; -}) { +}; + +function ConfigRow({ icon, label, value, mono }: ConfigRowProps) { return (
{icon} @@ -95,14 +92,12 @@ function DonutChart({ statfs }: { statfs: StatFs }) { [statfs], ); - const chartConfig = {} satisfies ChartConfig; - const usagePercentage = useMemo(() => { return Math.round((statfs.used / statfs.total) * 100); }, [statfs]); return ( - +