From 179f00b15525b024b6823088ef8fb94b7106b4f0 Mon Sep 17 00:00:00 2001
From: Mohamed Bassem <me@mbassem.com>
Date: Mon, 30 Dec 2024 11:27:32 +0000
Subject: feat: Change the admin page to be tabbed similar to that of the
 settings page

---
 apps/web/components/admin/sidebar/Sidebar.tsx | 36 +++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)
 create mode 100644 apps/web/components/admin/sidebar/Sidebar.tsx

(limited to 'apps/web/components/admin/sidebar/Sidebar.tsx')

diff --git a/apps/web/components/admin/sidebar/Sidebar.tsx b/apps/web/components/admin/sidebar/Sidebar.tsx
new file mode 100644
index 00000000..8a5d615a
--- /dev/null
+++ b/apps/web/components/admin/sidebar/Sidebar.tsx
@@ -0,0 +1,36 @@
+import { redirect } from "next/navigation";
+import SidebarItem from "@/components/shared/sidebar/SidebarItem";
+import { useTranslation } from "@/lib/i18n/server";
+import { getServerAuthSession } from "@/server/auth";
+
+import serverConfig from "@hoarder/shared/config";
+
+import { adminSidebarItems } from "./items";
+
+export default async function Sidebar() {
+  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) => (
+            <SidebarItem
+              key={item.name}
+              logo={item.icon}
+              name={item.name}
+              path={item.path}
+            />
+          ))}
+        </ul>
+      </div>
+      <div className="mt-auto flex items-center border-t pt-2 text-sm text-gray-400">
+        Hoarder v{serverConfig.serverVersion}
+      </div>
+    </aside>
+  );
+}
-- 
cgit v1.2.3-70-g09d2

