import * as React from 'react' import { MapOverlayPage } from '../Templates' import { useItems } from '../Map/hooks/useItems' import { useLocation, useNavigate } from 'react-router-dom' import { useEffect, useState } from 'react'; import { Item, Tag, UserItem } from '../../types'; import { getValue } from '../../Utils/GetValue'; import { useMap } from 'react-leaflet'; import { LatLng } from 'leaflet'; import { TextView } from '../Map'; import useWindowDimensions from '../Map/hooks/useWindowDimension'; import { TagView } from '../Templates/TagView'; import { useTags } from '../Map/hooks/useTags'; import { useAuth } from '../Auth'; import { useAddFilterTag } from '../Map/hooks/useFilter'; export function OverlayProfile() { const location = useLocation(); const items = useItems(); const [item, setItem] = useState({} as Item) const map = useMap(); const windowDimension = useWindowDimensions(); const tags = useTags(); const { user } = useAuth(); const navigate = useNavigate(); const [owner, setOwner] = useState(); const [offers, setOffers] = useState>([]); const [needs, setNeeds] = useState>([]); const [activeTab, setActiveTab] = useState(1); const addFilterTag = useAddFilterTag(); useEffect(() => { const itemId = location.pathname.split("/")[2]; const item = items.find(i => i.id === itemId); item && setItem(item); const bounds = map.getBounds(); const x = bounds.getEast() - bounds.getWest() if (windowDimension.width > 768) if (item?.position?.coordinates[0]) map.setView(new LatLng(item?.position.coordinates[1]!, item?.position.coordinates[0]! + x / 4)) }, [location, items, activeTab]) useEffect(() => { setOffers([]); setNeeds([]); setOwner(undefined); item?.layer?.itemOwnerField && setOwner(getValue(item, item.layer?.itemOwnerField)); item.layer?.itemOffersField && getValue(item, item.layer.itemOffersField).map(o => { const tag = tags.find(t => t.id === o.tags_id); tag && setOffers(current => [...current, tag]) }) item.layer?.itemNeedsField && getValue(item, item.layer.itemNeedsField).map(n => { const tag = tags.find(t => t.id === n.tags_id); tag && setNeeds(current => [...current, tag]) }) }, [item]) return ( {item && <>

{item.layer?.itemAvatarField && getValue(item, item.layer.itemAvatarField) && } {item.layer?.itemNameField && getValue(item, item.layer.itemNameField)}

{owner?.id === user?.id && owner?.id ? navigate("/profile-settings")}> : "" }
setActiveTab(1)} />
setActiveTab(2)} />
{ offers.length > 0 ?

Offers

< div className='tw-flex tw-flex-wrap tw-mb-4'> { offers.map(o => {console.log(o); addFilterTag(o)}} />) }
: "" } { needs.length > 0 ?

Needs

< div className='tw-flex tw-flex-wrap tw-mb-4'> { needs.map(n => addFilterTag(n)} />) }
: "" }
setActiveTab(3)} />
}
) }