From 344815fc45fe1bba516d789dbc22651bcba76799 Mon Sep 17 00:00:00 2001 From: budowski Date: Fri, 30 Aug 2024 22:42:26 +0200 Subject: [PATCH] Show nearby results in Explore after granting permission from Filters (#2013) Closes #2004 --------- Co-authored-by: Ken-ichi Ueda --- .../Explore/RootExploreContainer.js | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) 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();