diff --git a/src/components/ObsDetails/DetailsTab/DetailsMapContainer.js b/src/components/ObsDetails/DetailsTab/DetailsMapContainer.js deleted file mode 100644 index 4d282505d..000000000 --- a/src/components/ObsDetails/DetailsTab/DetailsMapContainer.js +++ /dev/null @@ -1,79 +0,0 @@ -// @flow - -import Clipboard from "@react-native-clipboard/clipboard"; -import DetailsMap from "components/ObsDetails/DetailsTab/DetailsMap"; -import checkCamelAndSnakeCase from "components/ObsDetails/helpers/checkCamelAndSnakeCase"; -import { t } from "i18next"; -import type { Node } from "react"; -import React, { useRef, useState } from "react"; -import openMap from "react-native-open-maps"; - -type Props = { - observation: Object, - latitude: number, - longitude: number, - closeModal: Function, - obscured: bool, - tileMapParams: ?Object -} - -const DetailsMapContainer = ( { - observation, latitude, longitude, closeModal, obscured, tileMapParams -}: Props ): Node => { - const coordinateString = t( "Lat-Lon", { - latitude, - longitude - } ); - - const [showNotificationModal, setShowNotificationModal] = useState( false ); - const displayCoordinates = t( "Lat-Lon-Acc", { - latitude, - longitude, - accuracy: observation?.positional_accuracy?.toFixed( 0 ) || t( "none" ) - } ); - let displayLocation = ( - checkCamelAndSnakeCase( observation, "placeGuess" ) - || checkCamelAndSnakeCase( observation, "privatePlaceGuess" ) - ); - - if ( !displayLocation ) { - displayLocation = t( "No-Location" ); - } - - const closeShowNotificationModal = () => { - setShowNotificationModal( false ); - }; - const copyCoordinates = () => { - Clipboard.setString( coordinateString ); - setShowNotificationModal( true ); - // notification disappears after 2 secs - setTimeout( closeShowNotificationModal, 2000 ); - }; - - const shareMap = () => { - // takes in a provider prop but opens in browser instead of in app(google maps on iOS) - openMap( { query: `${latitude}, ${longitude}` } ); - }; - - const mapViewRef = useRef( null ); - - return ( - - ); -}; - -export default DetailsMapContainer; diff --git a/src/components/ObsDetails/DetailsTab/DetailsMapHeader.js b/src/components/ObsDetails/DetailsTab/DetailsMapHeader.js new file mode 100644 index 000000000..a763cee7b --- /dev/null +++ b/src/components/ObsDetails/DetailsTab/DetailsMapHeader.js @@ -0,0 +1,38 @@ +// @flow + +import { + Body4, + ObservationLocation +} from "components/SharedComponents"; +import { View } from "components/styledComponents"; +import type { Node } from "react"; +import React from "react"; +import { useTranslation } from "sharedHooks"; + +type Props = { + observation: Object, + obscured?: boolean +} + +const DetailsMapHeader = ( { + observation, + obscured +}: Props ): Node => { + const { t } = useTranslation( ); + return ( + + + {obscured && ( + + {t( "Obscured-observation-location-map-description" )} + + ) } + + ); +}; + +export default DetailsMapHeader; diff --git a/src/components/ObsDetails/DetailsTab/DetailsTab.js b/src/components/ObsDetails/DetailsTab/DetailsTab.js index f35c740f4..27f866457 100644 --- a/src/components/ObsDetails/DetailsTab/DetailsTab.js +++ b/src/components/ObsDetails/DetailsTab/DetailsTab.js @@ -7,6 +7,7 @@ import { Body4, Button, DateDisplay, + DetailsMap, Divider, Heading4, ObservationLocation, @@ -28,12 +29,14 @@ import { } from "sharedHooks"; import Attribution from "./Attribution"; -import DetailsMapContainer from "./DetailsMapContainer"; +import DetailsMapHeader from "./DetailsMapHeader"; type Props = { observation: Object } +const DETAILS_MAP_MODAL_STYLE = { margin: 0 }; + const ViewInBrowserButton = ( { id } ) => { const url = `https://inaturalist.org/observations/${id}`; const handlePress = useCallback( async () => { @@ -175,13 +178,15 @@ const DetailsTab = ( { observation }: Props ): Node => { positionalAccuracy={positionalAccuracy} tileMapParams={tileMapParams} withObsTiles={tileMapParams !== null} + scrollEnabled={false} + zoomEnabled={false} + zoomTapEnabled={false} /> ) } - {isObscured - && ( + {isObscured && ( {t( "Obscured-observation-location-map-description" )} @@ -222,18 +227,13 @@ const DetailsTab = ( { observation }: Props ): Node => { - - {t( "PROJECTS" )} - - { - // eslint-disable-next-line i18next/no-literal-string - } - TODO: this section does nothing - -