Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 9b2e0a6857 | |||
| 724e846826 | |||
| 0a31a25162 | |||
| 50e2385b50 | |||
| 7117539fa5 | |||
| 8384b5fd09 | |||
| 2a7c25d160 | |||
| 237be24476 |
Binary file not shown.
|
After Width: | Height: | Size: 602 KiB |
@@ -7,6 +7,7 @@ const QUERIES = {
|
||||
APPROVED_LIST: 'approved-list',
|
||||
REJECTED_LIST: 'rejected-list',
|
||||
CUSTOMERS_LIST: 'customers-list',
|
||||
ADMIN_USERS_LIST: 'admin-users-list',
|
||||
EMPLOYERS_LIST: 'employers-list',
|
||||
SIGNATORY_LIST: 'signatory-list',
|
||||
}
|
||||
|
||||
@@ -2,12 +2,17 @@ import {useIntl} from 'react-intl'
|
||||
import {MenuItem} from './MenuItem'
|
||||
import {MenuInnerWithSub} from './MenuInnerWithSub'
|
||||
import {MegaMenu} from './MegaMenu'
|
||||
import { useLocation } from 'react-router-dom'
|
||||
|
||||
export function MenuInner() {
|
||||
const intl = useIntl()
|
||||
const {pathname} = useLocation()
|
||||
const isHelpPath = pathname == '/help'
|
||||
return (
|
||||
<>
|
||||
<MenuItem title={intl.formatMessage({id: 'MENU.DASHBOARD'})} to='/dashboard' />
|
||||
{/* <MenuItem title={intl.formatMessage({id: 'MENU.DASHBOARD'})} to='/dashboard' /> */}
|
||||
<MenuItem title={`${isHelpPath ? 'Help' : 'Dashboard'}`} to={`${isHelpPath ? '/help' : '/dashboard'}`} />
|
||||
|
||||
{/* <MenuItem title='Layout Builder' to='/builder' /> */}
|
||||
<MenuInnerWithSub
|
||||
title='Crafted'
|
||||
|
||||
@@ -18,11 +18,12 @@ const EngageWidget10 = ({className}: Props) => (
|
||||
<div className='mb-10'>
|
||||
<div className='fs-2hx fw-bold text-gray-800 text-center mb-13'>
|
||||
<span className='me-2'>
|
||||
Need more help to manage to the platform
|
||||
Need more help to manage the platform
|
||||
<br />
|
||||
<span className='position-relative d-inline-block text-danger'>
|
||||
<Link
|
||||
to='/crafted/pages/profile/overview'
|
||||
to='/help'
|
||||
// target='_blank'
|
||||
className='text-danger
|
||||
opacity-75-hover'
|
||||
>
|
||||
|
||||
@@ -108,13 +108,14 @@ const TablesWidget10: FC<Props> = ({className, dashData}) => {
|
||||
<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>
|
||||
{/* <span className='text-muted me-2 fs-7 fw-semibold'>50%</span> */}
|
||||
<span className='text-muted me-2 fs-7 fw-semibold'>{(Number(item?.status)/5)*100}%</span>
|
||||
</div>
|
||||
<div className='progress h-6px w-100'>
|
||||
<div
|
||||
className='progress-bar bg-primary'
|
||||
role='progressbar'
|
||||
style={{width: '50%'}}
|
||||
style={{width: `${(Number(item?.status)/5)*100}%`}}
|
||||
></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
+6
-2
@@ -1,5 +1,5 @@
|
||||
import {Suspense} from 'react'
|
||||
import {Outlet} from 'react-router-dom'
|
||||
import {Suspense, useEffect} from 'react'
|
||||
import {Outlet, useLocation} from 'react-router-dom'
|
||||
import {I18nProvider} from '../_digifi/i18n/i18nProvider'
|
||||
import {LayoutProvider, LayoutSplashScreen} from '../_digifi/layout/core'
|
||||
import {MasterInit} from '../_digifi/layout/MasterInit'
|
||||
@@ -8,6 +8,10 @@ import {ThemeModeProvider} from '../_digifi/partials'
|
||||
import { CustomModalProvider } from '../context/CustomModal'
|
||||
|
||||
const App = () => {
|
||||
const {pathname}= useLocation()
|
||||
useEffect(()=>{
|
||||
window.scrollTo(0,0)
|
||||
},[pathname])
|
||||
return (
|
||||
<Suspense fallback={<LayoutSplashScreen />}>
|
||||
<I18nProvider>
|
||||
|
||||
@@ -11,7 +11,7 @@ import {
|
||||
stringifyRequestQuery,
|
||||
WithChildren,
|
||||
} from '../../../../../../_digifi/helpers'
|
||||
import {getCustomerList} from './_requests'
|
||||
import {getAdminUserList} from './_requests'
|
||||
import {User} from './_models'
|
||||
import {useQueryRequest} from './QueryRequestProvider'
|
||||
|
||||
@@ -32,9 +32,9 @@ const QueryResponseProvider: FC<WithChildren> = ({children}) => {
|
||||
refetch,
|
||||
data: response,
|
||||
} = useQuery(
|
||||
`${QUERIES.CUSTOMERS_LIST}-${query}`,
|
||||
`${QUERIES.ADMIN_USERS_LIST}-${query}`,
|
||||
() => {
|
||||
return getCustomerList(query)
|
||||
return getAdminUserList(query)
|
||||
},
|
||||
{cacheTime: 0, keepPreviousData: true, refetchOnWindowFocus: false}
|
||||
)
|
||||
|
||||
@@ -30,6 +30,7 @@ export type User = {
|
||||
added?: string
|
||||
updated?: string
|
||||
bvn?: string
|
||||
username?: string
|
||||
}
|
||||
|
||||
export type UsersQueryResponse = Response<Array<User>>
|
||||
|
||||
@@ -19,6 +19,12 @@ const getCustomerList = (query: string): Promise<UsersQueryResponse> => { // FUN
|
||||
.then((d: AxiosResponse<UsersQueryResponse>) => d.data);
|
||||
};
|
||||
|
||||
const getAdminUserList = (query: string): Promise<UsersQueryResponse> => { // FUNCTION TO GET USERS THAT HAVE STARTED LOAN APPLICATION
|
||||
return axios
|
||||
.get(`${NEW_USER_ENDPOINT}/users`)
|
||||
.then((d: AxiosResponse<UsersQueryResponse>) => d.data);
|
||||
};
|
||||
|
||||
const getUserById = (id: ID): Promise<User | undefined> => {
|
||||
return axios
|
||||
.get(`${USER_URL}/${id}`)
|
||||
@@ -54,6 +60,7 @@ export {
|
||||
deleteUser,
|
||||
deleteSelectedUsers,
|
||||
getUserById,
|
||||
getAdminUserList,
|
||||
createUser,
|
||||
updateUser,
|
||||
};
|
||||
|
||||
@@ -20,17 +20,6 @@ const usersColumns: ReadonlyArray<Column<User>> = [
|
||||
id: 'firstname',
|
||||
Cell: ({...props}) => <UserInfoCell user={props.data[props.row.index]} />,
|
||||
},
|
||||
{
|
||||
Header: (props) => <UserCustomHeader tableProps={props} title='BVN' className='min-w-125px' />,
|
||||
accessor: 'bvn',
|
||||
},
|
||||
// {
|
||||
// Header: (props) => (
|
||||
// <UserCustomHeader tableProps={props} title='Payment Terms' className='min-w-125px' />
|
||||
// ),
|
||||
// id: 'payment_month',
|
||||
// Cell: ({...props}) => <PaymentMonthCell payment_month={props.data[props.row.index].payment_month} />,
|
||||
// },
|
||||
{
|
||||
Header: (props) => (
|
||||
<UserCustomHeader tableProps={props} title='Status' className='min-w-125px' />
|
||||
|
||||
@@ -16,70 +16,39 @@ const AuthLayout = () => {
|
||||
}, []);
|
||||
|
||||
return (
|
||||
<div className="d-flex flex-column flex-lg-row flex-column-fluid h-100">
|
||||
<div className="d-flex flex-column flex-lg-row flex-column-fluid"
|
||||
style={{backgroundImage: 'url(../../../../public/media/auth/digifi_bko_home.jpg)', backgroundRepeat: 'none', backgroundSize: 'cover'}}
|
||||
>
|
||||
{/* begin::Body */}
|
||||
<div className="d-flex flex-column flex-lg-row-fluid w-lg-50 p-10 order-2 order-lg-1">
|
||||
<div className="h-100 flex flex-column align-items-center w-lg-50 p-10">
|
||||
{/* begin::Form */}
|
||||
<div className="d-flex flex-center flex-column flex-lg-row-fluid">
|
||||
<div
|
||||
// className="d-flex flex-center flex-column flex-lg-row-fluid"
|
||||
className="d-flex h-100 align-items-center"
|
||||
>
|
||||
{/* begin::Wrapper */}
|
||||
<div className="w-lg-500px p-10">
|
||||
<div className="w-lg-500px p-10 bg-white shadow-sm rounded">
|
||||
{/* begin::Title */}
|
||||
<h1 className="text-black fs-2qx fw-bolder text-center mb-7">
|
||||
{/* begin::Logo */}
|
||||
<Link to="/" className="mb-12">
|
||||
<img
|
||||
alt="Logo"
|
||||
src={toAbsoluteUrl("media/logos/custom-1.png")}
|
||||
className="h-75px"
|
||||
/>
|
||||
</Link>
|
||||
{/* end::Logo */}
|
||||
BackOffice
|
||||
</h1>
|
||||
{/* end::Title */}
|
||||
<Outlet />
|
||||
</div>
|
||||
{/* end::Wrapper */}
|
||||
</div>
|
||||
{/* end::Form */}
|
||||
|
||||
{/* begin::Footer */}
|
||||
<div className="d-flex flex-center flex-wrap px-5">
|
||||
{/* begin::Links */}
|
||||
<div className="d-flex fw-semibold text-primary fs-base">
|
||||
<a href="#" className="px-5" target="_blank">
|
||||
Terms
|
||||
</a>
|
||||
|
||||
<a href="#" className="px-5" target="_blank">
|
||||
Contact Us
|
||||
</a>
|
||||
</div>
|
||||
{/* end::Links */}
|
||||
</div>
|
||||
{/* end::Footer */}
|
||||
</div>
|
||||
{/* end::Body */}
|
||||
|
||||
{/* begin::Aside */}
|
||||
<div
|
||||
className="d-flex flex-lg-row-fluid w-lg-50 bgi-size-cover bgi-position-center order-1 order-lg-2"
|
||||
>
|
||||
{/* begin::Content */}
|
||||
<div className="d-flex flex-column flex-center py-15 px-5 px-md-15 w-100">
|
||||
{/* begin::Logo */}
|
||||
<Link to="/" className="mb-12">
|
||||
<img
|
||||
alt="Logo"
|
||||
src={toAbsoluteUrl("media/logos/custom-1.png")}
|
||||
className="h-75px"
|
||||
/>
|
||||
</Link>
|
||||
{/* end::Logo */}
|
||||
|
||||
{/* begin::Image */}
|
||||
<img
|
||||
className="mx-auto w-275px w-md-50 w-xl-500px mb-10 mb-lg-20"
|
||||
src={toAbsoluteUrl("media/misc/agents-auth-screens.png")}
|
||||
alt=""
|
||||
/>
|
||||
{/* end::Image */}
|
||||
|
||||
{/* begin::Title */}
|
||||
<h1 className="text-black fs-2qx fw-bolder text-center mb-7">
|
||||
digiFi BackOffice
|
||||
</h1>
|
||||
{/* end::Title */}
|
||||
</div>
|
||||
{/* end::Content */}
|
||||
</div>
|
||||
{/* end::Aside */}
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
import { Content } from "../../../_digifi/layout/components/content";
|
||||
|
||||
export default function HelpPage() {
|
||||
return (
|
||||
<Content>
|
||||
<div className="w-100 h-100">
|
||||
<h1 className="fs-2hx fw-bold text-gray-800">Help</h1>
|
||||
</div>
|
||||
</Content>
|
||||
)
|
||||
}
|
||||
@@ -6,6 +6,7 @@ import { DashboardWrapper } from "../pages/dashboard/DashboardWrapper";
|
||||
// import {MenuTestPage} from '../pages/MenuTestPage'
|
||||
import { getCSSVariableValue } from "../../_digifi/assets/ts/_utils";
|
||||
import { WithChildren } from "../../_digifi/helpers";
|
||||
import HelpPage from "../modules/help/HelpPage";
|
||||
// import BuilderPageWrapper from '../pages/layout-builder/BuilderPageWrapper'
|
||||
|
||||
const PrivateRoutes = () => {
|
||||
@@ -98,6 +99,7 @@ const PrivateRoutes = () => {
|
||||
</SuspensedView>
|
||||
}
|
||||
/>
|
||||
<Route path='/help' element={<HelpPage />} />
|
||||
{/* Page Not Found */}
|
||||
<Route path="*" element={<Navigate to="/error/404" />} />
|
||||
</Route>
|
||||
|
||||
Reference in New Issue
Block a user