Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 2eb39b773a | |||
| 4e97119644 | |||
| 7bc39a449c | |||
| f7f728c066 | |||
| 3845ecbefe | |||
| 43b0e60db2 |
+9
-9
@@ -1,17 +1,17 @@
|
||||
PORT=3011
|
||||
VITE_APP_BASE_LAYOUT_CONFIG_KEY='metronic-react-demo1-8150'
|
||||
VITE_APP_API_URL=https://preview.keenthemes.com/metronic8/laravel/api
|
||||
VITE_APP_BASE_LAYOUT_CONFIG_KEY='digifi-agent'
|
||||
VITE_APP_API_URL=https://dev-agents.digifi.com
|
||||
VITE_APP_VERSION=v8.2.3
|
||||
VITE_APP_THEME_NAME=WrenchBoard
|
||||
VITE_APP_THEME_DEMO=demo1
|
||||
VITE_APP_THEME_NAME=digifi
|
||||
VITE_APP_THEME_DEMO=digifi
|
||||
VITE_APP_BOOTSTRAP_DOCS_LINK=https://getbootstrap.com/docs/5.0
|
||||
VITE_APP_SASS_PATH=src/_digifi/assets/sass/core/components
|
||||
VITE_APP_SASS_VARIABLES_PATH=src/_digifi/assets/sass/core/components/_variables.scss
|
||||
VITE_APP_PURCHASE_URL=https://themeforest.net/item/metronic-responsive-admin-dashboard-template/4021469
|
||||
VITE_APP_PREVIEW_URL=https://preview.keenthemes.com/metronic8/react/demo1/
|
||||
VITE_APP_PREVIEW_REACT_URL=https://preview.keenthemes.com/metronic8/react
|
||||
VITE_APP_PREVIEW_DOCS_URL=https://preview.keenthemes.com/metronic8/react/docs
|
||||
VITE_APP_THEME_API_URL=https://preview.keenthemes.com/theme-api/api
|
||||
VITE_APP_PURCHASE_URL=https://www.digifi.com/
|
||||
VITE_APP_PREVIEW_URL=https://www.digifi.com/demo1/
|
||||
VITE_APP_PREVIEW_REACT_URL=https://www.digifi.com
|
||||
VITE_APP_PREVIEW_DOCS_URL=https://www.digifi.com/
|
||||
VITE_APP_THEME_API_URL=https://api.digifi/api/api
|
||||
|
||||
# CUSTOM ENV VARIABLES ADDED
|
||||
VITE_APP_USER_ENDPOINT=https://digifi-apidev.chiefsoft.net/digibko/v1
|
||||
+9
-9
@@ -1,17 +1,17 @@
|
||||
PORT=3011
|
||||
VITE_APP_BASE_LAYOUT_CONFIG_KEY='metronic-react-demo1-8150'
|
||||
VITE_APP_API_URL=https://preview.keenthemes.com/metronic8/laravel/api
|
||||
VITE_APP_BASE_LAYOUT_CONFIG_KEY='digifi-agent'
|
||||
VITE_APP_API_URL=https://dev-agents.digifi.com
|
||||
VITE_APP_VERSION=v8.2.3
|
||||
VITE_APP_THEME_NAME=DigiFi
|
||||
VITE_APP_THEME_DEMO=demo1
|
||||
VITE_APP_THEME_NAME=digifi
|
||||
VITE_APP_THEME_DEMO=digifi
|
||||
VITE_APP_BOOTSTRAP_DOCS_LINK=https://getbootstrap.com/docs/5.0
|
||||
VITE_APP_SASS_PATH=src/_digifi/assets/sass/core/components
|
||||
VITE_APP_SASS_VARIABLES_PATH=src/_digifi/assets/sass/core/components/_variables.scss
|
||||
VITE_APP_PURCHASE_URL=https://themeforest.net/item/metronic-responsive-admin-dashboard-template/4021469
|
||||
VITE_APP_PREVIEW_URL=https://preview.keenthemes.com/metronic8/react/demo1/
|
||||
VITE_APP_PREVIEW_REACT_URL=https://preview.keenthemes.com/metronic8/react
|
||||
VITE_APP_PREVIEW_DOCS_URL=https://preview.keenthemes.com/metronic8/react/docs
|
||||
VITE_APP_THEME_API_URL=https://preview.keenthemes.com/theme-api/api
|
||||
VITE_APP_PURCHASE_URL=https://www.digifi.com/
|
||||
VITE_APP_PREVIEW_URL=https://www.digifi.com/demo1/
|
||||
VITE_APP_PREVIEW_REACT_URL=https://www.digifi.com
|
||||
VITE_APP_PREVIEW_DOCS_URL=https://www.digifi.com/
|
||||
VITE_APP_THEME_API_URL=https://api.digifi/api/api
|
||||
|
||||
# CUSTOM ENV VARIABLES ADDED
|
||||
VITE_APP_USER_ENDPOINT=https://digifi-apidev.chiefsoft.net/digibko/v1
|
||||
@@ -75,7 +75,7 @@ function groupingOnSelect(
|
||||
function groupingOnSelectAll<T>(
|
||||
isAllSelected: boolean,
|
||||
setSelected: Dispatch<SetStateAction<Array<ID>>>,
|
||||
data?: Array<T & {id?: ID}>
|
||||
data?: Array<T & {uid?: ID}>
|
||||
) {
|
||||
if (isAllSelected) {
|
||||
setSelected([])
|
||||
@@ -86,7 +86,7 @@ function groupingOnSelectAll<T>(
|
||||
return
|
||||
}
|
||||
|
||||
setSelected(data.filter((item) => item.id).map((item) => item.id))
|
||||
setSelected(data.filter((item) => item.uid).map((item) => item.uid))
|
||||
}
|
||||
|
||||
// Hook
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import {Dispatch, SetStateAction} from 'react'
|
||||
|
||||
export type ID = undefined | null | number
|
||||
export type ID = undefined | null | number | string
|
||||
|
||||
export type PaginationState = {
|
||||
page: number
|
||||
@@ -23,6 +23,7 @@ export type SearchState = {
|
||||
|
||||
export type Response<T> = {
|
||||
data?: T
|
||||
records?: Array<any>
|
||||
payload?: {
|
||||
message?: string
|
||||
errors?: {
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
|
||||
export function NewDateTimeFormatter(isoDateString:any, addHour = true) {
|
||||
const date = new Date(isoDateString);
|
||||
if (addHour) {
|
||||
date.setTime(date.getTime() + 1 * 60 * 60 * 1000);
|
||||
}
|
||||
const formattedDate = date.toLocaleDateString("en-US", {
|
||||
year: "numeric",
|
||||
month: "numeric",
|
||||
day: "numeric",
|
||||
hour: "2-digit",
|
||||
minute: "2-digit",
|
||||
// second: "2-digit",
|
||||
hour12: true,
|
||||
timeZone: "UTC",
|
||||
});
|
||||
return formattedDate;
|
||||
}
|
||||
@@ -54,7 +54,7 @@ const useQueryResponseData = () => {
|
||||
return []
|
||||
}
|
||||
|
||||
return response?.data || []
|
||||
return response?.records || []
|
||||
}
|
||||
|
||||
const useQueryResponsePagination = () => {
|
||||
|
||||
@@ -13,9 +13,9 @@ const NEW_USER_ENDPOINT = import.meta.env.VITE_APP_USER_ENDPOINT
|
||||
// .get(`${GET_USERS_URL}?${query}`)
|
||||
// .then((d: AxiosResponse<UsersQueryResponse>) => d.data);
|
||||
// };
|
||||
const getStartedUsers = (query: string): Promise<UsersQueryResponse> => {
|
||||
const getStartedUsers = (query: string): Promise<UsersQueryResponse> => { // FUNCTION TO GET USERS THAT HAVE STARTED LOAN APPLICATION
|
||||
return axios
|
||||
.get(`${NEW_USER_ENDPOINT}/loan/started?${query}`)
|
||||
.get(`${NEW_USER_ENDPOINT}/loan/started`)
|
||||
.then((d: AxiosResponse<UsersQueryResponse>) => d.data);
|
||||
};
|
||||
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
import {FC} from 'react'
|
||||
import { NewDateTimeFormatter } from '../../../../../../../_digifi/lib/NewDateTimeFormatter'
|
||||
|
||||
type Props = {
|
||||
added?: string
|
||||
}
|
||||
|
||||
const AddedCell: FC<Props> = ({added}) => (
|
||||
<div className='badge badge-light fw-bolder'>{NewDateTimeFormatter((added))}</div>
|
||||
)
|
||||
|
||||
export {AddedCell}
|
||||
@@ -0,0 +1,11 @@
|
||||
import {FC} from 'react'
|
||||
|
||||
type Props = {
|
||||
agent?: string
|
||||
}
|
||||
|
||||
const AgentCell: FC<Props> = ({agent}) => (
|
||||
<> {agent && <div className='badge badge-light-success fw-bolder'>{agent}</div>}</>
|
||||
)
|
||||
|
||||
export {AgentCell}
|
||||
@@ -25,14 +25,14 @@ const UserInfoCell: FC<Props> = ({user}) => (
|
||||
`text-${user.initials?.state}`
|
||||
)}
|
||||
>
|
||||
{user.initials?.label}
|
||||
{user.firstname?.substring(0,1).toUpperCase()} {user.lastname?.substring(0,1).toUpperCase()}
|
||||
</div>
|
||||
)}
|
||||
</a>
|
||||
</div>
|
||||
<div className='d-flex flex-column'>
|
||||
<a href='#' className='text-gray-800 text-hover-primary mb-1'>
|
||||
{user.name}
|
||||
{user.firstname} {user.lastname}
|
||||
</a>
|
||||
<span>{user.email}</span>
|
||||
</div>
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import {FC} from 'react'
|
||||
|
||||
type Props = {
|
||||
last_login?: string
|
||||
payment_month?: string
|
||||
}
|
||||
|
||||
const UserLastLoginCell: FC<Props> = ({last_login}) => (
|
||||
<div className='badge badge-light fw-bolder'>{last_login}</div>
|
||||
const PaymentMonthCell: FC<Props> = ({payment_month}) => (
|
||||
<div className='badge badge-light fw-bolder'>{payment_month}</div>
|
||||
)
|
||||
|
||||
export {UserLastLoginCell}
|
||||
export {PaymentMonthCell}
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
import {FC} from 'react'
|
||||
|
||||
type Props = {
|
||||
two_steps?: boolean
|
||||
}
|
||||
|
||||
const UserTwoStepsCell: FC<Props> = ({two_steps}) => (
|
||||
<> {two_steps && <div className='badge badge-light-success fw-bolder'>Enabled</div>}</>
|
||||
)
|
||||
|
||||
export {UserTwoStepsCell}
|
||||
@@ -1,55 +1,57 @@
|
||||
import {Column} from 'react-table'
|
||||
import {UserInfoCell} from './UserInfoCell'
|
||||
import {UserLastLoginCell} from './UserLastLoginCell'
|
||||
import {UserTwoStepsCell} from './UserTwoStepsCell'
|
||||
import { PaymentMonthCell } from './UserLastLoginCell'
|
||||
import {AgentCell} from './AgentCell'
|
||||
import {UserActionsCell} from './UserActionsCell'
|
||||
import {UserSelectionCell} from './UserSelectionCell'
|
||||
import {UserCustomHeader} from './UserCustomHeader'
|
||||
import {UserSelectionHeader} from './UserSelectionHeader'
|
||||
import {User} from '../../core/_models'
|
||||
import { AddedCell } from './AddedCell'
|
||||
|
||||
const usersColumns: ReadonlyArray<Column<User>> = [
|
||||
{
|
||||
Header: (props) => <UserSelectionHeader tableProps={props} />,
|
||||
id: 'selection',
|
||||
Cell: ({...props}) => <UserSelectionCell id={props.data[props.row.index].id} />,
|
||||
Cell: ({...props}) => <UserSelectionCell id={props.data[props.row.index].uid} />,
|
||||
},
|
||||
{
|
||||
Header: (props) => <UserCustomHeader tableProps={props} title='Name' className='min-w-125px' />,
|
||||
id: 'name',
|
||||
id: 'firstname',
|
||||
Cell: ({...props}) => <UserInfoCell user={props.data[props.row.index]} />,
|
||||
},
|
||||
{
|
||||
Header: (props) => <UserCustomHeader tableProps={props} title='Amount' className='min-w-125px' />,
|
||||
accessor: 'role',
|
||||
accessor: 'loan_amount',
|
||||
},
|
||||
{
|
||||
Header: (props) => (
|
||||
<UserCustomHeader tableProps={props} title='Payment Terms' className='min-w-125px' />
|
||||
),
|
||||
id: 'last_login',
|
||||
Cell: ({...props}) => <UserLastLoginCell last_login={props.data[props.row.index].last_login} />,
|
||||
id: 'payment_month',
|
||||
Cell: ({...props}) => <PaymentMonthCell payment_month={props.data[props.row.index].payment_month} />,
|
||||
},
|
||||
{
|
||||
Header: (props) => (
|
||||
<UserCustomHeader tableProps={props} title='Agent' className='min-w-125px' />
|
||||
),
|
||||
id: 'two_steps',
|
||||
Cell: ({...props}) => <UserTwoStepsCell two_steps={props.data[props.row.index].two_steps} />,
|
||||
id: 'sales_agent',
|
||||
Cell: ({...props}) => <AgentCell agent={props.data[props.row.index].sales_agent} />,
|
||||
},
|
||||
{
|
||||
Header: (props) => (
|
||||
<UserCustomHeader tableProps={props} title='Added' className='min-w-125px' />
|
||||
),
|
||||
accessor: 'joined_day',
|
||||
id: 'added',
|
||||
Cell: ({...props}) => <AddedCell added={props.data[props.row.index].added} />,
|
||||
},
|
||||
{
|
||||
Header: (props) => (
|
||||
<UserCustomHeader tableProps={props} title='Actions' className='text-end min-w-100px' />
|
||||
),
|
||||
id: 'actions',
|
||||
Cell: ({...props}) => <UserActionsCell id={props.data[props.row.index].id} />,
|
||||
Cell: ({...props}) => <UserActionsCell id={props.data[props.row.index].uid} />,
|
||||
},
|
||||
]
|
||||
|
||||
export {usersColumns}
|
||||
export {usersColumns}
|
||||
@@ -53,9 +53,9 @@ export function setupAxios(axios: any) {
|
||||
axios.interceptors.request.use(
|
||||
(config: {headers: {Authorization: string}}) => {
|
||||
const auth = getAuth()
|
||||
if (auth && auth.api_token) {
|
||||
config.headers.Authorization = `Bearer ${auth.api_token}`
|
||||
}
|
||||
// if (auth && auth.api_token) {
|
||||
// config.headers.Authorization = `Bearer ${auth.api_token}`
|
||||
// }
|
||||
|
||||
return config
|
||||
},
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
import axios from "axios";
|
||||
|
||||
export function postAuxEnd(uri:string, reqData:any):Promise<any> {
|
||||
// const endPoint = process.env.REACT_APP_USERS_ENDPOINT + uri;
|
||||
const endPoint = import.meta.env.VITE_APP_USER_ENDPOINT + uri;
|
||||
const formData = new FormData();
|
||||
for (let value in reqData) {
|
||||
formData.append(value, reqData[value]);
|
||||
}
|
||||
return axios.post(uri, reqData)
|
||||
return axios.post(endPoint, formData)
|
||||
.then((response) => {
|
||||
console.log(response);
|
||||
// if (response.data.internal_return == "-9999") {
|
||||
|
||||
@@ -1,6 +1,18 @@
|
||||
export interface AuthModel {
|
||||
api_token: string
|
||||
refreshToken?: string
|
||||
|
||||
message?: string
|
||||
call_return?: string
|
||||
username: string
|
||||
token?: string
|
||||
id?: string
|
||||
first_name?: string
|
||||
last_name?: string
|
||||
email?: string
|
||||
email_verified_at?: string
|
||||
created_at?: string
|
||||
updated_at?: string
|
||||
}
|
||||
|
||||
export interface UserAddressModel {
|
||||
@@ -64,4 +76,13 @@ export interface UserModel {
|
||||
communication?: UserCommunicationModel
|
||||
address?: UserAddressModel
|
||||
socialNetworks?: UserSocialNetworksModel
|
||||
|
||||
api_token: string
|
||||
refreshToken?: string
|
||||
message?: string
|
||||
call_return?: string
|
||||
token?: string
|
||||
email_verified_at?: string
|
||||
created_at?: string
|
||||
updated_at?: string
|
||||
}
|
||||
|
||||
@@ -5,9 +5,11 @@ import { postAuxEnd } from "./AxiosCallHelper";
|
||||
|
||||
const API_URL = import.meta.env.VITE_APP_API_URL;
|
||||
|
||||
export const GET_USER_BY_ACCESSTOKEN_URL = `${API_URL}/verify_token`;
|
||||
export const LOGIN_URL = `${API_URL}/login`;
|
||||
// export const LOGIN_URL = 'https://digifi-apidev.chiefsoft.net/digibko/v1/identity/token'
|
||||
// export const GET_USER_BY_ACCESSTOKEN_URL = `${API_URL}/verify_token`;
|
||||
// export const LOGIN_URL = `${API_URL}/login`;
|
||||
|
||||
export const GET_USER_BY_ACCESSTOKEN_URL = '/identity/verify_token'
|
||||
export const LOGIN_URL = '/identity/token'
|
||||
export const REGISTER_URL = `${API_URL}/register`;
|
||||
export const REQUEST_PASSWORD_URL = `${API_URL}/forgot_password`;
|
||||
|
||||
@@ -17,13 +19,7 @@ export function login(email: string, password: string) {
|
||||
// email,
|
||||
// password,
|
||||
// });
|
||||
|
||||
// let formData = new FormData()
|
||||
// formData.append('username', email)
|
||||
// formData.append('pass', password)
|
||||
// return axios.post<AuthModel>(LOGIN_URL, formData);
|
||||
|
||||
return postAuxEnd(LOGIN_URL, {email, password})
|
||||
return postAuxEnd(LOGIN_URL, {username:email, pass:password})
|
||||
}
|
||||
|
||||
// Server should return AuthModel
|
||||
@@ -50,8 +46,12 @@ export function requestPassword(email: string) {
|
||||
});
|
||||
}
|
||||
|
||||
// export function getUserByToken(token: string) {
|
||||
// return axios.post<UserModel>(GET_USER_BY_ACCESSTOKEN_URL, {
|
||||
// api_token: token,
|
||||
// });
|
||||
// }
|
||||
|
||||
export function getUserByToken(token: string) {
|
||||
return axios.post<UserModel>(GET_USER_BY_ACCESSTOKEN_URL, {
|
||||
api_token: token,
|
||||
});
|
||||
return postAuxEnd(GET_USER_BY_ACCESSTOKEN_URL, {token})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user