@@ -4,11 +4,11 @@ import { DropdownNav, NavHandler, NavLinks } from "./Nav";
4
4
import { useMedia } from "react-use" ;
5
5
import {
6
6
epochThumbPadding ,
7
- headerBottomSpacing ,
8
7
headerHeight ,
9
8
headerSpacing ,
10
9
logoRightSpacing ,
11
10
maxZIndex ,
11
+ slotNavWithoutListWidth ,
12
12
slotsNavSpacing ,
13
13
} from "../../consts" ;
14
14
import Logo from "./Logo" ;
@@ -18,13 +18,28 @@ import { isNavCollapsedAtom } from "../../atoms";
18
18
import { useAtomValue } from "jotai" ;
19
19
import NavBlur from "../Navigation/NavBlur" ;
20
20
import { slotNavBackgroundColor } from "../../colors" ;
21
+ import { useCurrentRoute } from "../../hooks/useCurrentRoute" ;
22
+ import { useMemo } from "react" ;
21
23
22
24
export default function Header ( ) {
23
25
const showDropdownNav = useMedia ( "(max-width: 900px)" ) ;
24
26
const isXNarrow = useMedia ( "(max-width: 401px)" ) ;
25
27
const isNarrow = useMedia ( "(max-width: 768px)" ) ;
26
28
const isNavCollapsed = useAtomValue ( isNavCollapsedAtom ) ;
27
29
30
+ const currentRoute = useCurrentRoute ( ) ;
31
+ const isSchedule = currentRoute === "Schedule" ;
32
+
33
+ const leftBackground = useMemo ( ( ) => {
34
+ if ( isNavCollapsed ) return undefined ;
35
+ if ( isSchedule ) {
36
+ // only color the epoch bar portion
37
+ const width = `${ slotNavWithoutListWidth + epochThumbPadding } px` ;
38
+ return `linear-gradient(to right, ${ slotNavBackgroundColor } 0px ${ width } , transparent ${ width } 100%)` ;
39
+ }
40
+ return slotNavBackgroundColor ;
41
+ } , [ isNavCollapsed , isSchedule ] ) ;
42
+
28
43
const useExtraNarrowGap = isNavCollapsed && isXNarrow ;
29
44
const extraNarrowGap = "3px" ;
30
45
@@ -47,13 +62,11 @@ export default function Header() {
47
62
gapX = { useExtraNarrowGap ? extraNarrowGap : `${ logoRightSpacing } px` }
48
63
// slots nav background color boundary
49
64
pr = { useExtraNarrowGap ? extraNarrowGap : `${ slotsNavSpacing } px` }
50
- pb = { `${ headerBottomSpacing } ` }
51
65
style = { {
52
- marginLeft : - slotsNavSpacing ,
53
- backgroundColor : isNavCollapsed
54
- ? undefined
55
- : slotNavBackgroundColor ,
66
+ background : leftBackground ,
56
67
} }
68
+ // align with epoch bar thumb overflow padding
69
+ ml = { `${ - epochThumbPadding } px` }
57
70
pl = { `${ epochThumbPadding } px` }
58
71
>
59
72
{ isNarrow && isNavCollapsed && (
@@ -78,7 +91,6 @@ export default function Header() {
78
91
: // blur color boundary
79
92
`${ headerSpacing - slotsNavSpacing } px`
80
93
}
81
- pb = { `${ headerBottomSpacing } ` }
82
94
>
83
95
< NavHandler />
84
96
{ showDropdownNav ? < DropdownNav /> : < NavLinks /> }
0 commit comments