import * as React from "react" import { Item, ItemsApi } from "../../../../types"; import { useHasUserPermission } from "../../hooks/usePermissions"; import { getValue } from "../../../../Utils/GetValue"; import { useAssetApi } from '../../../AppShell/hooks/useAssets' import DialogModal from "../../../Templates/DialogModal"; import { useEffect } from "react"; export function HeaderView({ item, api, editCallback, deleteCallback, itemNameField, itemAvatarField, loading, hideMenu = false, big = false }: { item: Item, api?: ItemsApi, editCallback?: any, deleteCallback?: any, itemNameField?: string, itemAvatarField?: string, loading?: boolean, hideMenu?: boolean, big?: boolean }) { const [modalOpen, setModalOpen] = React.useState(false); const hasUserPermission = useHasUserPermission(); const assetsApi = useAssetApi(); const avatar = itemAvatarField && getValue(item, itemAvatarField) ? assetsApi.url + getValue(item, itemAvatarField) + `${big ? "?width=160&heigth=160": "?width=80&heigth=80"}` : item.layer?.itemAvatarField && item && getValue(item, item.layer?.itemAvatarField) && assetsApi.url + getValue(item, item.layer?.itemAvatarField) + `${big ? "?width=160&heigth=160": "?width=80&heigth=80"}`; const title = itemNameField ? getValue(item, itemNameField) : item.layer?.itemNameField && item && getValue(item, item.layer?.itemNameField); const openDeleteModal = async (event: React.MouseEvent) => { setModalOpen(true); event.stopPropagation(); } return ( <>
{avatar && } {title&& title}
e.stopPropagation()} className={`${big ? "tw-mt-5":"tw-mt-1"}`}> {(api?.deleteItem || item.layer?.api?.updateItem) && (hasUserPermission(api?.collectionName!, "delete", item) || hasUserPermission(api?.collectionName!, "update", item)) && !hideMenu &&
    {((api?.updateItem && hasUserPermission(api.collectionName!, "update", item)) || item.layer?.customEditLink) &&
  • } {api?.deleteItem && hasUserPermission(api.collectionName!, "delete", item) &&
  • {loading ? : }
  • }
}
(setModalOpen(false))} >
e.stopPropagation()} > Do you want to delete {item.name}?
) }