/* eslint-disable @typescript-eslint/no-unsafe-call */ /* eslint-disable @typescript-eslint/no-unnecessary-condition */ /* eslint-disable @typescript-eslint/restrict-template-expressions */ /* eslint-disable @typescript-eslint/no-explicit-any */ import { useState } from 'react' import { useHasUserPermission } from '../../Map/hooks/usePermissions' import DialogModal from '../../Templates/DialogModal' import { useItems } from '../../Map/hooks/useItems' import { HeaderView } from '../../Map/Subcomponents/ItemPopupComponents/HeaderView' import { Item } from '../../../types' import { TextInput } from '../../Input' import { getValue } from '../../../Utils/GetValue' import { useGetItemTags } from '../../Map/hooks/useTags' export function ActionButton({ item, triggerAddButton, triggerItemSelected, existingRelations, itemType, colorField, collection = 'items', customStyle, }: { triggerAddButton?: any triggerItemSelected?: any existingRelations: Item[] itemType?: string colorField?: string collection?: string customStyle?: string item: Item }) { const hasUserPermission = useHasUserPermission() const [modalOpen, setModalOpen] = useState(false) const [search, setSearch] = useState('') const getItemTags = useGetItemTags() const items = useItems() const filterdItems = items .filter((i) => !itemType || i.layer?.itemType.name === itemType) .filter((i) => !existingRelations.some((s) => s.id === i.id)) .filter((i) => i.id !== item.id) return ( <> {hasUserPermission(collection, 'update', item) && ( <>
{triggerItemSelected && ( )} {triggerAddButton && ( )}
setModalOpen(false)} className='tw-w-xl sm:tw-w-2xl tw-min-h-80 tw-bg-base-200' > { setSearch(val) }} >
{filterdItems .filter((item) => { return search === '' ? item : item.name.toLowerCase().includes(search.toLowerCase()) }) .map((i) => (
{ triggerItemSelected(i.id) setModalOpen(false) }} >
))}
)} ) }