1- import React from "react" ;
1+ import React , { useCallback , useEffect , useState } from "react" ;
22import styled , { css } from "styled-components" ;
33
4+ import { useLocation } from "react-router-dom" ;
45import { useToggle } from "react-use" ;
56
67import KlerosSolutionsIcon from "svgs/menu-icons/kleros-solutions.svg" ;
@@ -13,6 +14,7 @@ import { responsiveSize } from "styles/responsiveSize";
1314import ConnectWallet from "components/ConnectWallet" ;
1415import LightButton from "components/LightButton" ;
1516import { Overlay } from "components/Overlay" ;
17+ import Onboarding from "components/Popup/MiniGuides/Onboarding" ;
1618
1719import Logo from "./Logo" ;
1820import DappList from "./navbar/DappList" ;
@@ -86,10 +88,25 @@ const PopupContainer = styled.div`
8688 z-index: 30;
8789` ;
8890
89- const DesktopHeader = ( ) => {
91+ const DesktopHeader : React . FC = ( ) => {
9092 const [ isDappListOpen , toggleIsDappListOpen ] = useToggle ( false ) ;
9193 const [ isHelpOpen , toggleIsHelpOpen ] = useToggle ( false ) ;
9294 const [ isSettingsOpen , toggleIsSettingsOpen ] = useToggle ( false ) ;
95+ const [ isOnboardingMiniGuidesOpen , toggleIsOnboardingMiniGuidesOpen ] = useToggle ( false ) ;
96+ const [ initialTab , setInitialTab ] = useState < number > ( 0 ) ;
97+ const location = useLocation ( ) ;
98+
99+ const initializeFragmentURL = useCallback ( ( ) => {
100+ const hash = location . hash ;
101+ const hasOnboardingPath = hash . includes ( "#onboarding" ) ;
102+ const hasNotificationsPath = hash . includes ( "#notifications" ) ;
103+ toggleIsOnboardingMiniGuidesOpen ( hasOnboardingPath ) ;
104+ toggleIsSettingsOpen ( hasNotificationsPath ) ;
105+ setInitialTab ( hasNotificationsPath ? 1 : 0 ) ;
106+ } , [ location . hash , toggleIsSettingsOpen , toggleIsOnboardingMiniGuidesOpen ] ) ;
107+
108+ useEffect ( initializeFragmentURL , [ initializeFragmentURL ] ) ;
109+
93110 useLockOverlayScroll ( isDappListOpen || isHelpOpen || isSettingsOpen ) ;
94111
95112 return (
@@ -124,9 +141,10 @@ const DesktopHeader = () => {
124141 < Overlay />
125142 { isDappListOpen && < DappList { ...{ toggleIsDappListOpen, isDappListOpen } } /> }
126143 { isHelpOpen && < Help { ...{ toggleIsHelpOpen, isHelpOpen } } /> }
127- { isSettingsOpen && < Settings { ...{ toggleIsSettingsOpen, isSettingsOpen } } /> }
144+ { isSettingsOpen && < Settings { ...{ toggleIsSettingsOpen, isSettingsOpen, initialTab } } /> }
128145 </ PopupContainer >
129146 ) }
147+ { isOnboardingMiniGuidesOpen && < Onboarding toggleMiniGuide = { toggleIsOnboardingMiniGuidesOpen } /> }
130148 </ >
131149 ) ;
132150} ;
0 commit comments