Files
History-user/src/app/user/layout.tsx
T
BoKhongLo 488eee1a25
Build and Release / release (push) Successful in 36s
responsive
2026-05-19 21:52:29 +07:00

53 lines
1.4 KiB
TypeScript

"use client";
import { useSidebar } from "@/context/SidebarContext";
import AppHeader from "@/layout/AppHeader";
import AppSidebar from "@/layout/AppSidebar";
import Backdrop from "@/layout/Backdrop";
import { apiGetCurrentUser } from "@/service/auth";
import { setUserData } from "@/store/features/userSlice";
import React, { useEffect } from "react";
import { useDispatch } from "react-redux";
import ChatbotWidget from "@/components/ui/chat/ChatbotWidget";
export default function AdminLayout({
children,
}: {
children: React.ReactNode;
}) {
const { isExpanded, isHovered, isMobileOpen } = useSidebar();
const dispatch = useDispatch()
useEffect(() => {
const fetchUser = async () => {
try {
const userData = await apiGetCurrentUser();
dispatch(setUserData(userData.data));
} catch (err) {
console.error("Lỗi:", err);
}
};
fetchUser();
}, [])
const mainContentMargin = isMobileOpen
? "ml-0"
: isExpanded || isHovered
? "lg:ml-[290px]"
: "lg:ml-[0px]";
return (
<div className="min-h-screen xl:flex">
<AppSidebar />
<Backdrop />
<div
className={`flex-1 transition-all duration-300 ease-in-out ${mainContentMargin}`}
>
{/* <AppHeader /> */}
<div className="mx-auto p-4 pt-0 max-w-[1240px]">{children}</div>
</div>
<ChatbotWidget />
</div>
);
}