diff --git a/src/RouteLinks.js b/src/RouteLinks.js index ae3ba44..e8ff6b3 100644 --- a/src/RouteLinks.js +++ b/src/RouteLinks.js @@ -8,6 +8,8 @@ const RouteLinks = { disbursementsLoanPage: '/loans/disbursements', selectedLoanPage: '/loans/select', loanOffersPage: '/loans/offers', + loansPage: '/loans', + requestPage: '/request', } export default RouteLinks \ No newline at end of file diff --git a/src/SiteRoutes.jsx b/src/SiteRoutes.jsx index 479c7e8..f88ad7f 100644 --- a/src/SiteRoutes.jsx +++ b/src/SiteRoutes.jsx @@ -13,6 +13,8 @@ import DisbursementsLoanPage from './pages/DisbursementsLoanPage' // DISBURSEMEN import ApplicationsLoanPage from './pages/ApplicationsLoanPage' // APPLICATIONS LOANS PAGE import SelectedLoanPage from './pages/SelectedLoanPage' // SELECTED LOANS PAGE import LoanOffersPage from './pages/LoanOffersPage' // SELECTED LOANS PAGE +import LoansPage from './pages/LoansPage' // SELECTED LOANS PAGE +import RequestPage from './pages/RequestPage' // SELECTED LOANS PAGE // const Home = lazy(() => import('./pages/Home')); @@ -30,6 +32,9 @@ export default function SiteRoutes() { } /> {`*/APPLICATIONS LOANS PAGE*/`} } /> {`*/SELECTED LOANS PAGE*/`} } /> {`*/LOANS OFFERS PAGE*/`} + + } /> {`*/LOANS PAGE*/`} + } /> {`*/Request PAGE*/`} {/* ERROR PAGE */} diff --git a/src/components/auth/LoginCom.jsx b/src/components/auth/LoginCom.jsx index dbbe13e..28b0d5e 100644 --- a/src/components/auth/LoginCom.jsx +++ b/src/components/auth/LoginCom.jsx @@ -103,6 +103,14 @@ export default function LoginCom() { {/* */} + + {/* {login.error && + <> +
+

{login.error.message}

