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" && (
)}
}
>
{activeTab === "notes" &&
}
{activeTab === "contacts" && (
)}
{isOpenBucket && (
setOpenBucket(false)}
>
setOpenBucket(false)} />
)}
{isManageContact.isOpen && (
setManageContact({isOpen:false,contactId:null})}
>
setManageContact({isOpen:false,contactId:null})} />
)}
>
);
}