From e0608eb05b3ac3b1ec927179675c7d4395163fee Mon Sep 17 00:00:00 2001 From: bokhonglo Date: Tue, 28 Apr 2026 14:20:29 +0700 Subject: [PATCH] update layout --- src/app/(admin)/layout.tsx | 56 -------------------------- src/app/(admin)/page.tsx | 42 ------------------- src/app/page.tsx | 9 +++++ src/app/user/layout.tsx | 17 +++++--- src/layout/AppHeader.tsx | 82 ++++++++++++++++++++------------------ 5 files changed, 63 insertions(+), 143 deletions(-) delete mode 100644 src/app/(admin)/layout.tsx delete mode 100644 src/app/(admin)/page.tsx create mode 100644 src/app/page.tsx diff --git a/src/app/(admin)/layout.tsx b/src/app/(admin)/layout.tsx deleted file mode 100644 index 880e52c..0000000 --- a/src/app/(admin)/layout.tsx +++ /dev/null @@ -1,56 +0,0 @@ -"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"; - -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(); - }, []) - - - // Dynamic class for main content margin based on sidebar state - const mainContentMargin = isMobileOpen - ? "ml-0" - : isExpanded || isHovered - ? "lg:ml-[290px]" - : "lg:ml-[90px]"; - - return ( -
- {/* Sidebar and Backdrop */} - - - {/* Main Content Area */} -
- {/* Header */} - - {/* Page Content */} -
{children}
-
-
- ); -} diff --git a/src/app/(admin)/page.tsx b/src/app/(admin)/page.tsx deleted file mode 100644 index 65843b4..0000000 --- a/src/app/(admin)/page.tsx +++ /dev/null @@ -1,42 +0,0 @@ -import type { Metadata } from "next"; -import { EcommerceMetrics } from "@/components/ecommerce/EcommerceMetrics"; -import React from "react"; -import MonthlyTarget from "@/components/ecommerce/MonthlyTarget"; -import MonthlySalesChart from "@/components/ecommerce/MonthlySalesChart"; -import StatisticsChart from "@/components/ecommerce/StatisticsChart"; -import RecentOrders from "@/components/ecommerce/RecentOrders"; -import DemographicCard from "@/components/ecommerce/DemographicCard"; - -export const metadata: Metadata = { - title: - "Admin Dashboard", - description: "This is Dashboard Home for History Web", -}; - -export default function Ecommerce() { - return ( -
-
- - - -
- -
- -
- -
- -
- -
- -
- -
- -
-
- ); -} diff --git a/src/app/page.tsx b/src/app/page.tsx new file mode 100644 index 0000000..ce17266 --- /dev/null +++ b/src/app/page.tsx @@ -0,0 +1,9 @@ +import AdminLayout from "./user/layout"; + +export default function Page() { + return ( + +
Page
+
+ ); +} diff --git a/src/app/user/layout.tsx b/src/app/user/layout.tsx index 880e52c..210c036 100644 --- a/src/app/user/layout.tsx +++ b/src/app/user/layout.tsx @@ -8,6 +8,7 @@ import { apiGetCurrentUser } from "@/service/auth"; import { setUserData } from "@/store/features/userSlice"; import React, { useEffect } from "react"; import { useDispatch } from "react-redux"; +import { usePathname } from "next/navigation"; export default function AdminLayout({ children, @@ -16,6 +17,8 @@ export default function AdminLayout({ }) { const { isExpanded, isHovered, isMobileOpen } = useSidebar(); const dispatch = useDispatch() + const pathname = usePathname(); + const isHomePage = pathname === "/"; useEffect(() => { const fetchUser = async () => { @@ -31,17 +34,19 @@ export default function AdminLayout({ // Dynamic class for main content margin based on sidebar state - const mainContentMargin = isMobileOpen + const mainContentMargin = isHomePage ? "ml-0" - : isExpanded || isHovered - ? "lg:ml-[290px]" - : "lg:ml-[90px]"; + : isMobileOpen + ? "ml-0" + : isExpanded || isHovered + ? "lg:ml-[290px]" + : "lg:ml-[90px]"; return (
{/* Sidebar and Backdrop */} - - + {!isHomePage && } + {!isHomePage && } {/* Main Content Area */}
{ const [isApplicationMenuOpen, setApplicationMenuOpen] = useState(false); const { isMobileOpen, toggleSidebar, toggleMobileSidebar } = useSidebar(); + const pathname = usePathname(); + const isHomePage = pathname === "/"; const handleToggle = () => { if (window.innerWidth >= 1024) { @@ -44,44 +47,46 @@ const AppHeader: React.FC = () => {
- + {!isHomePage && ( + + )} { }; export default AppHeader; -