import { Dialog, DialogTitle, IconButton } from '@suid/material'; import { Feature } from 'ol'; import { Geometry } from 'ol/geom'; import { Component, createSignal, For } from 'solid-js'; import { unwrap } from 'solid-js/store'; import { I18nContext, createI18nContext, useI18n, } from '@solid-primitives/i18n'; import CloseIcon from '@suid/icons-material/Close'; import { tree } from '../map'; import style from './Infos.module.css'; import { Paper, Stack } from '@suid/material'; import styled from '@suid/material/styles/styled'; const Item = styled(Paper)(({ theme }) => ({ ...theme.typography.body2, padding: theme.spacing(1), textAlign: 'center', color: theme.palette.text.secondary, })); const [open, setOpen] = createSignal(false); let selectedFeatures: Feature[] = []; export const clickHandler = (event: any) => { const pixel = [event.originalEvent.x, event.originalEvent.y]; const features = event.map.getFeaturesAtPixel(pixel, { hitTolerance: 30 }); console.log({ caller: ' / clickHandler', event, features, tree: unwrap(tree), }); selectedFeatures.map((feature) => feature.set('isSelected', false)); selectedFeatures = features; features.map((feature: Feature) => { const id = feature.get('id'); feature.set('isSelected', true); console.log({ caller: ' / clickHandler / feature', event, feature, id, }); const branch = tree[id]; if (branch?.updateHandler) branch.updateHandler(feature); }); if (features.length > 0) { setOpen(true); } }; const Infos: Component<{}> = (props) => { const [t, { add, locale, dict }] = useI18n(); const handleClickOpen = () => { setOpen(true); }; const handleClose = () => { setOpen(false); }; return (
{t('nearby')}
{(feature) => {feature.get('type')}}
); }; export default Infos;