@@ -14,33 +14,29 @@ import {
14
14
import Logo from "./Logo" ;
15
15
import { CluserIndicator , Cluster } from "./Cluster" ;
16
16
import NavCollapseToggle from "../Navigation/NavCollapseToggle" ;
17
- import { isNavCollapsedAtom } from "../../atoms" ;
18
- import { useAtomValue } from "jotai" ;
19
17
import NavBlur from "../Navigation/NavBlur" ;
20
18
import { slotNavBackgroundColor } from "../../colors" ;
21
- import { useCurrentRoute } from "../../hooks/useCurrentRoute" ;
22
19
import { useMemo } from "react" ;
20
+ import { useSlotsNavigation } from "../../hooks/useSlotsNavigation" ;
23
21
24
22
export default function Header ( ) {
25
23
const showDropdownNav = useMedia ( "(max-width: 900px)" ) ;
26
24
const isXNarrow = useMedia ( "(max-width: 401px)" ) ;
27
- const isNarrow = useMedia ( "(max-width: 768px)" ) ;
28
- const isNavCollapsed = useAtomValue ( isNavCollapsedAtom ) ;
29
25
30
- const currentRoute = useCurrentRoute ( ) ;
31
- const isSchedule = currentRoute === "Schedule" ;
26
+ const { isNarrowScreen , blurBackground , showNav , showOnlyEpochBar } =
27
+ useSlotsNavigation ( ) ;
32
28
33
29
const leftBackground = useMemo ( ( ) => {
34
- if ( isNavCollapsed ) return undefined ;
35
- if ( isSchedule ) {
30
+ if ( ! showNav ) return undefined ;
31
+ if ( showOnlyEpochBar ) {
36
32
// only color the epoch bar portion
37
33
const width = `${ slotNavWithoutListWidth + epochThumbPadding } px` ;
38
34
return `linear-gradient(to right, ${ slotNavBackgroundColor } 0px ${ width } , transparent ${ width } 100%)` ;
39
35
}
40
36
return slotNavBackgroundColor ;
41
- } , [ isNavCollapsed , isSchedule ] ) ;
37
+ } , [ showOnlyEpochBar , showNav ] ) ;
42
38
43
- const useExtraNarrowGap = isNavCollapsed && isXNarrow ;
39
+ const useExtraNarrowGap = ! showNav && isXNarrow ;
44
40
const extraNarrowGap = "3px" ;
45
41
46
42
return (
@@ -69,11 +65,7 @@ export default function Header() {
69
65
ml = { `${ - epochThumbPadding } px` }
70
66
pl = { `${ epochThumbPadding } px` }
71
67
>
72
- { isNarrow && isNavCollapsed && (
73
- < div style = { { width : isNavCollapsed ? undefined : "0" } } >
74
- < NavCollapseToggle isLarge />
75
- </ div >
76
- ) }
68
+ { isNarrowScreen && ! showNav && < NavCollapseToggle isLarge /> }
77
69
< Logo />
78
70
< Cluster />
79
71
</ Flex >
@@ -97,11 +89,11 @@ export default function Header() {
97
89
98
90
< IdentityKey />
99
91
100
- { isNarrow && ! isNavCollapsed && < NavBlur /> }
92
+ { blurBackground && < NavBlur /> }
101
93
</ Flex >
102
94
</ Flex >
103
95
104
- { ! isNarrow && (
96
+ { ! isNarrowScreen && (
105
97
< div
106
98
style = { {
107
99
position : "relative" ,
@@ -114,7 +106,7 @@ export default function Header() {
114
106
left : 0 ,
115
107
} }
116
108
>
117
- < NavCollapseToggle isFloating = { isNavCollapsed } />
109
+ < NavCollapseToggle isFloating = { ! showNav } />
118
110
</ div >
119
111
</ div >
120
112
) }
0 commit comments