Openstatus www.openstatus.dev
6
fork

Configure Feed

Select the types of activity you want to include in your feed.

at 684524d59ffaf5eadc7150d42c19be2d2264edfa 51 lines 1.3 kB view raw
1"use client"; 2 3import type { Row } from "@tanstack/react-table"; 4import { MoreHorizontal } from "lucide-react"; 5import Link from "next/link"; 6 7import { 8 Button, 9 DropdownMenu, 10 DropdownMenuContent, 11 DropdownMenuItem, 12 DropdownMenuTrigger, 13} from "@openstatus/ui"; 14import { z } from "zod"; 15 16interface DataTableRowActionsProps<TData> { 17 row: Row<TData>; 18} 19 20export function DataTableRowActions<TData>({ 21 row, 22}: DataTableRowActionsProps<TData>) { 23 // FIXME: DRY - this is a duplicate of the OSTinybird endpoint 24 const ping = z 25 .object({ 26 monitorId: z.string(), 27 cronTimestamp: z.number(), 28 region: z.string(), 29 }) 30 .parse(row.original); 31 return ( 32 <DropdownMenu> 33 <DropdownMenuTrigger asChild> 34 <Button 35 variant="ghost" 36 className="h-8 w-8 p-0 data-[state=open]:bg-accent" 37 > 38 <span className="sr-only">Open menu</span> 39 <MoreHorizontal className="h-4 w-4" /> 40 </Button> 41 </DropdownMenuTrigger> 42 <DropdownMenuContent align="end"> 43 <Link 44 href={`./details?monitorId=${ping.monitorId}&cronTimestamp=${ping.cronTimestamp}&region=${ping.region}`} 45 > 46 <DropdownMenuItem>Details</DropdownMenuItem> 47 </Link> 48 </DropdownMenuContent> 49 </DropdownMenu> 50 ); 51}