"use client"; import React, { useState, useEffect } from "react"; import { Text, Box, Image, Stack, Divider, Title, Collapse, Group, UnstyledButton, } from "@mantine/core"; import { notifications } from "@mantine/notifications"; import { Providers } from "@/app/providers"; import { useRouter } from "next/navigation"; import NextImage from "next/image"; import logo from "@/app/image/logo1.jpg"; import { IconLogout, IconPhoneFilled, IconUsers, IconChevronDown, IconChevronUp, IconReportSearch, IconSettings, } from "@tabler/icons-react"; import UserConfiguration from "./UserConfiguration"; import ViewUserConfiguration from "./ViewUserConfiguration"; import UnlockedUsers from "./UnlockedUsers"; export default function Login() { const router = useRouter(); const [authorized, SetAuthorized] = useState(null); const [view, setView] = useState(null); const [name, setName] = useState(null); const [lastLoginDetails, setLastLoginDetails] = useState(null); const [userMenuOpen, setUserMenuOpen] = useState(true); const [configMenuOpen, setConfigMenuOpen] = useState(false); const [reportOpen, setReportMenuOpen] = useState(false); async function handleLogout(e: React.FormEvent) { e.preventDefault(); localStorage.clear(); sessionStorage.clear(); router.push("/administrator/login"); } async function handleFetchUserDetails(e: React.FormEvent) { e.preventDefault(); const token = localStorage.getItem("admin_access_token"); const response = await fetch("/api/auth/admin/admin_details", { method: "GET", headers: { "Content-Type": "application/json", "X-Login-Type": "Admin", Authorization: `Bearer ${token}`, }, }); const data = await response.json(); if (response.ok) { return data; } else if (response.status === 401 || data.message === "invalid or expired token") { localStorage.removeItem("admin_access_token"); router.push("/administrator/login"); } 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 token = localStorage.getItem("admin_access_token"); if (!token) { SetAuthorized(false); router.push("/administrator/login/"); } else { SetAuthorized(true); const fetchLoginTime = async () => { const result = await handleFetchUserDetails({ preventDefault: () => { }, } as React.FormEvent); if (result) { setLastLoginDetails(result.last_login); setName(result.name); } }; fetchLoginTime(); } }, []); if (!authorized) return null; return (
{/* Header */} ebanking THE KANGRA CENTRAL CO-OPERATIVE BANK LTD. Toll Free No : 1800-180-8008 {/* Layout */} {/* Sidebar */} Admin Portal {/* User Maintenance */} setUserMenuOpen(!userMenuOpen)} style={{ display: "flex", alignItems: "center", justifyContent: "space-between", width: "100%", padding: "5px 6px", borderRadius: "4px", backgroundColor: "rgba(255,255,255,0.1)", color: "white", fontSize: "13px", }} > User Maintenance {userMenuOpen ? : } setView("userConf")} style={{ cursor: "pointer", color: view === "userConf" ? "#02a355" : "white", backgroundColor: view === "userConf" ? "white" : "transparent", borderRadius: "3px", padding: "3px 6px", transition: "0.2s", }} > • User Create / Update setView("viewUser")} style={{ cursor: "pointer", color: view === "viewUser" ? "#02a355" : "white", backgroundColor: view === "viewUser" ? "white" : "transparent", borderRadius: "3px", padding: "3px 6px", transition: "0.2s", }} > • Users Status setView("unlockUser")} style={{ cursor: "pointer", color: view === "unlockUser" ? "#02a355" : "white", backgroundColor: view === "unlockUser" ? "white" : "transparent", borderRadius: "3px", padding: "3px 6px", transition: "0.2s", }} > • User Unlock {/* Reports */} setReportMenuOpen(!reportOpen)} style={{ display: "flex", alignItems: "center", justifyContent: "space-between", width: "100%", padding: "5px 6px", borderRadius: "4px", marginTop: "8px", backgroundColor: "rgba(255,255,255,0.1)", color: "white", fontSize: "13px", }} > Reports {reportOpen ? : } setView("activeUsersReport")} style={{ cursor: "pointer", color: view === "activeUsersReport" ? "#02a355" : "white", backgroundColor: view === "activeUsersReport" ? "white" : "transparent", borderRadius: "3px", padding: "3px 6px", transition: "0.2s", }} > • Active Users Report setView("noOfTrans")} style={{ cursor: "pointer", color: view === "noOfTrans" ? "#02a355" : "white", backgroundColor: view === "noOfTrans" ? "white" : "transparent", borderRadius: "3px", padding: "3px 6px", transition: "0.2s", }} > • Transactions Report {/* setView("unlockUser")} style={{ cursor: "pointer", color: view === "unlockUser" ? "#02a355" : "white", backgroundColor: view === "unlockUser" ? "white" : "transparent", borderRadius: "3px", padding: "3px 6px", transition: "0.2s", }} > • User Unlock */} {/* Configuration */} setConfigMenuOpen(!configMenuOpen)} style={{ display: "flex", alignItems: "center", justifyContent: "space-between", width: "100%", padding: "5px 6px", marginTop: "8px", borderRadius: "4px", backgroundColor: "rgba(255,255,255,0.1)", color: "white", fontSize: "13px", }} > Configuration {configMenuOpen ? : } setView("ifscConfig")} style={{ cursor: "pointer", color: view === "ifscConfig" ? "#02a355" : "white", backgroundColor: view === "ifscConfig" ? "white" : "transparent", borderRadius: "3px", padding: "3px 6px", transition: "0.2s", }} > • IFSC Configuration Logout {/* Main Content */} Welcome, {name} Last logged in at{" "} {lastLoginDetails ? new Date(lastLoginDetails).toLocaleString() : "N/A"} {view === "userConf" && } {view === "viewUser" && } {view === "unlockUser" && } {view === "noOfTrans" && ( Reports will be Coming Soon )} {view === "activeUsersReport" && ( Active users Reports will be Coming Soon )} {view === "ifscConfig" && ( IFSC Configuration Page Coming Soon )} {!view && ( <> Welcome To The Internet Banking Admin Portal Choose the service from the menu. )} © 2025 The Kangra Central Co-Operative Bank Ltd.
); }