This commit is contained in:
2023-06-12 22:20:41 +01:00
parent bbbfe799a3
commit 7666d78c0b
6 changed files with 321 additions and 173 deletions
+49 -43
View File
@@ -1,54 +1,60 @@
import React from 'react';
import { createRoutesFromChildren } from 'react-router-dom';
const PaginatedList = ({ onClick, prev, next, data, start, stop }) => {
if(data.length > process.env.REACT_APP_ITEM_PER_PAGE){
if (data.length > process.env.REACT_APP_ITEM_PER_PAGE) {
return (
<div className='p-3 flex justify-center items-center space-x-2 border-t-2'>
<div className="p-3 flex justify-center items-center min-h-[70px] space-x-2 border-t-2">
{/* Render pagination buttons */}
{!prev &&
<button
className={`p-2 ${prev ? 'border' : null}`}
name='prev'
onClick={onClick}
>
<>&lt;</>
</button>
}
{!prev && (
<button
className={`p-2 border ${
prev ? "border-black" : "border-transparent"
} btn-shine rounded-full h-11 w-11`}
name="prev"
onClick={onClick}
>
<>&lt;</>
</button>
)}
{
data.map((item, index)=>{
if(index%process.env.REACT_APP_ITEM_PER_PAGE == 0 && index >= start && index <= stop){
return (
<button
key={index}
value={index}
className={`p-2 ${index==start ? 'border' : null}`}
onClick={onClick}
name='page_num'
disabled={index == start}
>
{index <= 0 ? index+1 : (index/process.env.REACT_APP_ITEM_PER_PAGE)+1}
</button>
)
}
})
}
{!next &&
{data.map((item, index) => {
if (
index % process.env.REACT_APP_ITEM_PER_PAGE == 0 &&
index >= start &&
index <= stop
) {
return (
<button
className={`p-2 ${next ? 'border' : null}`}
name='next'
key={index}
value={index}
className={`p-2 border ${
index === start ? "border-black" : "border-transparent"
} btn-shine rounded-full h-11 w-11`}
onClick={onClick}
name="page_num"
disabled={index === start}
>
<>&gt;</>
{index <= 0
? index + 1
: index / process.env.REACT_APP_ITEM_PER_PAGE + 1}
</button>
}
</div>
)
}else{
return null
);
}
})}
{!next && (
<button
className={`p-2 border ${
next ? "border-black" : "border-transparent"
} btn-shine rounded-full h-11 w-11`}
name="next"
onClick={onClick}
>
<>&gt;</>
</button>
)}
</div>
);
} else {
return null;
}
};