'use client' import colors from "@/con/colors"; import { ActionIcon, AppShell, AppShellHeader, AppShellMain, AppShellNavbar, Burger, Flex, Group, Image, NavLink, ScrollArea, Text, Tooltip, rem } from "@mantine/core"; import { useDisclosure } from "@mantine/hooks"; import { IconChevronLeft, IconChevronRight, IconLogout2 } from "@tabler/icons-react"; import _ from "lodash"; import Link from "next/link"; import { useRouter, useSelectedLayoutSegments } from "next/navigation"; import { navBar } from "./_com/list_PageAdmin"; export default function Layout({ children }: { children: React.ReactNode }) { const [opened, { toggle }] = useDisclosure(); const [desktopOpened, { toggle: toggleDesktop }] = useDisclosure(true); const router = useRouter(); const segments = useSelectedLayoutSegments().map((s) => _.lowerCase(s)); return ( Logo Darmasaba Admin Darmasaba {!desktopOpened && ( )} { router.push("/darmasaba"); }} color={colors["blue-button"]} radius="xl" size="lg" variant="gradient" gradient={{ from: colors["blue-button"], to: "#228be6" }} > Logo Darmasaba { router.push("/login"); }} color={colors["blue-button"]} radius="xl" size="lg" variant="gradient" gradient={{ from: colors["blue-button"], to: "#228be6" }} > {navBar.map((v, k) => { const isParentActive = segments.includes(_.lowerCase(v.name)); return ( {v.name} } style={{ borderRadius: rem(10), marginBottom: rem(4), transition: "background 150ms ease", }} variant="light" active={isParentActive} > {v.children.map((child, key) => { const isChildActive = segments.includes( _.lowerCase(child.name) ); return ( {child.name} } style={{ borderRadius: rem(8), marginBottom: rem(2), transition: "background 150ms ease", }} active={isChildActive} component={Link} /> ); })} ); })} {children} ); }