// Working pagination =========================================================================================================
// 'use client';
// import Loader from '@/components/Loader';
// import { SmsContext } from '@/context/SmsContext';
// import clsx from 'clsx';
// import React, { useContext } from 'react';
// const SmsPagination = () => {
// const smsContext = useContext(SmsContext);
// if (!smsContext) {
// throw new Error('smsContext must be used within an AuthProvider');
// }
// const { setCurrentPage, smsTableData } = smsContext;
// if (!smsTableData) {
// return (
//
//
//
// );
// }
// return (
//
//
Sahypalar
//
//
//
// {smsTableData?.meta.current_page}/{smsTableData?.meta.last_page}
//
//
//
//
// );
// };
// export default SmsPagination;
// Working pagination =================================================================================================
'use client';
import Loader from '@/components/Loader';
import { SmsContext } from '@/context/SmsContext';
import clsx from 'clsx';
import React, { useContext } from 'react';
const SmsPagination = () => {
const smsContext = useContext(SmsContext);
if (!smsContext) {
throw new Error('smsContext must be used within an AuthProvider');
}
const { setCurrentPage, smsTableData } = smsContext;
if (!smsTableData) {
return (
);
}
const { current_page, last_page } = smsTableData.meta;
const generatePageNumbers = () => {
const pages = [];
if (last_page <= 7) {
for (let i = 1; i <= last_page; i++) {
pages.push(i);
}
} else {
pages.push(1);
if (current_page > 4) pages.push('...');
const startPage = Math.max(2, current_page - 2);
const endPage = Math.min(last_page - 1, current_page + 2);
for (let i = startPage; i <= endPage; i++) {
pages.push(i);
}
if (current_page < last_page - 3) pages.push('...');
pages.push(last_page);
}
return pages;
};
const pages = generatePageNumbers();
return (
Sahypalar
{pages.map((page, index) => (
typeof page === 'number' && setCurrentPage(page)}>
{page}
))}
);
};
export default SmsPagination;