import React, { useState, useEffect } from "react"; import Breadcrumb from "../../components/common/Breadcrumb"; import MasterModal from "../../components/master/MasterModal"; import { mastersList} from "../../data/masters"; import { useDispatch, useSelector } from "react-redux"; import { changeMaster } from "../../slices/localVariablesSlice"; import useMaster from "../../hooks/masterHook/useMaster" import MasterTable from "./MasterTable"; import { getCachedData } from "../../slices/apiDataManager"; const MasterPage = () => { const [modalConfig, setmodalConfig] = useState({modalType: "", item: null, masterType:null }); const [searchTerm, setSearchTerm] = useState(''); const [filteredResults, setFilteredResults] = useState([]); const dispatch = useDispatch(); const selectedMaster = useSelector((store)=>store.localVariables.selectedMaster) const [isCreateModalOpen, setIsCreateModalOpen] = useState(false); const openModal = () => { setIsCreateModalOpen(true); }; const closeModal = () => { setIsCreateModalOpen(false); setmodalConfig(null); const modalElement = document.getElementById('master-modal'); if (modalElement) { modalElement.classList.remove('show'); modalElement.style.display = 'none'; document.body.classList.remove('modal-open'); const backdropElement = document.querySelector('.modal-backdrop'); if (backdropElement) { backdropElement.classList.remove('modal-backdrop'); backdropElement.style.display = 'none'; } } const modalBackdropElement = document.querySelector('.modal-backdrop'); if (modalBackdropElement) { modalBackdropElement.remove(); } document.body.style.overflow = 'auto'; }; const {data:masterData, loading,error , RecallApi} = useMaster(); const handleSearch = (e) => { const value = e.target.value.toLowerCase(); setSearchTerm(value); if (!masterData.length) return; const results = masterData.filter((item) => Object.values(item).some((field) => field && field.toString().toLowerCase().includes(value) ) ); setFilteredResults(results); }; const displayData = searchTerm ? filteredResults : getCachedData(selectedMaster) ? getCachedData(selectedMaster) : masterData const columns = displayData?.length ? Object.keys(displayData[0]).map((key) => ({ key, label: key.toUpperCase() })) : []; const handleModalData =(modalType,item,masterType = selectedMaster)=>{ setmodalConfig({ modalType: modalType, item:item,masterType:masterType }); } useEffect(() => { if (modalConfig !== null) { openModal(); } }, [ modalConfig, isCreateModalOpen ] ); useEffect(() => { return () => { setIsCreateModalOpen(false) closeModal(); }; }, []) return ( <> {isCreateModalOpen && ( )}
{" "}
{" "}
); }; export default MasterPage;