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 { useNavigate } from "react-router-dom"; import { useSetSelectPosition } from "../../hooks/useSetItemPosition"; 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 navigate = useNavigate(); const assetsApi = useAssetApi(); const setSelectPosition = useSetSelectPosition(); 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 &&
}
(setModalOpen(false))} >
e.stopPropagation()} > Do you want to delete {item.name}?
) }