+
+ + } */} {/*

Not yet a member? Sign Up

*/} @@ -114,13 +122,6 @@ export default function LoginCom() { - {/* {login.error && - <> -
-

{login.error.message}

-
- - } */}
diff --git a/src/components/home/HomeCom.jsx b/src/components/home/HomeCom.jsx new file mode 100644 index 0000000..b830a33 --- /dev/null +++ b/src/components/home/HomeCom.jsx @@ -0,0 +1,157 @@ +import React from 'react' +import BreadcrumbCom from '../../components/breadcrumb/BreadcrumbCom' +import CustomCounter from '../../components/CustomCounter' +import Icons from '../../components/Icons' +import TableWrapper from '../../components/tableWrapper/TableWrapper' +import Avatar from '../../assets/user_avatar.jpg' +import { Widget1 } from './Widget1' +import { Widget2 } from './Widget2' + +export default function HomeCom() { + return ( +
+ +
+
+
+

Loans

+ +
+

$

+

This week

+
+
+
+

Payments

+ {/* */} +
+

+

This week

+
+
+
+

Request Summary

+
+
+
+ +
+
+

$K

+

Sales

+
+
+
+
+ +
+
+

$K

+

Revenue

+
+
+
+
+ +
+
+

$K

+

Tickets

+
+
+
+
+ +
+
+

$M

+

Tasks

+
+
+
+
+
+
+
+
+
+

Recent Request

+ {/*

Over 500 members

*/} +
+ {/*
+ +
*/} +
+ + + {({ data }) => ( + <> + + + + + + + + + + + {data.map(item => ( + + + + + + + ))} + +
+ Request + + Account + + Activity + + Action +
+
+ Jese image +
+
John Dummy
+
HTML, JS, ReactJS
+
+
+
+
+
chiefSoft
+
Web, UI/UX Design
+
+
+
+
50%
+
+
+
+
+
+
+ {/*
+ +
*/} +
+ +
+ {/*
+ +
*/} +
+
+ + )} +
+
+
+
+
+ ) +} \ No newline at end of file diff --git a/src/components/home/Widget1.jsx b/src/components/home/Widget1.jsx index eba57a9..6bf0882 100644 --- a/src/components/home/Widget1.jsx +++ b/src/components/home/Widget1.jsx @@ -52,7 +52,7 @@ const chartOptions = (chartHeight) => { return { series: [ { - name: 'Net Profit', + name: 'Loans', data: [15, 25, 15, 40, 20, 50], }, ], @@ -171,7 +171,7 @@ const chartOptions = (chartHeight) => { }, y: { formatter: function (val) { - return '$' + val + ' thousands' + return '$' + val + ' thousand' }, }, }, diff --git a/src/components/home/Widget2.jsx b/src/components/home/Widget2.jsx index 2afe810..fb17931 100644 --- a/src/components/home/Widget2.jsx +++ b/src/components/home/Widget2.jsx @@ -48,7 +48,7 @@ const chartOptions = (chartHeight) => { return { series: [ { - name: 'Inflation', + name: 'Payments', data: [1, 2.1, 1, 2.1, 4.1, 6.1, 4.1, 4.1, 2.1, 4.1, 2.1, 3.1, 1, 1, 2.1], }, ], diff --git a/src/components/layouts/aside/DashboardAside.jsx b/src/components/layouts/aside/DashboardAside.jsx index c348e74..6c4c93c 100644 --- a/src/components/layouts/aside/DashboardAside.jsx +++ b/src/components/layouts/aside/DashboardAside.jsx @@ -51,7 +51,7 @@ export default function DashboardAside() { return (
{link.title && -

{link.title}

+

{link.title}

} <> @@ -137,7 +137,9 @@ export default function DashboardAside() { const asideNavLinks = [ {name:'Dashboard', status:1, icon: 'dashboard', to: RouteLinks.homePage}, - {name:'Salary Loan', title:'Loan', status:1, icon: 'arrow-right', subLinks: [ + {name:'First Advance', title:'Loan', status:1, icon: 'arrow-right', subLinks: [ + {name: 'Request', status:1, icon: 'dot', to: RouteLinks.requestPage}, + {name: 'Loans', status:1, icon: 'dot', to: RouteLinks.loansPage}, {name: 'Selected Loans', status:1, icon: 'dot', to: RouteLinks.selectedLoanPage}, {name: 'Applications', status:1, icon: 'dot', to: RouteLinks.applicationsLoanPage}, {name: 'Approved Loans', status:1, icon: 'dot', to: RouteLinks.approvedLoansPage}, diff --git a/src/components/loanscom/LoansCom.jsx b/src/components/loanscom/LoansCom.jsx new file mode 100644 index 0000000..365a4da --- /dev/null +++ b/src/components/loanscom/LoansCom.jsx @@ -0,0 +1,112 @@ +import React from 'react' +import { useQuery } from "@tanstack/react-query"; +import {Link} from 'react-router-dom' + +import BreadcrumbCom from '../breadcrumb/BreadcrumbCom' +import TableWrapper from '../tableWrapper/TableWrapper' +import Icons from '../Icons' + +import Avatar from '../../assets/user_avatar.jpg' +import queryKeys from '../../services/queryKeys' +import { selectLoan } from '../../services/siteServices' +import getDateFromDateString from '../../helpers/GetDateFromDateString'; +import getTimeFromDateString from '../../helpers/GetTimeFromDateString'; + +export default function LoansCom() { + + const {data, isFetching, isError, error} = useQuery({ + queryKey: queryKeys.select_loan, + queryFn: () => selectLoan() + }) + + const selectUsers = data?.data?.result_data?.data // APPLY LOAN LIST + + return ( +
+ + +
+ {isFetching ? + <> +

Loading...

+ + : isError ? +

{error.message}

+ : + + {({ data }) => ( + <> + + + + + + + + + + + {(data && data.length > 0) ? data?.map((item, index) => ( + + + + + + + )) + : + + + + } + +
+ Name + + Loan + + Added + + Action +
+
+ Jese image +
+
{item?.name || ''}
+
{item?.bvn}
+
+
+
+
+
{item?.loan}
+
{item?.description}
+
+
+
+
{getDateFromDateString(item?.added)} {getTimeFromDateString(item?.added)}
+
+
+
+
+ +
+
+ +
+
+ +
+
+
+
+ No Record Found +
+
+ + )} +
+ } +
+
+ ) +} \ No newline at end of file diff --git a/src/components/request/RequestCom.jsx b/src/components/request/RequestCom.jsx new file mode 100644 index 0000000..8cca011 --- /dev/null +++ b/src/components/request/RequestCom.jsx @@ -0,0 +1,112 @@ +import React from 'react' +import { useQuery } from "@tanstack/react-query"; +import {Link} from 'react-router-dom' + +import BreadcrumbCom from '../breadcrumb/BreadcrumbCom' +import TableWrapper from '../tableWrapper/TableWrapper' +import Icons from '../Icons' + +import Avatar from '../../assets/user_avatar.jpg' +import queryKeys from '../../services/queryKeys' +import { selectLoan } from '../../services/siteServices' +import getDateFromDateString from '../../helpers/GetDateFromDateString'; +import getTimeFromDateString from '../../helpers/GetTimeFromDateString'; + +export default function RequestCom() { + + const {data, isFetching, isError, error} = useQuery({ + queryKey: queryKeys.select_loan, + queryFn: () => selectLoan() + }) + + const selectUsers = data?.data?.result_data?.data // APPLY LOAN LIST + + return ( +
+ + +
+ {isFetching ? + <> +

Loading...

+ + : isError ? +

{error.message}

+ : + + {({ data }) => ( + <> + + + + + + + + + + + {(data && data.length > 0) ? data?.map((item, index) => ( + + + + + + + )) + : + + + + } + +
+ Name + + Loan + + Added + + Action +
+
+ Jese image +
+
{item?.name || ''}
+
{item?.bvn}
+
+
+
+
+
{item?.loan}
+
{item?.description}
+
+
+
+
{getDateFromDateString(item?.added)} {getTimeFromDateString(item?.added)}
+
+
+
+
+ +
+
+ +
+
+ +
+
+
+
+ No Record Found +
+
+ + )} +
+ } +
+
+ ) +} \ No newline at end of file diff --git a/src/pages/HomePage.jsx b/src/pages/HomePage.jsx index c82a82b..cfc18e8 100644 --- a/src/pages/HomePage.jsx +++ b/src/pages/HomePage.jsx @@ -1,157 +1,8 @@ import React from 'react' -import BreadcrumbCom from '../components/breadcrumb/BreadcrumbCom' -import CustomCounter from '../components/CustomCounter' -import Icons from '../components/Icons' -import TableWrapper from '../components/tableWrapper/TableWrapper' -import Avatar from '../assets/user_avatar.jpg' -import { Widget1 } from '../components/home/Widget1' -import { Widget2 } from '../components/home/Widget2' +import HomeCom from '../components/home/HomeCom' export default function HomePage() { return ( -
- -
-
-
-

Earnings

- {/* */} -
-

$

-

- 12% this week

-
-
-
-

Contributions

- {/* */} -
-

-

+ 56% this week

-
-
-
-

Summary

-
-
-
- -
-
-

$K

-

Sales

-
-
-
-
- -
-
-

$K

-

Revenue

-
-
-
-
- -
-
-

$K

-

Tickets

-
-
-
-
- -
-
-

$M

-

Tasks

-
-
-
-
-
-
-
-
-
-

Members Statistics

-

Over 500 members

-
-
- -
-
- - - {({ data }) => ( - <> - - - - - - - - - - - {data.map(item => ( - - - - - - - ))} - -
- Authors - - Company - - Progress - - Action -
-
- Jese image -
-
John Dummy
-
HTML, JS, ReactJS
-
-
-
-
-
chiefSoft
-
Web, UI/UX Design
-
-
-
-
50%
-
-
-
-
-
-
-
- -
-
- -
-
- -
-
-
- - )} -
-
-
-
-
+ ) } diff --git a/src/pages/LoansPage.jsx b/src/pages/LoansPage.jsx new file mode 100644 index 0000000..92ae639 --- /dev/null +++ b/src/pages/LoansPage.jsx @@ -0,0 +1,8 @@ +import React from 'react' +import LoansCom from '../components/loanscom/LoansCom' + +export default function LoansPage() { + return ( + + ) +} diff --git a/src/pages/RequestPage.jsx b/src/pages/RequestPage.jsx new file mode 100644 index 0000000..d0ff569 --- /dev/null +++ b/src/pages/RequestPage.jsx @@ -0,0 +1,8 @@ +import React from 'react' +import RequestCom from '../components/request/RequestCom' + +export default function RequestPage() { + return ( + + ) +}