Skip to content

Commit 70986b4

Browse files
committed
fix: highlight selected route in sidebar
also introduces some style changes
1 parent b305320 commit 70986b4

File tree

3 files changed

+67
-69
lines changed

3 files changed

+67
-69
lines changed

src/app/notebook/NotebookView.module.css

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,10 @@
33
border: solid 1px var(--mantine-color-light-border);
44
cursor: pointer;
55

6-
p, div, ul, ol {
6+
p,
7+
div,
8+
ul,
9+
ol {
710
margin: 0;
811
}
912
ul {
@@ -27,4 +30,4 @@
2730
&.dragging {
2831
box-shadow: var(--mantine-shadow-md);
2932
}
30-
}
33+
}
Lines changed: 56 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -1,75 +1,67 @@
11
.sidebar {
2-
width: var(--mantine-sidebar-width);
3-
height: 100%;
4-
& .topRow {
5-
display: flex;
6-
padding-left: var(--mantine-spacing-xs);
7-
padding-top: 0.5rem;
8-
padding-bottom: 0.5rem;
9-
height: 3.25rem;
10-
justify-content: space-between;
11-
align-items: center;
12-
}
13-
& .sidebarItem {
14-
border-radius: var(--mantine-radius-sm);
15-
16-
&[data-active] span {
17-
font-weight: 600;
18-
color: swap(theme, "primary", 6, 6);
2+
width: var(--mantine-sidebar-width);
3+
height: 100%;
4+
& .topRow {
5+
display: flex;
6+
padding-left: var(--mantine-spacing-xs);
7+
padding-top: 0.5rem;
8+
padding-bottom: 0.5rem;
9+
height: 3.25rem;
10+
justify-content: space-between;
11+
align-items: center;
1912
}
2013

21-
&:active {
22-
transform: scale(0.99);
23-
}
14+
& .sidebarItem {
15+
transition: none;
16+
border-radius: var(--mantine-radius-sm);
2417

25-
& .sidebarItemLabel {
26-
font-size: var(--mantine-font-size-sm);
27-
font-weight: 300;
28-
}
18+
& .sidebarItemLabel {
19+
font-size: var(--mantine-font-size-sm);
20+
}
2921

30-
& .sidebarItemIcon {
31-
svg {
32-
stroke-width: 1.5px;
33-
width: 1.2rem;
34-
}
22+
& .sidebarItemIcon {
23+
svg {
24+
stroke-width: 1.5px;
25+
width: 1.2rem;
26+
}
27+
}
3528
}
36-
}
3729

38-
/*MINIMAL MODE*/
39-
&.minimalMode {
40-
width: 3.5rem;
41-
display: inline-block;
42-
padding: var(--mantine-spacing-md) var(--mantine-spacing-xs);
43-
& .topRow {
44-
display: none;
45-
}
46-
& .sidebarItem {
47-
gap: 0;
48-
padding: 0.5rem;
49-
width: 2.5rem;
50-
justify-content: center;
51-
& .sidebarItemBody {
52-
display: none;
53-
}
54-
& .sidebarItemIcon {
55-
margin-right: 0;
56-
}
30+
/*MINIMAL MODE*/
31+
&.minimalMode {
32+
width: 3.5rem;
33+
display: inline-block;
34+
padding: var(--mantine-spacing-md) var(--mantine-spacing-xs);
35+
& .topRow {
36+
display: none;
37+
}
38+
& .sidebarItem {
39+
gap: 0;
40+
padding: 0.5rem;
41+
width: 2.5rem;
42+
justify-content: center;
43+
& .sidebarItemBody {
44+
display: none;
45+
}
46+
& .sidebarItemIcon {
47+
margin-right: 0;
48+
}
49+
}
5750
}
58-
}
5951

60-
/*FULLSCREEN MODE*/
61-
&.fullscreenMode {
62-
width: "100%";
63-
visible: hidden;
64-
transform: translateX(-100vw);
65-
transition: transform 200ms ease-in-out;
66-
box-shadow: var(--mantine-shadow-xl);
67-
&.landscapeMode {
68-
transform: translateX(-100vh);
69-
}
70-
&.fullscreenModeOpened {
71-
transform: translateX(0);
72-
visible: visible;
52+
/*FULLSCREEN MODE*/
53+
&.fullscreenMode {
54+
width: "100%";
55+
visible: hidden;
56+
transform: translateX(-100vw);
57+
transition: transform 200ms ease-in-out;
58+
box-shadow: var(--mantine-shadow-xl);
59+
&.landscapeMode {
60+
transform: translateX(-100vh);
61+
}
62+
&.fullscreenModeOpened {
63+
transform: translateX(0);
64+
visible: visible;
65+
}
7366
}
74-
}
7567
}

src/app/shell/Sidebar/Sidebar.tsx

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import {
2020
} from "@tabler/icons-react";
2121
import cx from "clsx";
2222
import { t } from "i18next";
23-
import { useNavigate } from "react-router-dom";
23+
import { useLocation, useNavigate } from "react-router-dom";
2424
import classes from "./Sidebar.module.css";
2525

2626
import SpotlightCard from "../Spotlight/Spotlight";
@@ -43,6 +43,8 @@ const InteractiveNavLink = ({
4343
closeMenu: () => void;
4444
}) => {
4545
const navigate = useNavigate();
46+
const location = useLocation();
47+
4648
return (
4749
<Tooltip
4850
label={label}
@@ -57,7 +59,7 @@ const InteractiveNavLink = ({
5759
label: classes.sidebarItemLabel,
5860
section: classes.sidebarItemIcon,
5961
}}
60-
variant="subtle"
62+
variant="filled"
6163
label={label}
6264
leftSection={icon}
6365
onClick={() => {
@@ -126,6 +128,7 @@ function Sidebar({
126128
</Group>
127129
<SpotlightCard minimalMode={minimalMode} />
128130

131+
<Stack gap={0}>
129132
<InteractiveNavLink
130133
label={t("home.title")}
131134
path="/home"
@@ -166,7 +169,7 @@ function Sidebar({
166169
minimalMode={minimalMode}
167170
fullscreenMode={fullscreenMode}
168171
closeMenu={menuHandlers.close}
169-
/>
172+
/></Stack>
170173
<DeckList minimalMode={minimalMode} />
171174
</Stack>
172175
<CloudSection minimalMode={minimalMode} />

0 commit comments

Comments
 (0)