"use client"; import { Box, Stack, Text, SegmentedControl, ScrollArea, Burger, Drawer, Button, } from "@mantine/core"; import Link from "next/link"; import { usePathname, useRouter } from "next/navigation"; import React, { useEffect, useState } from "react"; import { useMediaQuery } from "@mantine/hooks"; import Image from "next/image"; import logo from "@/app/image/logo1.jpg"; export default function Layout({ children }: { children: React.ReactNode }) { const [authorized, SetAuthorized] = useState(null); const router = useRouter(); const pathname = usePathname(); const isMobile = useMediaQuery("(max-width: 768px)"); const [drawerOpened, setDrawerOpened] = useState(false); /* Beneficiary Options */ const links = [ { label: "View Beneficiary", href: "/beneficiary" }, { label: "Add Beneficiary", href: "/beneficiary/add_beneficiary" }, ]; useEffect(() => { const token = localStorage.getItem("access_token"); if (!token) { SetAuthorized(false); router.push("/login"); } else { SetAuthorized(true); } }, []); if (!authorized) return null; return ( {/* ---------------- DESKTOP HEADER ---------------- */} {!isMobile && ( <> {/* Segmented Tabs */} router.push(value)} data={links.map((link) => ({ label: link.label, value: link.href, }))} styles={{ root: { backgroundColor: "#e9ecef", borderRadius: 999, padding: 4, }, control: { borderRadius: 999, transition: "0.3s", }, indicator: { borderRadius: 999, background: "linear-gradient(90deg, #02a355 0%, #5483c9ff 100%)", boxShadow: "0 3px 8px rgba(0,0,0,0.15)", }, label: { fontSize: 13, padding: "6px 10px", textAlign: "center", fontWeight: 600, color: "#000", }, }} /> )} {/* ---------------- MOBILE HEADER ---------------- */} {isMobile && ( <> setDrawerOpened(true)} size="sm" color="white" /> Beneficiary {/* Drawer for Mobile */} setDrawerOpened(false)} padding="md" size="75%" overlayProps={{ color: "black", opacity: 0.55, blur: 3 }} > {/* Drawer Header */} KCCB Logo Beneficiary {/* Drawer Menu Items */} {links.map((link) => { const isActive = pathname === link.href; return ( ); })} )} {/* ---------------- CONTENT BODY ---------------- */} {children} ); }