summaryrefslogtreecommitdiff
path: root/front/src/components/layout/Sidebar.tsx
diff options
context:
space:
mode:
authorpolwex <polwex@sortug.com>2025-09-11 01:48:14 +0700
committerpolwex <polwex@sortug.com>2025-09-11 01:48:14 +0700
commitb1d68ac307ed87d63e83820cbdf843fff0fd9f7f (patch)
treed6a684a70a80509e68ff667b842aa4e4c091906f /front/src/components/layout/Sidebar.tsx
init
Diffstat (limited to 'front/src/components/layout/Sidebar.tsx')
-rw-r--r--front/src/components/layout/Sidebar.tsx81
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;