"use client"; import { ActionButtonWithTooltip } from "@/components/ui/action-button"; import { ButtonWithTooltip } from "@/components/ui/button"; import LoadingSpinner from "@/components/ui/spinner"; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from "@/components/ui/table"; import { toast } from "@/components/ui/use-toast"; import { api } from "@/lib/trpc"; import { Pencil, Trash, FilePlus, Palette } from "lucide-react"; import { useSession } from "next-auth/react"; import AddMetricDialog from "./AddMetricDialog"; import Link from "next/link"; import { ZMetric } from "@lifetracker/shared/types/metrics"; import { titleCase } from "title-case"; import { Icon } from "@/components/ui/icon"; export default function MetricsView() { const { data: metrics } = api.metrics.list.useQuery(); const invalidateMetricsList = api.useUtils().metrics.list.invalidate; const { mutate: deleteMetric } = api.metrics.delete.useMutation({ onSettled: () => { invalidateMetricsList(); toast({ description: "Metric deleted", }); }, }); const MetricsTable = ({ metrics }: { metrics: ZMetric[] }) => ( Name Unit Type Description Actions {metrics.map((m) => ( {m.name} {m.unit} {m.type} {m.description} ))}
); return ( <>
All Metrics
{metrics === undefined ? ( ) : ( )} ); }