/* eslint-disable @typescript-eslint/no-explicit-any */ import Link from "next/link"; import { useEffect, useRef, useState } from "react"; import AddEditFrom from "./AddEditForm"; import BottomSheetModal from "../../Modal/BottomSheetModal"; import HourGlassLoader from "../../Loader/Loader"; import { getStaff, updateStaffStatus } from "../../../Api/CustomerApi"; import { getFormattedAddress } from "../../../lib/Helper"; import Swal from "sweetalert2"; import NoData from "../../NoDataContainer/NoData"; export default function AddUsersIndex() { const [isLoading, setIsLoading] = useState(true); const dropdownRef = useRef(null); const [addUserModal, setAddUserModal] = useState(false); const [editUser, setEditUser] = useState({}); const [users, setUsers] = useState([]); const [activeMenu, setActiveMenu] = useState(null); useEffect(() => { const handleClickOutside = (event: MouseEvent) => { if ( dropdownRef.current && !dropdownRef.current.contains(event.target as Node) ) { setActiveMenu(null); } }; document.addEventListener("mousedown", handleClickOutside); return () => { document.removeEventListener("mousedown", handleClickOutside); }; }, []); const fetchOrders = async () => { setIsLoading(true); try { const staffList = await getStaff(); setUsers(staffList); } catch (error) { console.error("Failed to fetch staffs:", error); } finally { setIsLoading(false); } }; const toggle = () => { setAddUserModal(!addUserModal); if (addUserModal) { setEditUser(null); fetchOrders(); } }; useEffect(() => { fetchOrders(); }, []); const handleEdit = (item: any) => { setEditUser(item); toggle(); }; const handleChangeStatus = async (item: any) => { try { setIsLoading(true); const response = await updateStaffStatus(item?.id, { is_active: item?.isActive ? false : true, }); if (response?.status) { await fetchOrders(); Swal.fire({ icon: "success", title: "Status Updated", text: response?.message, customClass: { confirmButton: "delybell-primary px-4", cancelButton: "delybell-dark", }, }); } else Swal.fire({ icon: "error", title: "Error", text: response?.message, customClass: { confirmButton: "delybell-primary px-4", cancelButton: "delybell-dark", }, }); } catch (error) { console.error("Failed to change status of staff:", error); } finally { setIsLoading(false); } }; // const handleChangePassword = () => { // try { // } catch (error) { // console.error("Failed to change password of staff:", error); // } finally { // setIsLoading(false); // } // }; return ( <> {isLoading && }
Staff
{users?.length > 0 ? users?.map((user: any, index: any) => (
{user?.employeeId}
{user?.isActive ? "Active" : "In Active"}
{user?.firstName} {user?.lastName}
{" "} {getFormattedAddress(user)}
{user?.phone}
{user?.email}
)) : ()}
{addUserModal && ( )} ); }