Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 0e0066fec3 |
Binary file not shown.
|
Before Width: | Height: | Size: 28 KiB |
@@ -1,23 +1,18 @@
|
|||||||
import clsx from 'clsx';
|
import clsx from 'clsx'
|
||||||
import { KTIcon, toAbsoluteUrl } from '../../../helpers';
|
import {KTIcon, toAbsoluteUrl} from '../../../helpers'
|
||||||
import {
|
import {HeaderNotificationsMenu, HeaderUserMenu, Search, ThemeModeSwitcher} from '../../../partials'
|
||||||
HeaderNotificationsMenu,
|
import {useLayout} from '../../core'
|
||||||
HeaderUserMenu,
|
|
||||||
Search,
|
|
||||||
ThemeModeSwitcher,
|
|
||||||
} from '../../../partials';
|
|
||||||
import { useLayout } from '../../core';
|
|
||||||
|
|
||||||
const itemClass = 'ms-1 ms-md-4';
|
const itemClass = 'ms-1 ms-md-4'
|
||||||
const btnClass =
|
const btnClass =
|
||||||
'btn btn-icon btn-custom btn-icon-muted btn-active-light btn-active-color-primary w-35px h-35px';
|
'btn btn-icon btn-custom btn-icon-muted btn-active-light btn-active-color-primary w-35px h-35px'
|
||||||
const userAvatarClass = 'symbol-35px';
|
const userAvatarClass = 'symbol-35px'
|
||||||
const btnIconClass = 'fs-2';
|
const btnIconClass = 'fs-2'
|
||||||
|
|
||||||
const Navbar = () => {
|
const Navbar = () => {
|
||||||
const { config } = useLayout();
|
const {config} = useLayout()
|
||||||
return (
|
return (
|
||||||
<div className="app-navbar flex-shrink-0">
|
<div className='app-navbar flex-shrink-0'>
|
||||||
{/* <div className={clsx('app-navbar-item align-items-stretch', itemClass)}>
|
{/* <div className={clsx('app-navbar-item align-items-stretch', itemClass)}>
|
||||||
<Search />
|
<Search />
|
||||||
</div> */}
|
</div> */}
|
||||||
@@ -48,42 +43,33 @@ const Navbar = () => {
|
|||||||
</div> */}
|
</div> */}
|
||||||
|
|
||||||
<div className={clsx('app-navbar-item', itemClass)}>
|
<div className={clsx('app-navbar-item', itemClass)}>
|
||||||
<ThemeModeSwitcher
|
<ThemeModeSwitcher toggleBtnClass={clsx('btn-active-light-primary btn-custom')} />
|
||||||
toggleBtnClass={clsx('btn-active-light-primary btn-custom')}
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className={clsx('app-navbar-item', itemClass)}>
|
<div className={clsx('app-navbar-item', itemClass)}>
|
||||||
<div
|
<div
|
||||||
className={clsx('cursor-pointer symbol', userAvatarClass)}
|
className={clsx('cursor-pointer symbol', userAvatarClass)}
|
||||||
data-kt-menu-trigger="{default: 'click'}"
|
data-kt-menu-trigger="{default: 'click'}"
|
||||||
data-kt-menu-attach="parent"
|
data-kt-menu-attach='parent'
|
||||||
data-kt-menu-placement="bottom-end"
|
data-kt-menu-placement='bottom-end'
|
||||||
>
|
>
|
||||||
<img
|
<img src={toAbsoluteUrl('media/avatars/300-3.jpg')} alt='' />
|
||||||
src={toAbsoluteUrl('media/avatars/300-3.jpg')}
|
|
||||||
alt=""
|
|
||||||
style={{ cursor: 'auto' }}
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
{/* <HeaderUserMenu /> */}
|
<HeaderUserMenu />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{config.app?.header?.default?.menu?.display && (
|
{config.app?.header?.default?.menu?.display && (
|
||||||
<div
|
<div className='app-navbar-item d-lg-none ms-2 me-n3' title='Show header menu'>
|
||||||
className="app-navbar-item d-lg-none ms-2 me-n3"
|
|
||||||
title="Show header menu"
|
|
||||||
>
|
|
||||||
<div
|
<div
|
||||||
className="btn btn-icon btn-active-color-primary w-35px h-35px"
|
className='btn btn-icon btn-active-color-primary w-35px h-35px'
|
||||||
id="kt_app_header_menu_toggle"
|
id='kt_app_header_menu_toggle'
|
||||||
>
|
>
|
||||||
<KTIcon iconName="text-align-left" className={btnIconClass} />
|
<KTIcon iconName='text-align-left' className={btnIconClass} />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
);
|
)
|
||||||
};
|
}
|
||||||
|
|
||||||
export { Navbar };
|
export {Navbar}
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ export default function RecentBVNList({
|
|||||||
},[itemsPerPage])
|
},[itemsPerPage])
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="w-full d-flex flex-column h-100">
|
<div className="w-full">
|
||||||
<h1 className={`text-2xl mb-5 font-semibold ${titleClass && titleClass}`}>{tableTitle}</h1>
|
<h1 className={`text-2xl mb-5 font-semibold ${titleClass && titleClass}`}>{tableTitle}</h1>
|
||||||
|
|
||||||
{data.length > 0 && filterItem && (
|
{data.length > 0 && filterItem && (
|
||||||
@@ -86,7 +86,7 @@ export default function RecentBVNList({
|
|||||||
|
|
||||||
{/* show prev and next button if data exist */}
|
{/* show prev and next button if data exist */}
|
||||||
{(data.length > 0 && data.length > itemsPerPage) && (
|
{(data.length > 0 && data.length > itemsPerPage) && (
|
||||||
<div className="w-full h-100 d-flex gap-4 justify-content-center align-items-end">
|
<div className="mt-2 mt-sm-5 w-full d-flex gap-4 justify-content-center align-items-center">
|
||||||
<button
|
<button
|
||||||
onClick={handlePrev}
|
onClick={handlePrev}
|
||||||
className={`text-sm md:text-lg d-flex justify-content-center align-items-center border-1 transition-all duration-300 ${
|
className={`text-sm md:text-lg d-flex justify-content-center align-items-center border-1 transition-all duration-300 ${
|
||||||
@@ -94,7 +94,6 @@ export default function RecentBVNList({
|
|||||||
? "text-slate-400 border-slate-400 dark:text-slate-400 dark:border-slate-400 pe-none"
|
? "text-slate-400 border-slate-400 dark:text-slate-400 dark:border-slate-400 pe-none"
|
||||||
: "text-slate-600 border-slate-600 dark:text-white dark:border-white"
|
: "text-slate-600 border-slate-600 dark:text-white dark:border-white"
|
||||||
}`}
|
}`}
|
||||||
disabled={currentPage == 0}
|
|
||||||
// style={{width:'30px', height:'30px'}}
|
// style={{width:'30px', height:'30px'}}
|
||||||
>
|
>
|
||||||
< Previous
|
< Previous
|
||||||
@@ -107,12 +106,11 @@ export default function RecentBVNList({
|
|||||||
<button
|
<button
|
||||||
key={index}
|
key={index}
|
||||||
onClick={handleNext}
|
onClick={handleNext}
|
||||||
className={`text-sm md:text-lg rounded-circle d-flex justify-content-center align-items-center border-1 transition-all duration-300 ${
|
className={`text-sm md:text-lg d-flex justify-content-center align-items-center border-1 transition-all duration-300 ${
|
||||||
currentPage != index
|
currentPage != index
|
||||||
? "text-slate-400 border-slate-400 dark:text-slate-400 dark:border-slate-400"
|
? "text-slate-400 border-slate-400 dark:text-slate-400 dark:border-slate-400"
|
||||||
: "text-slate-600 border-slate-600 dark:text-white dark:border-white pe-none"
|
: "text-slate-600 border-slate-600 dark:text-white dark:border-white pe-none"
|
||||||
}`}
|
}`}
|
||||||
disabled={currentPage != index}
|
|
||||||
style={{width:'30px', height:'30px'}}
|
style={{width:'30px', height:'30px'}}
|
||||||
>
|
>
|
||||||
{index/itemsPerPage +1}
|
{index/itemsPerPage +1}
|
||||||
@@ -128,10 +126,9 @@ export default function RecentBVNList({
|
|||||||
? "text-slate-400 border-slate-400 dark:text-slate-400 dark:border-slate-400 pe-none"
|
? "text-slate-400 border-slate-400 dark:text-slate-400 dark:border-slate-400 pe-none"
|
||||||
: "text-slate-600 border-slate-600 dark:text-white dark:border-white"
|
: "text-slate-600 border-slate-600 dark:text-white dark:border-white"
|
||||||
}`}
|
}`}
|
||||||
disabled={currentPage + numberOfSelection >= data.length}
|
|
||||||
// style={{width:'30px', height:'30px'}}
|
// style={{width:'30px', height:'30px'}}
|
||||||
>
|
>
|
||||||
Next >
|
Next >
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ export default function RecentLoanAppList({
|
|||||||
},[itemsPerPage])
|
},[itemsPerPage])
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="w-full d-flex flex-column h-100">
|
<div className="w-full">
|
||||||
<h1 className={`text-2xl mb-5 font-semibold ${titleClass && titleClass}`}>{tableTitle}</h1>
|
<h1 className={`text-2xl mb-5 font-semibold ${titleClass && titleClass}`}>{tableTitle}</h1>
|
||||||
|
|
||||||
{data.length > 0 && filterItem && (
|
{data.length > 0 && filterItem && (
|
||||||
@@ -86,7 +86,7 @@ export default function RecentLoanAppList({
|
|||||||
|
|
||||||
{/* show prev and next button if data exist */}
|
{/* show prev and next button if data exist */}
|
||||||
{(data.length > 0 && data.length > itemsPerPage) && (
|
{(data.length > 0 && data.length > itemsPerPage) && (
|
||||||
<div className="w-full h-100 d-flex gap-4 justify-content-center align-items-end">
|
<div className="mt-2 mt-sm-5 w-full d-flex gap-4 justify-content-center align-items-center">
|
||||||
<button
|
<button
|
||||||
onClick={handlePrev}
|
onClick={handlePrev}
|
||||||
className={`text-sm md:text-lg d-flex justify-content-center align-items-center border-1 transition-all duration-300 ${
|
className={`text-sm md:text-lg d-flex justify-content-center align-items-center border-1 transition-all duration-300 ${
|
||||||
@@ -94,7 +94,6 @@ export default function RecentLoanAppList({
|
|||||||
? "text-slate-400 border-slate-400 dark:text-slate-400 dark:border-slate-400 pe-none"
|
? "text-slate-400 border-slate-400 dark:text-slate-400 dark:border-slate-400 pe-none"
|
||||||
: "text-slate-600 border-slate-600 dark:text-white dark:border-white"
|
: "text-slate-600 border-slate-600 dark:text-white dark:border-white"
|
||||||
}`}
|
}`}
|
||||||
disabled={currentPage == 0}
|
|
||||||
// style={{width:'30px', height:'30px'}}
|
// style={{width:'30px', height:'30px'}}
|
||||||
>
|
>
|
||||||
< Previous
|
< Previous
|
||||||
@@ -112,7 +111,6 @@ export default function RecentLoanAppList({
|
|||||||
? "text-slate-400 border-slate-400 dark:text-slate-400 dark:border-slate-400"
|
? "text-slate-400 border-slate-400 dark:text-slate-400 dark:border-slate-400"
|
||||||
: "text-slate-600 border-slate-600 dark:text-white dark:border-white pe-none"
|
: "text-slate-600 border-slate-600 dark:text-white dark:border-white pe-none"
|
||||||
}`}
|
}`}
|
||||||
disabled={currentPage != index}
|
|
||||||
style={{width:'30px', height:'30px'}}
|
style={{width:'30px', height:'30px'}}
|
||||||
>
|
>
|
||||||
{index/itemsPerPage +1}
|
{index/itemsPerPage +1}
|
||||||
@@ -128,7 +126,6 @@ export default function RecentLoanAppList({
|
|||||||
? "text-slate-400 border-slate-400 dark:text-slate-400 dark:border-slate-400 pe-none"
|
? "text-slate-400 border-slate-400 dark:text-slate-400 dark:border-slate-400 pe-none"
|
||||||
: "text-slate-600 border-slate-600 dark:text-white dark:border-white"
|
: "text-slate-600 border-slate-600 dark:text-white dark:border-white"
|
||||||
}`}
|
}`}
|
||||||
disabled={currentPage + numberOfSelection >= data.length}
|
|
||||||
// style={{width:'30px', height:'30px'}}
|
// style={{width:'30px', height:'30px'}}
|
||||||
>
|
>
|
||||||
Next >
|
Next >
|
||||||
|
|||||||
@@ -1,24 +0,0 @@
|
|||||||
// FUNCTION TO RETURN AMOUNT TO TWO DECIMAL PLACES
|
|
||||||
export const AmountTo2DP = (
|
|
||||||
amount = "00",
|
|
||||||
) => {
|
|
||||||
// Convert the number to a string
|
|
||||||
let numStr = String(amount);
|
|
||||||
|
|
||||||
// Split the string into integer and decimal parts
|
|
||||||
let parts = numStr.split(".");
|
|
||||||
let integerPart = parts[0] || "";
|
|
||||||
let decimalPart = parts[1] || "";
|
|
||||||
|
|
||||||
// Add thousands separators to the integer part
|
|
||||||
let formattedInteger = integerPart.replace(/\B(?=(\d{3})+(?!\d))/g, ',');
|
|
||||||
|
|
||||||
// Truncate or pad the decimal part to two decimal points
|
|
||||||
let formattedDecimal = decimalPart.slice(0, 2).padEnd(2, "0");
|
|
||||||
|
|
||||||
// Combine the formatted integer and decimal parts
|
|
||||||
let formattedNumber = formattedInteger + '.' + formattedDecimal;
|
|
||||||
|
|
||||||
// return formattedNumber;
|
|
||||||
return formattedNumber;
|
|
||||||
};
|
|
||||||
@@ -17,9 +17,9 @@ const ListsWidget3: React.FC<Props> = ({dashData, className}) => {
|
|||||||
{/* begin::Header */}
|
{/* begin::Header */}
|
||||||
<div className='card-header border-0'>
|
<div className='card-header border-0'>
|
||||||
<h3 className='card-title fw-bold text-gray-900'>BVN Verification</h3>
|
<h3 className='card-title fw-bold text-gray-900'>BVN Verification</h3>
|
||||||
{/* begin::Menu */}
|
<div className='card-toolbar'>
|
||||||
{/* <div className='card-toolbar'>
|
{/* begin::Menu */}
|
||||||
<button
|
{/* <button
|
||||||
type='button'
|
type='button'
|
||||||
className='btn btn-sm btn-icon btn-color-primary btn-active-light-primary'
|
className='btn btn-sm btn-icon btn-color-primary btn-active-light-primary'
|
||||||
data-kt-menu-trigger='click'
|
data-kt-menu-trigger='click'
|
||||||
@@ -27,43 +27,43 @@ const ListsWidget3: React.FC<Props> = ({dashData, className}) => {
|
|||||||
data-kt-menu-flip='top-end'
|
data-kt-menu-flip='top-end'
|
||||||
>
|
>
|
||||||
<KTIcon iconName='category' className='fs-2' />
|
<KTIcon iconName='category' className='fs-2' />
|
||||||
</button>
|
</button> */}
|
||||||
<Dropdown1 />
|
{/* <Dropdown1 /> */}
|
||||||
</div> */}
|
{/* end::Menu */}
|
||||||
{/* end::Menu */}
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{/* end::Header */}
|
{/* end::Header */}
|
||||||
{/* begin::Body */}
|
{/* begin::Body */}
|
||||||
<div className='card-body pt-0'>
|
<div className='card-body pt-2'>
|
||||||
{dashData?.loading ?
|
{dashData?.loading ?
|
||||||
null
|
null
|
||||||
:
|
:
|
||||||
dashData?.data?.recent_bvn && dashData?.data?.recent_bvn.length ?
|
dashData?.data?.recent_bvn && dashData?.data?.recent_bvn.length ?
|
||||||
<RecentBVNList
|
<RecentBVNList
|
||||||
data = {dashData?.data?.recent_bvn}
|
data = {dashData?.data?.recent_bvn}
|
||||||
itemsPerPage={7}
|
itemsPerPage={5}
|
||||||
>
|
>
|
||||||
{(data:RecentBVNProps) => (
|
{(data:RecentBVNProps) => (
|
||||||
<>
|
<>
|
||||||
{data?.map(item => (
|
{data?.map(item => (
|
||||||
<div key={item?.uid} className='d-flex align-items-center mb-8'>
|
<div key={item?.uid} className='d-flex align-items-center mb-8'>
|
||||||
{/* begin::Bullet */}
|
{/* begin::Bullet */}
|
||||||
<span className='bullet bullet-vertical h-40px bg-primary me-5'></span>
|
<span className='bullet bullet-vertical h-40px bg-primary'></span>
|
||||||
{/* end::Bullet */}
|
{/* end::Bullet */}
|
||||||
{/* begin::Checkbox */}
|
{/* begin::Checkbox */}
|
||||||
{/* <div className='form-check form-check-custom form-check-solid mx-5'>
|
<div className='form-check form-check-custom form-check-solid mx-5'>
|
||||||
<input className='form-check-input' type='checkbox' value='' />
|
<input className='form-check-input' type='checkbox' value='' />
|
||||||
</div> */}
|
</div>
|
||||||
{/* end::Checkbox */}
|
{/* end::Checkbox */}
|
||||||
{/* begin::Description */}
|
{/* begin::Description */}
|
||||||
<div className='flex-grow-1'>
|
<div className='flex-grow-1'>
|
||||||
<span className='text-gray-800 fw-bold fs-6'>
|
<a href='#' className='text-gray-800 text-hover-primary fw-bold fs-6'>
|
||||||
{item?.bvn}
|
{item?.bvn}
|
||||||
</span>
|
</a>
|
||||||
<span className='text-muted fw-semibold d-block'>{NewDateTimeFormatter(item?.added)}</span>
|
<span className='text-muted fw-semibold d-block'>{NewDateTimeFormatter(item?.added)}</span>
|
||||||
</div>
|
</div>
|
||||||
{/* end::Description */}
|
{/* end::Description */}
|
||||||
<span className='badge badge-light-primary fs-8 fw-bold'>status: {item?.status}</span>
|
<span className='badge badge-light-primary fs-8 fw-bold'>New</span>
|
||||||
</div>
|
</div>
|
||||||
))}
|
))}
|
||||||
</>
|
</>
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
|
|
||||||
import { FC } from 'react'
|
import { FC } from 'react'
|
||||||
import {KTIcon, toAbsoluteUrl} from '../../../helpers'
|
import {KTIcon, toAbsoluteUrl} from '../../../helpers'
|
||||||
import { DashDataProps } from '../../../../app/pages/dashboard/model'
|
import { DashDataProps, RecentApplicationsProps } from '../../../../app/pages/dashboard/model'
|
||||||
import { NewDateTimeFormatter } from '../../../lib/NewDateTimeFormatter'
|
import { NewDateTimeFormatter } from '../../../lib/NewDateTimeFormatter'
|
||||||
import { Link } from 'react-router-dom'
|
import RecentLoanAppList from '../../../layout/components/paginatedListing/RecentLoanAppList'
|
||||||
import { AmountTo2DP } from '../../../lib/AmountFormatter'
|
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
className: string
|
className: string
|
||||||
@@ -15,12 +15,11 @@ const TablesWidget10: FC<Props> = ({className, dashData}) => {
|
|||||||
return (
|
return (
|
||||||
<div className={`card ${className}`}>
|
<div className={`card ${className}`}>
|
||||||
{/* begin::Header */}
|
{/* begin::Header */}
|
||||||
<div className='card-header border-0'>
|
<div className='card-header border-0 pt-5'>
|
||||||
<h3 className='card-title fw-bold text-gray-900'>Recent Loan Application</h3>
|
<h3 className='card-title align-items-start flex-column'>
|
||||||
{/* <h3 className='card-title align-items-start flex-column'>
|
<span className='card-label fw-bold fs-3 mb-1'>Recent Loan Application</span>
|
||||||
<span className='card-label fw-bold fs-3'>Recent Loan Application</span>
|
{/* <span className='text-muted mt-1 fw-semibold fs-7'>Over 500 members</span> */}
|
||||||
<span className='text-muted mt-1 fw-semibold fs-7'>Over 500 members</span>
|
</h3>
|
||||||
</h3> */}
|
|
||||||
{/* <div
|
{/* <div
|
||||||
className='card-toolbar'
|
className='card-toolbar'
|
||||||
data-bs-toggle='tooltip'
|
data-bs-toggle='tooltip'
|
||||||
@@ -43,124 +42,124 @@ const TablesWidget10: FC<Props> = ({className, dashData}) => {
|
|||||||
{dashData?.loading ?
|
{dashData?.loading ?
|
||||||
null
|
null
|
||||||
: dashData?.data?.recent_applications ?
|
: dashData?.data?.recent_applications ?
|
||||||
<>
|
<RecentLoanAppList
|
||||||
<div className='card-body py-0'>
|
data={dashData?.data?.recent_applications}
|
||||||
{/* begin::Table container */}
|
itemsPerPage={5}
|
||||||
<div className='table-responsive'>
|
>
|
||||||
{/* begin::Table */}
|
{(data:RecentApplicationsProps)=>(
|
||||||
<table className='table table-row-dashed table-row-gray-300 align-middle gs-0 gy-4'>
|
<>
|
||||||
{/* begin::Table head */}
|
<div className='card-body py-3'>
|
||||||
<thead>
|
{/* begin::Table container */}
|
||||||
<tr className='fw-bold text-muted'>
|
<div className='table-responsive'>
|
||||||
<th className='w-25px'>
|
{/* begin::Table */}
|
||||||
<div className='form-check form-check-sm form-check-custom form-check-solid'>
|
<table className='table table-row-dashed table-row-gray-300 align-middle gs-0 gy-4'>
|
||||||
<input
|
{/* begin::Table head */}
|
||||||
className='form-check-input'
|
<thead>
|
||||||
type='checkbox'
|
<tr className='fw-bold text-muted'>
|
||||||
value='1'
|
<th className='w-25px'>
|
||||||
data-kt-check='true'
|
<div className='form-check form-check-sm form-check-custom form-check-solid'>
|
||||||
data-kt-check-target='.widget-9-check'
|
<input
|
||||||
/>
|
className='form-check-input'
|
||||||
</div>
|
type='checkbox'
|
||||||
</th>
|
value='1'
|
||||||
<th className='min-w-150px'>Authors</th>
|
data-kt-check='true'
|
||||||
<th className='min-w-140px'>Amount (NGN)</th>
|
data-kt-check-target='.widget-9-check'
|
||||||
<th className='min-w-120px'>Progress</th>
|
/>
|
||||||
<th className='min-w-100px text-end'>Actions</th>
|
</div>
|
||||||
</tr>
|
</th>
|
||||||
</thead>
|
<th className='min-w-150px'>Authors</th>
|
||||||
{/* end::Table head */}
|
<th className='min-w-140px'>Amount</th>
|
||||||
{/* begin::Table body */}
|
<th className='min-w-120px'>Progress</th>
|
||||||
<tbody>
|
<th className='min-w-100px text-end'>Actions</th>
|
||||||
{dashData?.data?.recent_applications && dashData?.data?.recent_applications.length ?
|
</tr>
|
||||||
dashData?.data?.recent_applications.map((item, index:any) => {
|
</thead>
|
||||||
if(index < 6){
|
{/* end::Table head */}
|
||||||
return (
|
{/* begin::Table body */}
|
||||||
<tr key={item?.uid}>
|
<tbody>
|
||||||
<td>
|
{data && data.length ?
|
||||||
<div className='form-check form-check-sm form-check-custom form-check-solid'>
|
data.map(item => (
|
||||||
<input className='form-check-input widget-9-check' type='checkbox' value='1' />
|
<tr key={item?.uid}>
|
||||||
|
<td>
|
||||||
|
<div className='form-check form-check-sm form-check-custom form-check-solid'>
|
||||||
|
<input className='form-check-input widget-9-check' type='checkbox' value='1' />
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<div className='d-flex align-items-center'>
|
||||||
|
<div className='symbol symbol-45px me-5'>
|
||||||
|
<img src={toAbsoluteUrl('media/avatars/300-14.jpg')} alt='' />
|
||||||
</div>
|
</div>
|
||||||
</td>
|
<div className='d-flex justify-content-start flex-column'>
|
||||||
<td>
|
<a href='#' className='text-gray-900 fw-bold text-hover-primary fs-6'>
|
||||||
<div className='d-flex align-items-center'>
|
{item?.firstname} {item?.lastname}
|
||||||
<div className='symbol symbol-45px me-5'>
|
|
||||||
<img src={toAbsoluteUrl('media/avatars/avatar1.jpg')} alt='' />
|
|
||||||
</div>
|
|
||||||
<div className='d-flex justify-content-start flex-column'>
|
|
||||||
<span className='text-gray-900 fw-bold fs-6'>
|
|
||||||
{item?.firstname} {item?.lastname}
|
|
||||||
</span>
|
|
||||||
<span className='text-muted fw-semibold text-muted d-block fs-7'>
|
|
||||||
{NewDateTimeFormatter(item?.added)}
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<span className='text-gray-900 fw-bold d-block fs-6'>
|
|
||||||
{AmountTo2DP(item.loan_amount)}
|
|
||||||
</span>
|
|
||||||
<span className='text-muted fw-semibold text-muted d-block fs-7'>
|
|
||||||
{item?.sales_agent? `Agent: ${item?.sales_agent}` : ``}
|
|
||||||
</span>
|
|
||||||
</td>
|
|
||||||
<td className='text-end'>
|
|
||||||
<div className='d-flex flex-column w-100 me-2'>
|
|
||||||
<div className='d-flex flex-stack mb-2'>
|
|
||||||
<span className='text-muted me-2 fs-7 fw-semibold'>50%</span>
|
|
||||||
</div>
|
|
||||||
<div className='progress h-6px w-100'>
|
|
||||||
<div
|
|
||||||
className='progress-bar bg-primary'
|
|
||||||
role='progressbar'
|
|
||||||
style={{width: '50%'}}
|
|
||||||
></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<div className='d-flex justify-content-end flex-shrink-0'>
|
|
||||||
<a
|
|
||||||
href='#'
|
|
||||||
className='btn btn-icon btn-bg-light btn-active-color-primary btn-sm me-1'
|
|
||||||
>
|
|
||||||
<KTIcon iconName='switch' className='fs-3' />
|
|
||||||
</a>
|
|
||||||
<a
|
|
||||||
href='#'
|
|
||||||
className='btn btn-icon btn-bg-light btn-active-color-primary btn-sm me-1'
|
|
||||||
>
|
|
||||||
<KTIcon iconName='pencil' className='fs-3' />
|
|
||||||
</a>
|
|
||||||
<a
|
|
||||||
href='#'
|
|
||||||
className='btn btn-icon btn-bg-light btn-active-color-primary btn-sm'
|
|
||||||
>
|
|
||||||
<KTIcon iconName='trash' className='fs-3' />
|
|
||||||
</a>
|
</a>
|
||||||
|
<span className='text-muted fw-semibold text-muted d-block fs-7'>
|
||||||
|
{NewDateTimeFormatter(item?.added)}
|
||||||
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</div>
|
||||||
</tr>
|
</td>
|
||||||
)
|
<td>
|
||||||
|
<span className='text-gray-900 fw-bold text-hover-primary d-block fs-6'>
|
||||||
|
{item.loan_amount}
|
||||||
|
</span>
|
||||||
|
<span className='text-muted fw-semibold text-muted d-block fs-7'>
|
||||||
|
{item?.sales_agent? `Agent: ${item?.sales_agent}` : ``}
|
||||||
|
</span>
|
||||||
|
</td>
|
||||||
|
<td className='text-end'>
|
||||||
|
<div className='d-flex flex-column w-100 me-2'>
|
||||||
|
<div className='d-flex flex-stack mb-2'>
|
||||||
|
<span className='text-muted me-2 fs-7 fw-semibold'>50%</span>
|
||||||
|
</div>
|
||||||
|
<div className='progress h-6px w-100'>
|
||||||
|
<div
|
||||||
|
className='progress-bar bg-primary'
|
||||||
|
role='progressbar'
|
||||||
|
style={{width: '50%'}}
|
||||||
|
></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<div className='d-flex justify-content-end flex-shrink-0'>
|
||||||
|
<a
|
||||||
|
href='#'
|
||||||
|
className='btn btn-icon btn-bg-light btn-active-color-primary btn-sm me-1'
|
||||||
|
>
|
||||||
|
<KTIcon iconName='switch' className='fs-3' />
|
||||||
|
</a>
|
||||||
|
<a
|
||||||
|
href='#'
|
||||||
|
className='btn btn-icon btn-bg-light btn-active-color-primary btn-sm me-1'
|
||||||
|
>
|
||||||
|
<KTIcon iconName='pencil' className='fs-3' />
|
||||||
|
</a>
|
||||||
|
<a
|
||||||
|
href='#'
|
||||||
|
className='btn btn-icon btn-bg-light btn-active-color-primary btn-sm'
|
||||||
|
>
|
||||||
|
<KTIcon iconName='trash' className='fs-3' />
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
))
|
||||||
|
:
|
||||||
|
<tr>
|
||||||
|
<td colSpan={5}>No data found!</td>
|
||||||
|
</tr>
|
||||||
}
|
}
|
||||||
})
|
</tbody>
|
||||||
:
|
{/* end::Table body */}
|
||||||
<tr>
|
</table>
|
||||||
<td colSpan={5}>No data found!</td>
|
{/* end::Table */}
|
||||||
</tr>
|
</div>
|
||||||
}
|
{/* end::Table container */}
|
||||||
</tbody>
|
</div>
|
||||||
{/* end::Table body */}
|
</>
|
||||||
</table>
|
)}
|
||||||
{/* end::Table */}
|
</RecentLoanAppList>
|
||||||
<p className='py-1 w-100 text-center text-hover-primary'>
|
|
||||||
<Link to='/loan/pages/process/started'>more applications</Link>
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
{/* end::Table container */}
|
|
||||||
</div>
|
|
||||||
</>
|
|
||||||
:
|
:
|
||||||
null
|
null
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user