import { useEffect, useState } from "react"; import { getMapObjectDisplayLabel, objectZoneId } from "../../lib/locationMapUtils"; export const MAP_DISPLAY_CONTROLS = [ ["showZones", "Zones"], ["showLabels", "Labels"], ["showCounts", "Counts"], ["showPins", "Pins"], ["showMyItems", "Mine"], ["showOtherItems", "Others"], ["showCompleted", "Bought"], ["showUnmapped", "Unmapped"], ]; const MAP_ITEM_PREVIEW_LIMIT = 8; function MapItemActionRow({ item, onSelectItem }) { const isBought = Boolean(item.bought); return (
  • ); } function MapItemActionList({ items, onSelectItem, itemGroupLabel }) { const [showAllItems, setShowAllItems] = useState(false); const itemListKey = items.map((item) => item.id).join(":"); useEffect(() => { setShowAllItems(false); }, [itemListKey]); const visibleItems = showAllItems ? items : items.slice(0, MAP_ITEM_PREVIEW_LIMIT); const overflowItemCount = items.length - visibleItems.length; const hasOverflow = items.length > MAP_ITEM_PREVIEW_LIMIT; return ( ); } export function LocationMapLayerPanel({ filters, setFilters }) { return (
    {MAP_DISPLAY_CONTROLS.map(([key, label]) => ( ))}
    ); } export function LocationMapOverview({ ariaLabel, rows }) { return (
    {rows.map((row) => (
    {row.label} {row.value}
    ))}
    ); } function InlineStateAction({ label, value, actionLabel, actionText = "Show", onAction }) { return (
    {label} {value} {onAction ? ( ) : null}
    ); } export function SelectedMapObjectForm({ selectedObject, zones = [], saving, onObjectField, onZoneLinkChange, onDuplicateObject, onDeleteObject, }) { const selectedObjectLabel = getMapObjectDisplayLabel(selectedObject); return (
    ); } export function SelectedZoneItemsPanel({ selectedZoneItems, hasHiddenSelectedItems, hiddenSelectedItemCount, onShowSelectedZoneItems, onSelectZoneItem, }) { if (selectedZoneItems.length === 0) { if (!hasHiddenSelectedItems) return null; return (
    ); } return (
    {hasHiddenSelectedItems ? (
    ) : null}
    ); } export function UnmappedItemsPanel({ visibleUnmappedItems, hiddenUnmappedItemCount, hasHiddenUnmappedItems, onShowUnmappedItems, onSelectUnmappedItem, }) { if (visibleUnmappedItems.length === 0 && hasHiddenUnmappedItems) { return (
    ); } if (visibleUnmappedItems.length === 0) { return null; } return (
    {hiddenUnmappedItemCount > 0 ? (
    ) : null}
    ); }