import { useState } from 'react' import { useMyProfile } from '#components/Map/hooks/useMyProfile' import { ActionButtons } from './ActionButtons' import { ConnectionStatus } from './ConnectionStatus' import { DeleteModal } from './DeleteModal' import { EditMenu } from './EditMenu' import { ItemAvatar } from './ItemAvatar' import { ItemTitle } from './ItemTitle' import { QRModal } from './QRModal' import type { HeaderViewProps } from './types' export function HeaderView({ item, api, editCallback, deleteCallback, setPositionCallback, loading, hideMenu = false, big = false, truncateSubname = true, showAddress = true, }: HeaderViewProps) { const [modalOpen, setModalOpen] = useState(false) const [qrModalOpen, setQrModalOpen] = useState(false) const myProfile = useMyProfile() if (!item) return null const hasAvatar = !!(item.image ?? item.image_external) const isMyProfile = myProfile.myProfile?.id === item.id const showQrButton = big && isMyProfile && (item.layer?.itemType.show_qr_button ?? true) const subtitleMode = item.layer?.itemType.subtitle_mode ?? (showAddress ? 'address' : 'none') return ( <>
{ setQrModalOpen(true) }} />
{ setModalOpen(true) }} />
{big && (
)} { setModalOpen(false) }} onConfirm={deleteCallback ?? (() => undefined)} /> {showQrButton && ( { setQrModalOpen(false) }} /> )} ) }