Add online offline to table

This commit is contained in:
Owen Schwartz 2024-12-21 16:37:07 -05:00
parent b4b213e68f
commit 3fb3be1f1e
No known key found for this signature in database
GPG key ID: 8271FDFFD9E0CCBD
2 changed files with 39 additions and 1 deletions

View file

@ -9,7 +9,7 @@ import {
DropdownMenuTrigger, DropdownMenuTrigger,
} from "@app/components/ui/dropdown-menu"; } from "@app/components/ui/dropdown-menu";
import { Button } from "@app/components/ui/button"; import { Button } from "@app/components/ui/button";
import { ArrowRight, ArrowUpDown, MoreHorizontal } from "lucide-react"; import { ArrowRight, ArrowUpDown, Check, MoreHorizontal, X } from "lucide-react";
import Link from "next/link"; import Link from "next/link";
import { useRouter } from "next/navigation"; import { useRouter } from "next/navigation";
import { AxiosResponse } from "axios"; import { AxiosResponse } from "axios";
@ -29,6 +29,7 @@ export type SiteRow = {
mbOut: string; mbOut: string;
orgId: string; orgId: string;
type: "newt" | "wireguard"; type: "newt" | "wireguard";
online: boolean;
}; };
type SitesTableProps = { type SitesTableProps = {
@ -168,6 +169,42 @@ export default function SitesTable({ sites, orgId }: SitesTableProps) {
} }
}, },
}, },
{
accessorKey: "online",
header: ({ column }) => {
return (
<Button
variant="ghost"
onClick={() =>
column.toggleSorting(column.getIsSorted() === "asc")
}
>
Online
<ArrowUpDown className="ml-2 h-4 w-4" />
</Button>
);
},
cell: ({ row }) => {
const originalRow = row.original;
console.log(originalRow.online);
if (originalRow.online) {
return (
<span className="text-green-500 flex items-center space-x-2">
<Check className="w-4 h-4" />
<span>Online</span>
</span>
);
} else {
return (
<span className="text-red-500 flex items-center space-x-2">
<X className="w-4 h-4" />
<span>Offline</span>
</span>
);
}
},
},
{ {
id: "actions", id: "actions",
cell: ({ row }) => { cell: ({ row }) => {

View file

@ -41,6 +41,7 @@ export default async function SitesPage(props: SitesPageProps) {
mbOut: formatSize(site.megabytesOut || 0), mbOut: formatSize(site.megabytesOut || 0),
orgId: params.orgId, orgId: params.orgId,
type: site.type as any, type: site.type as any,
online: site.online,
}; };
}); });