import { useState, Suspense, lazy, createContext, useContext, useEffect, } from "react"; import Breadcrumb from "../../components/common/Breadcrumb"; import { useFab } from "../../Context/FabContext"; import { useBucketList, useBuckets } from "../../hooks/useDirectory"; import GlobalModel from "../../components/common/GlobalModel"; import ManageBucket from "../../components/Directory/ManageBucket"; import ManageBucket1 from "../../components/Directory/ManageBucket1"; import ManageContact from "../../components/Directory/ManageContact"; import BucketList from "../../components/Directory/BucketList"; const NotesPage = lazy(() => import("./NotesPage")); const ContactsPage = lazy(() => import("./ContactsPage")); export const DirectoryContext = createContext(); export const useDirectoryContext = () => { const context = useContext(DirectoryContext); if (!context) { return (

Your Action is out of context

); } return context; }; export default function DirectoryPage({ IsPage = true }) { const [searchContact, setsearchContact] = useState(""); const [searchNote, setSearchNote] = useState(""); const [activeTab, setActiveTab] = useState("notes"); const { setActions } = useFab(); const [gridView, setGridView] = useState(false); const [isOpenBucket, setOpenBucket] = useState({}); const [isManageContact, setManageContact] = useState({ isOpen:false,contactId:null }); const [showActive, setShowActive] = useState(true); const { data, isLoading, isError, error } = useBucketList(); const handleTabClick = (tab, e) => { e.preventDefault(); setActiveTab(tab); }; useEffect(() => { const actions = []; if (IsPage) { actions.push({ label: "Manage Bucket", icon: "fa-solid fa-bucket fs-5", color: "primary", onClick: () => setOpenBucket(true), }); } if (data?.length > 0) { actions.push({ label: "New Contact", icon: "bx bx-plus-circle", color: "warning", onClick: () => setManageContact({isOpen:true,contactId:null}), }); } setActions(actions); return () => setActions([]); }, [IsPage, data]); const contextValues = { showActive, gridView, data, setManageContact }; if (isLoading) return
Loading...
; if (isError) return
{error.message}
; return ( <>
{activeTab === "notes" && ( setSearchNote(e.target.value)} /> )} {activeTab === "contacts" && (
setsearchContact(e.target.value)} />
setShowActive(e.target.checked)} />
)}
Loading...
} > {activeTab === "notes" && } {activeTab === "contacts" && ( )}
{isOpenBucket && ( setOpenBucket(false)} > setOpenBucket(false)} /> )} {isManageContact.isOpen && ( setManageContact({isOpen:false,contactId:null})} > setManageContact({isOpen:false,contactId:null})} /> )}
); }