/* eslint-disable @typescript-eslint/no-unnecessary-condition */ /* eslint-disable @typescript-eslint/no-explicit-any */ /* eslint-disable import-x/no-relative-parent-imports */ /* eslint-disable new-cap */ /* eslint-disable @typescript-eslint/no-unsafe-assignment */ /* eslint-disable @typescript-eslint/prefer-nullish-coalescing */ /* eslint-disable @typescript-eslint/no-unsafe-member-access */ import { useEffect, useState } from 'react' import { UtopiaMap, Layer, PopupView, PopupButton, StartEndView, TextView, PopupForm, PopupStartEndInput, PopupTextAreaInput, PopupTextInput, HeaderView, } from 'utopia-ui' import { itemsApi } from '../api/itemsApi' import type { Place } from '../api/directus' import type { LayerProps } from 'utopia-ui' interface layerApi { id: string api: itemsApi } function MapContainer({ layers, map }: { layers: LayerProps[]; map: any }) { const [apis, setApis] = useState([]) useEffect(() => { // get timestamp for the start of the current day const now = new Date() const startOfDay = new Date(now.getFullYear(), now.getMonth(), now.getDate()) const startOfDayISO = startOfDay.toISOString() const newApis = layers.map((layer: LayerProps) => { // Only apply date filter if showPastItems is not explicitly set to true const dateFilter = layer.showPastItems ? undefined : { _or: [ { end: { _gt: startOfDayISO, }, }, { end: { _null: true, }, }, ], } return { id: layer.id, api: new itemsApi('items', layer.id, undefined, dateFilter), } }) setApis(newApis) }, [layers]) useEffect(() => {}, [apis]) return ( <> {layers && apis && layers.map((layer) => ( api.id === layer.id)?.api} item_default_name={layer.item_default_name} > {layer.itemType.show_start_end && } {layer.itemType.show_profile_button && ( )} {layer.itemType.show_text && } {layer.itemType.show_header_view_in_form && } {layer.itemType.show_name_input && ( )} {layer.itemType.show_start_end_input && ( )} {layer.itemType.show_text_input && (
)} { // layer.public_edit_items && } {layer.itemType.custom_text && (

{layer.itemType.custom_text}

)} {layer.item_presets && Object.entries(layer.item_presets).map((ip: any) => ( ))}
))}
) } export default MapContainer