"use client"; import React, { useEffect, useState } from 'react'; import { Box, Button, Divider, Group, Image, Stack, Text, Title } from '@mantine/core'; import { IconBook, IconCurrencyRupee, IconHome, IconLogout, IconPhoneFilled, IconSettings } from '@tabler/icons-react'; import Link from 'next/link'; import { useRouter, usePathname } from "next/navigation"; import { Providers } from '../providers'; import logo from '@/app/image/logo.jpg'; import NextImage from 'next/image'; import { notifications } from '@mantine/notifications'; export default function RootLayout({ children }: { children: React.ReactNode }) { const router = useRouter(); const pathname = usePathname(); const [authorized, SetAuthorized] = useState(null); const [userLastLoginDetails, setUserLastLoginDetails] = useState(null); async function handleLogout(e: React.FormEvent) { e.preventDefault(); localStorage.removeItem("access_token"); router.push("/login"); } useEffect(() => { const token = localStorage.getItem("access_token"); if (!token) { SetAuthorized(false); router.push("/login"); } else { SetAuthorized(true); } }, []); async function handleFetchUserDetails(e: React.FormEvent) { e.preventDefault(); const token = localStorage.getItem("access_token"); const response = await fetch('api/auth/user_details', { method: 'GET', headers: { 'Content-Type': 'application/json', 'Authorization': `Bearer ${token}` }, }); const data = await response.json(); if (response.ok) { return data; } else { notifications.show({ withBorder: true, color: "red", title: "Please try again later", message: "Unable to fetch timestamp, please try again later", autoClose: 5000, }); } } useEffect(() => { const fetchLoginTime = async () => { const result = await handleFetchUserDetails({ preventDefault: () => { } } as React.FormEvent); if (result) { setUserLastLoginDetails(result.last_login); } }; fetchLoginTime(); }, []); const navItems = [ { href: "/home", label: "Home", icon: IconHome }, { href: "/accounts", label: "Accounts", icon: IconBook }, { href: "/funds_transfer", label: "Send Money", icon: IconCurrencyRupee }, { href: "/settings", label: "Settings", icon: IconSettings }, ]; if (authorized) { return (
ebanking Toll Free No : 1800-180-8008
Welcome, Rajat Kumar Maharana Last logged in at {userLastLoginDetails ? new Date(userLastLoginDetails).toLocaleString() : "N/A"} {navItems.map((item) => { const isActive = pathname.startsWith(item.href); const Icon = item.icon; return ( ); })}
{children}
© 2025 Kangra Central Co-Operative Bank
); } }