diff --git a/src/components/Explore/RootExploreContainer.js b/src/components/Explore/RootExploreContainer.js index d058b51f6..e47da2368 100644 --- a/src/components/Explore/RootExploreContainer.js +++ b/src/components/Explore/RootExploreContainer.js @@ -14,6 +14,7 @@ import type { Node } from "react"; import React, { useCallback, useEffect, + useRef, useState } from "react"; import { useCurrentUser } from "sharedHooks"; @@ -39,6 +40,7 @@ const RootExploreContainerWithContext = ( ): Node => { hasBlockedPermissions: hasBlockedLocationPermissions, checkPermissions } = useLocationPermission( ); + const previousHasLocationPermissions = useRef(); const { state, dispatch, makeSnapshot, defaultExploreLocation @@ -48,6 +50,23 @@ const RootExploreContainerWithContext = ( ): Node => { const [canFetch, setCanFetch] = useState( false ); + useEffect( () => { + async function locationPermissionsChanged() { + if ( hasLocationPermissions && !previousHasLocationPermissions.current + && state.placeMode === PLACE_MODE.NEARBY && !state.lat ) { + const exploreLocation = await defaultExploreLocation(); + dispatch( { + type: EXPLORE_ACTION.SET_EXPLORE_LOCATION, + exploreLocation + } ); + } + + previousHasLocationPermissions.current = hasLocationPermissions; + } + + locationPermissionsChanged(); + }, [defaultExploreLocation, dispatch, hasLocationPermissions, state] ); + useEffect( () => { if ( state.placeMode === PLACE_MODE.NEARBY ) { checkPermissions();