diff --git a/src/pages/Homepage/Homepage.res b/src/pages/Homepage/Homepage.res index 5c79b7c..a0d54ba 100644 --- a/src/pages/Homepage/Homepage.res +++ b/src/pages/Homepage/Homepage.res @@ -21,8 +21,8 @@ let make = () => { { - let navigate = () => RescriptReactRouter.push("/misto") + onClick={RouterUtils.handleLinkClick(() => { + let navigate = () => RescriptReactRouter.push(`/misto#${RouterUtils.fromHomepageHash}`) if !supportsTransitionApi { navigate() } else { diff --git a/src/pages/MyPlaces/MyPlaces.res b/src/pages/MyPlaces/MyPlaces.res index 74da0fe..8a1b4d4 100644 --- a/src/pages/MyPlaces/MyPlaces.res +++ b/src/pages/MyPlaces/MyPlaces.res @@ -103,9 +103,14 @@ let make = () => { ) let (dialogState, setDialogState) = React.useState(() => Hidden) let hideDialog = _ => setDialogState(_ => Hidden) + let fromHomepage = RescriptReactRouter.useUrl()->RouterUtils.isFromHomepage <> - {switch pageDataStatus.data { - | Some((currentUser, usersPlaces)) => + {switch (fromHomepage, pageDataStatus.data) { + | (true, Some(_, [onePlaceOnly])) => + let singlePlaceLocation = RouterUtils.resolveRelativePath(`./${Db.getUid(onePlaceOnly)}`) + RescriptReactRouter.replace(singlePlaceLocation) + React.null + | (_, Some(currentUser, usersPlaces)) => let userDisplayName = currentUser.displayName->Null.getExn <> { let origin = Dom.location->Dom.Location.origin `${origin}/s/${shareLinkId}` } + +let fromHomepageHash = "from_homepage" + +let isFromHomepage = (url: RescriptReactRouter.url) => url.hash == fromHomepageHash