import React, { useContext } from "react";
import { Flex, Box, Text, IconButton, Close, Label } from "theme-ui";
import SimpleBar from "simplebar-react";
import Case from "case";
import RemoveMapIcon from "../../icons/RemoveMapIcon";
import ResetMapIcon from "../../icons/ResetMapIcon";
import GroupIcon from "../../icons/GroupIcon";
import MapTile from "./MapTile";
import Link from "../Link";
import FilterBar from "../FilterBar";
import DatabaseContext from "../../contexts/DatabaseContext";
import useResponsiveLayout from "../../helpers/useResponsiveLayout";
function MapTiles({
maps,
groups,
selectedMaps,
selectedMapStates,
onMapSelect,
onMapsRemove,
onMapsReset,
onMapAdd,
onMapEdit,
onDone,
selectMode,
onSelectModeChange,
search,
onSearchChange,
onMapsGroup,
}) {
const { databaseStatus } = useContext(DatabaseContext);
const layout = useResponsiveLayout();
let hasMapState = false;
for (let state of selectedMapStates) {
if (
Object.values(state.tokens).length > 0 ||
state.mapDrawActions.length > 0 ||
state.fogDrawActions.length > 0 ||
Object.values(state.notes).length > 0
) {
hasMapState = true;
break;
}
}
let hasSelectedDefaultMap = selectedMaps.some(
(map) => map.type === "default"
);
function mapToTile(map) {
const isSelected = selectedMaps.includes(map);
return (
);
}
const multipleSelected = selectedMaps.length > 1;
return (
onMapSelect()}
search={search}
onSearchChange={onSearchChange}
selectMode={selectMode}
onSelectModeChange={onSelectModeChange}
onAdd={onMapAdd}
addTitle="Add Map"
/>
onMapSelect()}
>
{groups.map((group) => (
{maps[group].map(mapToTile)}
))}
{databaseStatus === "disabled" && (
Map saving is unavailable. See FAQ for
more information.
)}
{selectedMaps.length > 0 && (
onMapSelect()}
/>
onMapsGroup()}
disabled={hasSelectedDefaultMap}
>
onMapsReset()}
disabled={!hasMapState}
>
onMapsRemove()}
disabled={hasSelectedDefaultMap}
>
)}
);
}
export default MapTiles;