import EllipsisVerticalIcon from '@heroicons/react/16/solid/EllipsisVerticalIcon' import PencilIcon from '@heroicons/react/24/solid/PencilIcon' import TrashIcon from '@heroicons/react/24/solid/TrashIcon' import SVG from 'react-inlinesvg' import { useNavigate } from 'react-router-dom' import TargetDotSVG from '#assets/targetDot.svg' import { useHasUserPermission } from '#components/Map/hooks/usePermissions' import type { Item } from '#types/Item' import type { ItemsApi } from '#types/ItemsApi' interface EditMenuProps { item: Item api?: ItemsApi editCallback?: (e: React.MouseEvent) => void deleteCallback?: (e: React.MouseEvent) => void setPositionCallback?: () => void loading?: boolean hideMenu?: boolean big?: boolean onDeleteModalOpen: () => void } export function EditMenu({ item, api, editCallback, deleteCallback, setPositionCallback, loading = false, hideMenu = false, big = false, onDeleteModalOpen, }: EditMenuProps) { const hasUserPermission = useHasUserPermission() const navigate = useNavigate() const params = new URLSearchParams(window.location.search) const handleDeleteClick = (event: React.MouseEvent) => { onDeleteModalOpen() event.stopPropagation() } if (hideMenu) return null const hasDeletePermission = api?.deleteItem && api.collectionName && hasUserPermission(api.collectionName, 'delete', item) const hasUpdatePermission = api?.updateItem && api.collectionName && hasUserPermission(api.collectionName, 'update', item) if (!hasDeletePermission && !hasUpdatePermission) return null return (
{ e.stopPropagation() }} className={big ? 'tw:mt-5' : 'tw:mt-1'} >
) }