import React, { useContext, useEffect } from 'react'; import { Queries } from '@/api/queries'; import { SmsContext } from '@/context/SmsContext'; import SmsPagination from './smsTable/SmsPagination'; import SmsTableBody from './smsTable/SmsTableBody'; import SmsTableHead from './smsTable/SmsTableHead'; import Loader from './Loader'; const SmsTable = () => { const smsContext = useContext(SmsContext); if (!smsContext) { throw new Error('smsContext must be used within an AuthProvider'); } const { tableIsLoading, smsData, smsTableData, setSmsTableData, setTableIsLoading, setCurrentPage, setIsError, currentPage, activeNumber, searchFecth, activeSort, dateValue, timeDate, } = smsContext; const getMessages = () => { if (smsData && activeNumber) { setTableIsLoading(true); try { Queries.getMessages(activeNumber, currentPage, dateValue, activeSort, searchFecth).then( (res) => { setSmsTableData(res); setTableIsLoading(false); if (!res.data) { setTableIsLoading(true); setIsError(true); } }, ); } catch (error) { setTableIsLoading(true); setIsError(true); } } }; useEffect(() => { getMessages(); }, [smsData, currentPage, activeNumber, searchFecth, activeSort, dateValue]); useEffect(() => { setCurrentPage(1); }, [activeNumber]); if (tableIsLoading) { return (