@@ -3,16 +3,22 @@ import styled, { css } from "styled-components";
33import { landscapeStyle } from "styles/landscapeStyle" ;
44import { useToggle } from "react-use" ;
55import { Link } from "react-router-dom" ;
6+ import { useLockOverlayScroll } from "hooks/useLockOverlayScroll" ;
67import KlerosSolutionsIcon from "svgs/menu-icons/kleros-solutions.svg" ;
78import KlerosCourtLogo from "svgs/header/kleros-court.svg" ;
89import ConnectWallet from "components/ConnectWallet" ;
910import LightButton from "components/LightButton" ;
1011import DappList from "./navbar/DappList" ;
1112import Explore from "./navbar/Explore" ;
1213import Menu from "./navbar/Menu" ;
14+ import Help from "./navbar/Menu/Help" ;
15+ import Settings from "./navbar/Menu/Settings" ;
16+ import { Overlay } from "components/Overlay" ;
17+ import { PopupContainer } from "." ;
1318
1419const Container = styled . div `
1520 display: none;
21+ position: absolute;
1622
1723 ${ landscapeStyle (
1824 ( ) => css `
@@ -70,36 +76,49 @@ const ConnectWalletContainer = styled.div`
7076` ;
7177
7278const DesktopHeader = ( ) => {
73- const [ isSolutionsOpen , toggleSolution ] = useToggle ( false ) ;
79+ const [ isDappListOpen , toggleIsDappListOpen ] = useToggle ( false ) ;
80+ const [ isHelpOpen , toggleIsHelpOpen ] = useToggle ( false ) ;
81+ const [ isSettingsOpen , toggleIsSettingsOpen ] = useToggle ( false ) ;
82+ useLockOverlayScroll ( isDappListOpen || isHelpOpen || isSettingsOpen ) ;
83+
7484 return (
75- < Container >
76- < LeftSide >
77- < LightButtonContainer >
78- < LightButton
79- text = ""
80- onClick = { ( ) => {
81- toggleSolution ( ) ;
82- } }
83- Icon = { StyledKlerosSolutionsIcon }
84- />
85- </ LightButtonContainer >
86- { isSolutionsOpen && < DappList toggleSolution = { toggleSolution } /> }
87- < StyledLink to = { "/" } >
88- < KlerosCourtLogo />
89- </ StyledLink >
90- </ LeftSide >
85+ < >
86+ < Container >
87+ < LeftSide >
88+ < LightButtonContainer >
89+ < LightButton
90+ text = ""
91+ onClick = { ( ) => {
92+ toggleIsDappListOpen ( ) ;
93+ } }
94+ Icon = { StyledKlerosSolutionsIcon }
95+ / >
96+ </ LightButtonContainer >
97+ < StyledLink to = { "/" } >
98+ < KlerosCourtLogo />
99+ </ StyledLink >
100+ </ LeftSide >
91101
92- < MiddleSide >
93- < Explore />
94- </ MiddleSide >
102+ < MiddleSide >
103+ < Explore />
104+ </ MiddleSide >
95105
96- < RightSide >
97- < ConnectWalletContainer >
98- < ConnectWallet />
99- </ ConnectWalletContainer >
100- < Menu />
101- </ RightSide >
102- </ Container >
106+ < RightSide >
107+ < ConnectWalletContainer >
108+ < ConnectWallet />
109+ </ ConnectWalletContainer >
110+ < Menu { ...{ toggleIsHelpOpen, toggleIsSettingsOpen } } />
111+ </ RightSide >
112+ </ Container >
113+ { ( isDappListOpen || isHelpOpen || isSettingsOpen ) && (
114+ < PopupContainer >
115+ < Overlay />
116+ { isDappListOpen && < DappList { ...{ toggleIsDappListOpen, isDappListOpen } } /> }
117+ { isHelpOpen && < Help { ...{ toggleIsHelpOpen, isHelpOpen } } /> }
118+ { isSettingsOpen && < Settings { ...{ toggleIsSettingsOpen, isSettingsOpen } } /> }
119+ </ PopupContainer >
120+ ) }
121+ </ >
103122 ) ;
104123} ;
105124export default DesktopHeader ;
0 commit comments