+
Categories
@@ -43,6 +51,7 @@ function Sidebar({
setSelectedScript={setSelectedScript}
selectedCategory={selectedCategory}
setSelectedCategory={setSelectedCategory}
+ onItemSelect={onItemSelect}
/>
diff --git a/frontend/src/components/navbar.tsx b/frontend/src/components/navbar.tsx
index 7057e7f07..b709b6564 100644
--- a/frontend/src/components/navbar.tsx
+++ b/frontend/src/components/navbar.tsx
@@ -1,5 +1,5 @@
"use client";
-import { useEffect, useState } from "react";
+import { Suspense, useEffect, useState } from "react";
import Image from "next/image";
import Link from "next/link";
@@ -8,6 +8,7 @@ import { navbarLinks } from "@/config/site-config";
import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "./ui/tooltip";
import { GitHubStarsButton } from "./animate-ui/components/buttons/github-stars";
import { Button } from "./animate-ui/components/buttons/button";
+import MobileSidebar from "./navigation/mobile-sidebar";
import { ThemeToggle } from "./ui/theme-toggle";
import CommandMenu from "./command-menu";
@@ -30,21 +31,25 @@ function Navbar() {
return (
<>
-
Proxmox VE Helper-Scripts
+
Proxmox VE Helper-Scripts
-
+
+
+
+
+
+
-
+
{navbarLinks.map(({ href, event, icon, text, mobileHidden }) => (
diff --git a/frontend/src/components/navigation/mobile-sidebar.tsx b/frontend/src/components/navigation/mobile-sidebar.tsx
new file mode 100644
index 000000000..653b82ee8
--- /dev/null
+++ b/frontend/src/components/navigation/mobile-sidebar.tsx
@@ -0,0 +1,116 @@
+"use client";
+
+import { useCallback, useEffect, useState } from "react";
+import { useQueryState } from "nuqs";
+import { Menu } from "lucide-react";
+
+import type { Category, Script } from "@/lib/types";
+
+import { ScriptItem } from "@/app/scripts/_components/script-item";
+import Sidebar from "@/app/scripts/_components/sidebar";
+import { fetchCategories } from "@/lib/data";
+
+import { Sheet, SheetContent, SheetHeader, SheetTitle, SheetTrigger } from "../ui/sheet";
+import { Button } from "../ui/button";
+
+function MobileSidebar() {
+ const [isOpen, setIsOpen] = useState(false);
+ const [isLoading, setIsLoading] = useState(false);
+ const [categories, setCategories] = useState([]);
+ const [lastViewedScript, setLastViewedScript] = useState