import { PermissionAction } from '@supabase/shared-types/out/constants' import { Edit2, MoreVertical, Trash } from 'lucide-react' import Link from 'next/link' import { Button, DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger, Menu, } from 'ui' import { ContentBase } from '@/data/content/content-query' import { useAsyncCheckPermissions } from '@/hooks/misc/useCheckPermissions' import { useProfile } from '@/lib/profile' import type { Dashboards } from '@/types' interface ReportMenuItemProps { item: { id?: string name: string description: string key: string url: string hasDropdownActions: boolean report: ContentBase & { type: 'report' content: Dashboards.Content } } pageKey: string onSelectEdit: () => void onSelectDelete: () => void } export const ObservabilityMenuItem = ({ item, pageKey, onSelectEdit, onSelectDelete, }: ReportMenuItemProps) => { const { profile } = useProfile() const { can: canUpdateCustomReport } = useAsyncCheckPermissions( PermissionAction.UPDATE, 'user_content', { resource: { type: 'report', visibility: item.report.visibility, owner_id: item.report.owner_id, }, subject: { id: profile?.id }, } ) const menuItem = (
{item.name} {canUpdateCustomReport && (
) return ( {menuItem} ) }