diff options
author | polwex <polwex@sortug.com> | 2025-09-11 01:48:14 +0700 |
---|---|---|
committer | polwex <polwex@sortug.com> | 2025-09-11 01:48:14 +0700 |
commit | b1d68ac307ed87d63e83820cbdf843fff0fd9f7f (patch) | |
tree | d6a684a70a80509e68ff667b842aa4e4c091906f /front/src/components/layout/Sidebar.tsx |
init
Diffstat (limited to 'front/src/components/layout/Sidebar.tsx')
-rw-r--r-- | front/src/components/layout/Sidebar.tsx | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/front/src/components/layout/Sidebar.tsx b/front/src/components/layout/Sidebar.tsx new file mode 100644 index 0000000..1568421 --- /dev/null +++ b/front/src/components/layout/Sidebar.tsx @@ -0,0 +1,81 @@ +import { RADIO, versionNum } from "@/logic/constants"; +import { useLocation } from "wouter"; +import useLocalState from "@/state/state"; +import key from "@/assets/icons/key.svg"; +import logo from "@/assets/icons/logo.png"; +import home from "@/assets/icons/home.svg"; +import bell from "@/assets/icons/bell.svg"; +import settings from "@/assets/icons/settings.svg"; +import messages from "@/assets/icons/messages.svg"; +import profile from "@/assets/icons/profile.svg"; +import pals from "@/assets/icons/pals.svg"; +import rumors from "@/assets/icons/rumors.svg"; +import { ThemeSwitcher } from "@/styles/ThemeSwitcher"; + +function SlidingMenu() { + const [_, navigate] = useLocation(); + const { api } = useLocalState(); + function goto(to: string) { + navigate(to); + } + return ( + <div id="left-menu"> + <div id="logo"> + <img src={logo} /> + <h3> Nostril </h3> + </div> + <h3>Feeds</h3> + <div className="opt" role="link" onClick={() => goto(`/feed/global`)}> + <img src={home} alt="" /> + <div>Home</div> + </div> + <div className="opt" role="link" onClick={() => goto(`/hark`)}> + <img src={bell} alt="" /> + <div>Activity</div> + </div> + <hr /> + + <div className="opt" role="link" onClick={() => goto("/chat")}> + <img src={messages} alt="" /> + <div>Messages</div> + </div> + <div className="opt" role="link" onClick={() => goto("/pals")}> + <img src={pals} alt="" /> + <div>Pals</div> + </div> + <hr /> + <div + className="opt" + role="link" + onClick={() => goto(`/feed/${api!.airlock.our}`)} + > + <img src={profile} alt="" /> + <div>Profile</div> + </div> + <div className="opt" role="link" onClick={() => goto("/feed/anon")}> + <img src={rumors} alt="" /> + <div>Rumors</div> + </div> + <hr /> + <div className="opt" role="link" onClick={() => goto("/radio")}> + <div className="img">{RADIO}</div> + <div>Radio</div> + </div> + <hr /> + <div + className="opt" + role="link" + onClick={() => (window.location.href = "/cookies")} + > + <img src={key} alt="" /> + <div>Logins</div> + </div> + <div className="opt" role="link" onClick={() => goto("/sets")}> + <img src={settings} alt="" /> + <div>Settings</div> + </div> + <ThemeSwitcher /> + </div> + ); +} +export default SlidingMenu; |