aboutsummaryrefslogtreecommitdiffstats
path: root/apps/web/components/shared/sidebar/Sidebar.tsx
diff options
context:
space:
mode:
authorMohamed Bassem <me@mbassem.com>2024-12-30 12:15:35 +0000
committerMohamed Bassem <me@mbassem.com>2024-12-30 12:15:35 +0000
commit5902664658a36e4afc81327eea9f8eef05561bcb (patch)
treeb72415e988efb5cd95e4a28634b0b53bf125b168 /apps/web/components/shared/sidebar/Sidebar.tsx
parent179f00b15525b024b6823088ef8fb94b7106b4f0 (diff)
downloadkarakeep-5902664658a36e4afc81327eea9f8eef05561bcb.tar.zst
refactor: Refactor sidebar into a shared component
Diffstat (limited to '')
-rw-r--r--apps/web/components/shared/sidebar/Sidebar.tsx (renamed from apps/web/components/admin/sidebar/Sidebar.tsx)22
1 files changed, 12 insertions, 10 deletions
diff --git a/apps/web/components/admin/sidebar/Sidebar.tsx b/apps/web/components/shared/sidebar/Sidebar.tsx
index 8a5d615a..bd5d23e6 100644
--- a/apps/web/components/admin/sidebar/Sidebar.tsx
+++ b/apps/web/components/shared/sidebar/Sidebar.tsx
@@ -1,24 +1,25 @@
-import { redirect } from "next/navigation";
-import SidebarItem from "@/components/shared/sidebar/SidebarItem";
import { useTranslation } from "@/lib/i18n/server";
-import { getServerAuthSession } from "@/server/auth";
+import { TFunction } from "i18next";
import serverConfig from "@hoarder/shared/config";
-import { adminSidebarItems } from "./items";
+import SidebarItem from "./SidebarItem";
+import { TSidebarItem } from "./TSidebarItem";
-export default async function Sidebar() {
+export default async function Sidebar({
+ items,
+ extraSections,
+}: {
+ items: (t: TFunction) => TSidebarItem[];
+ extraSections?: React.ReactNode;
+}) {
const { t } = await useTranslation();
- const session = await getServerAuthSession();
- if (!session) {
- redirect("/");
- }
return (
<aside className="flex h-[calc(100vh-64px)] w-60 flex-col gap-5 border-r p-4 ">
<div>
<ul className="space-y-2 text-sm font-medium">
- {adminSidebarItems(t).map((item) => (
+ {items(t).map((item) => (
<SidebarItem
key={item.name}
logo={item.icon}
@@ -28,6 +29,7 @@ export default async function Sidebar() {
))}
</ul>
</div>
+ {extraSections}
<div className="mt-auto flex items-center border-t pt-2 text-sm text-gray-400">
Hoarder v{serverConfig.serverVersion}
</div>