Compare commits

...

1 Commits

Author SHA1 Message Date
victorAnumudu 6b883c35eb updated some tables 2025-04-10 10:06:53 +01:00
4 changed files with 344 additions and 323 deletions
@@ -26,85 +26,90 @@ export default function LoanOffersCom() {
<div className='w-full flex flex-col gap-8'> <div className='w-full flex flex-col gap-8'>
<BreadcrumbCom title='Applications' paths={['Dashboard', 'Applications']} /> <BreadcrumbCom title='Applications' paths={['Dashboard', 'Applications']} />
<div className='box bg-white dark:bg-black-box text-black-body dark:text-white-body'>
{isFetching ? {isFetching ?
<> <>
<div className="w-full py-4">
<p className='text-slate-800'>Loading...</p> <p className='text-slate-800'>Loading...</p>
</div>
</> </>
: isError ? : isError ?
<div className="w-full py-4">
<p className='text-red-500'>{error.message}</p> <p className='text-red-500'>{error.message}</p>
</div>
: :
<TableWrapper data={appliedUsers} itemsPerPage={15}> <TableWrapper data={appliedUsers} itemsPerPage={15}>
{({ data }) => ( {({ data }) => (
<> <>
<table className="py-2 w-full text-sm text-left rtl:text-right text-gray-500 dark:text-gray-400"> <table className="py-2 w-full text-sm">
<thead className="text-sm md:text-base text-gray-700 uppercase bg-gray-50 dark:bg-gray-700 dark:text-gray-400"> <thead className="py-2 text-sm text-slate-500 text-left">
<tr> <tr>
<th scope="col" className="px-4 py-2"> <th scope="col" className="px-2 py-2">
Name Name
</th> </th>
<th scope="col" className="px-4 py-2"> <th scope="col" className="px-2">
Loan Loan
</th> </th>
<th scope="col" className="px-4 py-2"> <th scope="col" className="px-2">
Amount Amount
</th> </th>
<th scope="col" className="px-4 py-2"> <th scope="col" className="px-2">
Added Added
</th> </th>
<th scope="col" className="px-4 py-2"> <th scope="col" className="px-2">
Verified Verified
</th> </th>
<th scope="col" className="px-4 py-2"> <th scope="col" className="px-2 text-right">
Action Action
</th> </th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
{(data && data.length > 0) ? data?.map((item, index) => ( {(data && data.length > 0) ? data?.map((item, index) => (
<tr key={index} className="bg-white border-b dark:bg-gray-800 dark:border-gray-700 hover:bg-gray-50 dark:hover:bg-gray-600"> <tr className="py-2 border-t border-dashed border-slate-300">
<th scope="row" className="mr-4 flex items-center px-3 py-2 text-gray-900 whitespace-nowrap dark:text-white"> <td className="px-2 py-2">
<img className="w-10 h-10 rounded-full" src={Avatar} alt="Jese image" /> <div className='w-full min-w-48 flex items-center gap-2 whitespace-nowrap'>
<div className="px-3"> <img className="w-10 h-10 rounded-md" src={Avatar} alt="Jese image" />
<div className="text-left">
<div className="text-base font-semibold">{item?.name || ''}</div> <div className="text-base font-semibold">{item?.name || ''}</div>
<div className="font-normal text-gray-500">{item?.bvn}</div> <div className="font-normal text-gray-500">{item?.bvn}</div>
</div> </div>
</th>
<td className="px-3 py-2">
{item?.loan} - {item?.description}
</td>
<td className="px-3 py-2">
{item?.amount || ''}
</td>
<td className="px-3 py-2">
<div className="flex items-center">
{getDateFromDateString(item?.added)} {getTimeFromDateString(item?.added)}
</div> </div>
</td> </td>
<td className="px-3 py-2"> <td className="px-2">
<div className="flex items-center"> <div className="text-left">
<div className="font-normal text-gray-500">{item?.loan}</div>
</div>
</td>
<td className="px-2">
<div className="text-left">
<div className="font-normal text-gray-500">{item?.amount}</div>
</div>
</td>
<td className="px-2">
<div className="text-left">
<div className="font-normal text-gray-500">{getDateFromDateString(item?.added)} {getTimeFromDateString(item?.added)}</div>
</div>
</td>
<td className="px-2">
<div className="text-left">
{!item?.verified ? 'N/A' : `${getDateFromDateString(item?.verified)} ${getTimeFromDateString(item?.verified)}`} {!item?.verified ? 'N/A' : `${getDateFromDateString(item?.verified)} ${getTimeFromDateString(item?.verified)}`}
</div> </div>
</td> </td>
<td className="px-3 py-2 flex gap-3 md:gap-4"> <td className="px-2 text-right">
{/* <!-- Modal toggle --> */} <div className='flex items-center justify-end gap-3 md:gap-4'>
{/* <Link to={RouteLinks.manageAdminPage}> <div className='p-2 flex justify-center items-center text-slate-500 bg-white-body dark:text-white-body dark:bg-black-body rounded-md'>
<i onClick={handleShowEditModal} className="fa-solid fa-eye text-base md:text-lg cursor-pointer p-2 text-sky-600"></i>
</Link> */}
{/* <i onClick={handleShowEditModal} className="fa-solid fa-pen-to-square text-base md:text-lg cursor-pointer p-2"></i> */}
{/* <i onClick={handleDeleteModal} className="fa-solid fa-trash text-base md:text-lg cursor-pointer p-2 text-red-500"></i> */}
<Icons name='edit' /> <Icons name='edit' />
</div>
<div className='p-2 flex justify-center items-center text-slate-500 bg-white-body dark:text-white-body dark:bg-black-body rounded-md'>
<Icons name='eye' /> <Icons name='eye' />
<Icons name='trash' className={'hidden text-red-500'} /> </div>
<div className='hidden fle p-2 justify-center items-center text-slate-500 bg-white-body dark:text-white-body dark:bg-black-body rounded-md'>
<Icons name='trash' />
</div>
</div>
</td> </td>
</tr> </tr>
)) ))
: :
<tr className="w-3 p-3"> <tr className="py-2 border-t border-dashed border-slate-300">
<td className="px-3 py-2" colSpan={6}> <td className="px-3 py-2" colSpan={4}>
<div className="flex justify-center items-center"> <div className="flex justify-center items-center">
No Record Found No Record Found
</div> </div>
@@ -118,5 +123,6 @@ export default function LoanOffersCom() {
</TableWrapper> </TableWrapper>
} }
</div> </div>
</div>
) )
} }
@@ -25,70 +25,74 @@ export default function ApprovedLoanCom() {
<div className='w-full flex flex-col gap-8'> <div className='w-full flex flex-col gap-8'>
<BreadcrumbCom title='Approved' paths={['Dashboard', 'Approved']} /> <BreadcrumbCom title='Approved' paths={['Dashboard', 'Approved']} />
<div className='box bg-white dark:bg-black-box text-black-body dark:text-white-body'>
{isFetching ? {isFetching ?
<> <>
<div className="w-full py-4">
<p className='text-slate-800'>Loading...</p> <p className='text-slate-800'>Loading...</p>
</div>
</> </>
: isError ? : isError ?
<div className="w-full py-4">
<p className='text-red-500'>{error.message}</p> <p className='text-red-500'>{error.message}</p>
</div>
: :
<TableWrapper data={approvedUsers} itemsPerPage={15}> <TableWrapper data={approvedUsers} itemsPerPage={15}>
{({ data }) => ( {({ data }) => (
<> <>
<table className="py-2 w-full text-sm text-left rtl:text-right text-gray-500 dark:text-gray-400"> <table className="py-2 w-full text-sm">
<thead className="text-sm md:text-base text-gray-700 uppercase bg-gray-50 dark:bg-gray-700 dark:text-gray-400"> <thead className="py-2 text-sm text-slate-500 text-left">
<tr> <tr>
<th scope="col" className="px-4 py-2"> <th scope="col" className="px-2 py-2">
Name Name
</th> </th>
<th scope="col" className="px-4 py-2"> <th scope="col" className="px-2">
Loan Loan
</th> </th>
<th scope="col" className="px-4 py-2"> <th scope="col" className="px-2">
Added Added
</th> </th>
<th scope="col" className="px-4 py-2"> <th scope="col" className="px-2 text-right">
Action Action
</th> </th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
{(data && data.length > 0) ? data?.map((item, index) => ( {(data && data.length > 0) ? data?.map((item, index) => (
<tr key={index} className="bg-white border-b dark:bg-gray-800 dark:border-gray-700 hover:bg-gray-50 dark:hover:bg-gray-600"> <tr className="py-2 border-t border-dashed border-slate-300">
<th scope="row" className="mr-4 flex items-center px-3 py-2 text-gray-900 whitespace-nowrap dark:text-white"> <td className="px-2 py-2">
<img className="w-10 h-10 rounded-full" src={Avatar} alt="Jese image" /> <div className='w-full min-w-48 flex items-center gap-2 whitespace-nowrap'>
<div className="px-3"> <img className="w-10 h-10 rounded-md" src={Avatar} alt="Jese image" />
<div className="text-left">
<div className="text-base font-semibold">{item?.name || ''}</div> <div className="text-base font-semibold">{item?.name || ''}</div>
<div className="font-normal text-gray-500">{item?.bvn}</div> <div className="font-normal text-gray-500">{item?.bvn}</div>
</div> </div>
</th>
<td className="px-3 py-2">
{item?.loan} - {item?.description}
</td>
<td className="px-3 py-2">
<div className="flex items-center">
{getDateFromDateString(item?.added)} {getTimeFromDateString(item?.added)}
</div> </div>
</td> </td>
<td className="px-3 py-2 flex gap-3 md:gap-4"> <td className="px-2">
{/* <!-- Modal toggle --> */} <div className="text-left">
{/* <Link to={RouteLinks.manageAdminPage}> <div className="text-base font-semibold">{item?.loan}</div>
<i onClick={handleShowEditModal} className="fa-solid fa-eye text-base md:text-lg cursor-pointer p-2 text-sky-600"></i> <div className="font-normal text-gray-500">{item?.description}</div>
</Link> */} </div>
{/* <i onClick={handleShowEditModal} className="fa-solid fa-pen-to-square text-base md:text-lg cursor-pointer p-2"></i> */} </td>
{/* <i onClick={handleDeleteModal} className="fa-solid fa-trash text-base md:text-lg cursor-pointer p-2 text-red-500"></i> */} <td className="px-2">
<div className="text-left">
<div className="font-normal text-gray-500">{getDateFromDateString(item?.added)} {getTimeFromDateString(item?.added)}</div>
</div>
</td>
<td className="px-2 text-right">
<div className='flex items-center justify-end gap-3 md:gap-4'>
<div className='p-2 flex justify-center items-center text-slate-500 bg-white-body dark:text-white-body dark:bg-black-body rounded-md'>
<Icons name='edit' /> <Icons name='edit' />
</div>
<div className='p-2 flex justify-center items-center text-slate-500 bg-white-body dark:text-white-body dark:bg-black-body rounded-md'>
<Icons name='eye' /> <Icons name='eye' />
<Icons name='trash' className={'hidden text-red-500'} /> </div>
<div className='p-2 flex justify-center items-center text-slate-500 bg-white-body dark:text-white-body dark:bg-black-body rounded-md'>
<Icons name='trash' />
</div>
</div>
</td> </td>
</tr> </tr>
)) ))
: :
<tr className="w-3 p-3"> <tr className="py-2 border-t border-dashed border-slate-300">
<td className="px-3 py-2" colSpan={4}> <td className="px-3 py-2" colSpan={4}>
<div className="flex justify-center items-center"> <div className="flex justify-center items-center">
No Record Found No Record Found
@@ -103,5 +107,6 @@ export default function ApprovedLoanCom() {
</TableWrapper> </TableWrapper>
} }
</div> </div>
</div>
) )
} }
@@ -24,71 +24,74 @@ export default function DisbursementsLoanCom() {
return ( return (
<div className='w-full flex flex-col gap-8'> <div className='w-full flex flex-col gap-8'>
<BreadcrumbCom title='Disbursements' paths={['Dashboard', 'Disbursements']} /> <BreadcrumbCom title='Disbursements' paths={['Dashboard', 'Disbursements']} />
<div className='box bg-white dark:bg-black-box text-black-body dark:text-white-body'>
{isFetching ? {isFetching ?
<> <>
<div className="w-full py-4">
<p className='text-slate-800'>Loading...</p> <p className='text-slate-800'>Loading...</p>
</div>
</> </>
: isError ? : isError ?
<div className="w-full py-4">
<p className='text-red-500'>{error.message}</p> <p className='text-red-500'>{error.message}</p>
</div>
: :
<TableWrapper data={approvedUsers} itemsPerPage={15}> <TableWrapper data={approvedUsers} itemsPerPage={15}>
{({ data }) => ( {({ data }) => (
<> <>
<table className="py-2 w-full text-sm text-left rtl:text-right text-gray-500 dark:text-gray-400"> <table className="py-2 w-full text-sm">
<thead className="text-sm md:text-base text-gray-700 uppercase bg-gray-50 dark:bg-gray-700 dark:text-gray-400"> <thead className="py-2 text-sm text-slate-500 text-left">
<tr> <tr>
<th scope="col" className="px-4 py-2"> <th scope="col" className="px-2 py-2">
Name Name
</th> </th>
<th scope="col" className="px-4 py-2"> <th scope="col" className="px-2">
Loan Loan
</th> </th>
<th scope="col" className="px-4 py-2"> <th scope="col" className="px-2">
Added Added
</th> </th>
<th scope="col" className="px-4 py-2"> <th scope="col" className="px-2 text-right">
Action Action
</th> </th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
{(data && data.length > 0) ? data?.map((item, index) => ( {(data && data.length > 0) ? data?.map((item, index) => (
<tr key={index} className="bg-white border-b dark:bg-gray-800 dark:border-gray-700 hover:bg-gray-50 dark:hover:bg-gray-600"> <tr className="py-2 border-t border-dashed border-slate-300">
<th scope="row" className="mr-4 flex items-center px-3 py-2 text-gray-900 whitespace-nowrap dark:text-white"> <td className="px-2 py-2">
<img className="w-10 h-10 rounded-full" src={Avatar} alt="Jese image" /> <div className='w-full min-w-48 flex items-center gap-2 whitespace-nowrap'>
<div className="px-3"> <img className="w-10 h-10 rounded-md" src={Avatar} alt="Jese image" />
<div className="text-left">
<div className="text-base font-semibold">{item?.name || ''}</div> <div className="text-base font-semibold">{item?.name || ''}</div>
<div className="font-normal text-gray-500">{item?.bvn}</div> <div className="font-normal text-gray-500">{item?.bvn}</div>
</div> </div>
</th>
<td className="px-3 py-2">
{item?.loan} - {item?.description}
</td>
<td className="px-3 py-2">
<div className="flex items-center">
{getDateFromDateString(item?.added)} {getTimeFromDateString(item?.added)}
</div> </div>
</td> </td>
<td className="px-3 py-2 flex gap-3 md:gap-4"> <td className="px-2">
{/* <!-- Modal toggle --> */} <div className="text-left">
{/* <Link to={RouteLinks.manageAdminPage}> <div className="text-base font-semibold">{item?.loan}</div>
<i onClick={handleShowEditModal} className="fa-solid fa-eye text-base md:text-lg cursor-pointer p-2 text-sky-600"></i> <div className="font-normal text-gray-500">{item?.description}</div>
</Link> */} </div>
{/* <i onClick={handleShowEditModal} className="fa-solid fa-pen-to-square text-base md:text-lg cursor-pointer p-2"></i> */} </td>
{/* <i onClick={handleDeleteModal} className="fa-solid fa-trash text-base md:text-lg cursor-pointer p-2 text-red-500"></i> */} <td className="px-2">
<div className="text-left">
<div className="font-normal text-gray-500">{getDateFromDateString(item?.added)} {getTimeFromDateString(item?.added)}</div>
</div>
</td>
<td className="px-2 text-right">
<div className='flex items-center justify-end gap-3 md:gap-4'>
<div className='p-2 flex justify-center items-center text-slate-500 bg-white-body dark:text-white-body dark:bg-black-body rounded-md'>
<Icons name='edit' /> <Icons name='edit' />
</div>
<div className='p-2 flex justify-center items-center text-slate-500 bg-white-body dark:text-white-body dark:bg-black-body rounded-md'>
<Icons name='eye' /> <Icons name='eye' />
<Icons name='trash' className={'hidden text-red-500'} /> </div>
<div className='hidden fle p-2 justify-center items-center text-slate-500 bg-white-body dark:text-white-body dark:bg-black-body rounded-md'>
<Icons name='trash' />
</div>
</div>
</td> </td>
</tr> </tr>
)) ))
: :
<tr className="w-3 p-3"> <tr className="py-2 border-t border-dashed border-slate-300">
<td className="px-3 py-2" colSpan={4}> <td className="px-3 py-2" colSpan={4}>
<div className="flex justify-center items-center"> <div className="flex justify-center items-center">
No Record Found No Record Found
@@ -103,5 +106,6 @@ export default function DisbursementsLoanCom() {
</TableWrapper> </TableWrapper>
} }
</div> </div>
</div>
) )
} }
+52 -46
View File
@@ -25,93 +25,98 @@ export default function ApplicationsLoanCom() {
return ( return (
<div className='w-full flex flex-col gap-8'> <div className='w-full flex flex-col gap-8'>
<BreadcrumbCom title='Loan offers' paths={['Dashboard', 'Loan offers']} /> <BreadcrumbCom title='Loan offers' paths={['Dashboard', 'Loan offers']} />
<div className='box bg-white dark:bg-black-box text-black-body dark:text-white-body'>
{isFetching ? {isFetching ?
<> <>
<div className="w-full py-4">
<p className='text-slate-800'>Loading...</p> <p className='text-slate-800'>Loading...</p>
</div>
</> </>
: isError ? : isError ?
<div className="w-full py-4">
<p className='text-red-500'>{error.message}</p> <p className='text-red-500'>{error.message}</p>
</div>
: :
<TableWrapper data={loanOffersUsersList} itemsPerPage={15}> <TableWrapper data={loanOffersUsersList} itemsPerPage={15}>
{({ data }) => ( {({ data }) => (
<> <>
<table className="py-2 w-full text-sm text-left rtl:text-right text-gray-500 dark:text-gray-400"> <table className="py-2 w-full text-sm">
<thead className="text-sm md:text-base text-gray-700 uppercase bg-gray-50 dark:bg-gray-700 dark:text-gray-400"> <thead className="py-2 text-sm text-slate-500 text-left">
<tr> <tr>
<th scope="col" className="px-4 py-2"> <th scope="col" className="px-2 py-2">
CID CID
</th> </th>
<th scope="col" className="px-4 py-2"> <th scope="col" className="px-2">
Loan Loan
</th> </th>
<th scope="col" className="px-4 py-2"> <th scope="col" className="px-2">
Amount Amount
</th> </th>
<th scope="col" className="px-4 py-2"> <th scope="col" className="px-2">
Description Description
</th> </th>
<th scope="col" className="px-4 py-2"> <th scope="col" className="px-2 text-right">
Days Duration Days Duration
</th> </th>
<th scope="col" className="px-4 py-2"> <th scope="col" className="px-2 text-right">
Ative Active
</th> </th>
<th scope="col" className="px-4 py-2"> <th scope="col" className="px-2 text-right">
Score Score
</th> </th>
<th scope="col" className="px-4 py-2"> <th scope="col" className="px-2 text-right">
Lorder Lorder
</th> </th>
{/* <th scope="col" className="px-4 py-2">
Action
</th> */}
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
{(data && data.length > 0) ? data?.map((item, index) => ( {(data && data.length > 0) ? data?.map((item, index) => (
<tr key={index} className="bg-white border-b dark:bg-gray-800 dark:border-gray-700 hover:bg-gray-50 dark:hover:bg-gray-600"> <tr className="py-2 border-t border-dashed border-slate-300">
<th scope="row" className="mr-4 flex items-center px-3 py-2 text-gray-900 whitespace-nowrap dark:text-white"> <td className="px-2 py-2">
<img className="w-10 h-10 rounded-full" src={Avatar} alt="Jese image" /> <div className='w-full min-w-48 flex items-center gap-2 whitespace-nowrap'>
<div className="px-3"> <img className="w-10 h-10 rounded-md" src={Avatar} alt="Jese image" />
<div className="text-base font-semibold">{item?.cid}</div> <div className="text-left">
<div className="text-base font-semibold">{item?.cid || ''}</div>
</div>
</div> </div>
</th>
<td className="px-3 py-2">
{item?.loan}
</td> </td>
<td className="px-3 py-2"> <td className="px-2">
{item?.amount || ''} <div className="text-left">
<div className="font-normal text-gray-500">{item?.loan}</div>
</div>
</td> </td>
<td className="px-3 py-2"> <td className="px-2">
{item?.description} <div className="text-left">
<div className="font-normal text-gray-500">{item?.amount}</div>
</div>
</td> </td>
<td className="px-3 py-2"> <td className="px-2">
{item?.days_duration} <div className="text-left">
<div className="font-normal text-gray-500">{item?.description}</div>
</div>
</td> </td>
<td className="px-3 py-2">
{item?.active} <td className="px-2">
<div className="text-right">
<div className="font-normal text-gray-500">{item?.days_duration}</div>
</div>
</td> </td>
<td className="px-3 py-2"> <td className="px-2">
{item?.score} <div className="text-right">
<div className="font-normal text-gray-500">{item?.active}</div>
</div>
</td> </td>
<td className="px-3 py-2"> <td className="px-2">
{item?.lorder} <div className="text-right">
<div className="font-normal text-gray-500">{item?.score}</div>
</div>
</td>
<td className="px-2">
<div className="text-right">
<div className="font-normal text-gray-500">{item?.lorder}</div>
</div>
</td> </td>
{/* <td className="px-3 py-2 flex gap-3 md:gap-4">
<Icons name='edit' />
<Icons name='eye' />
<Icons name='trash' className={'hidden text-red-500'} />
</td> */}
</tr> </tr>
)) ))
: :
<tr className="w-3 p-3"> <tr className="py-2 border-t border-dashed border-slate-300">
<td className="px-3 py-2" colSpan={8}> <td className="px-3 py-2" colSpan={4}>
<div className="flex justify-center items-center"> <div className="flex justify-center items-center">
No Record Found No Record Found
</div> </div>
@@ -125,5 +130,6 @@ export default function ApplicationsLoanCom() {
</TableWrapper> </TableWrapper>
} }
</div> </div>
</div>
) )
} }