// @flow import classnames from "classnames"; import { Body1, Button, Map } from "components/SharedComponents"; import { View } from "components/styledComponents"; import type { Node } from "react"; import React, { useState } from "react"; import { Platform } from "react-native"; import { useDebugMode, useTranslation } from "sharedHooks"; import { getShadowForColor } from "styles/global"; import colors from "styles/tailwindColors"; import useMapLocation from "./hooks/useMapLocation"; const DROP_SHADOW = getShadowForColor( colors.darkGray, { offsetHeight: 4, elevation: 6 } ); type Props = { observations: Array, queryParams: Object } const MapView = ( { observations, queryParams }: Props ): Node => { const { t } = useTranslation( ); const { isDebug } = useDebugMode( ); const [zoom, setZoom] = useState( -1 ); const { onPanDrag, onPermissionBlocked, onPermissionDenied, onPermissionGranted, permissionRequested, onZoomToNearby, redoSearchInMapArea, region, showMapBoundaryButton, startAtNearby, updateMapBoundaries } = useMapLocation( ); const tileMapParams = { ...queryParams }; // Tile queries never need these params delete tileMapParams.return_bounds; delete tileMapParams.order; delete tileMapParams.orderBy; return ( {showMapBoundaryButton && (