chore: bump uuid version on UI side
fix: add custom info requests to customer list status check
This commit is contained in:
parent
81d74eb40b
commit
2a3e954484
5 changed files with 60 additions and 25 deletions
6
new-lamassu-admin/package-lock.json
generated
6
new-lamassu-admin/package-lock.json
generated
|
|
@ -27467,9 +27467,9 @@
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"uuid": {
|
"uuid": {
|
||||||
"version": "7.0.3",
|
"version": "8.3.2",
|
||||||
"resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
|
||||||
"integrity": "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg=="
|
"integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg=="
|
||||||
},
|
},
|
||||||
"v8-compile-cache": {
|
"v8-compile-cache": {
|
||||||
"version": "2.2.0",
|
"version": "2.2.0",
|
||||||
|
|
|
||||||
|
|
@ -49,7 +49,7 @@
|
||||||
"react-virtualized": "^9.21.2",
|
"react-virtualized": "^9.21.2",
|
||||||
"sanctuary": "^2.0.1",
|
"sanctuary": "^2.0.1",
|
||||||
"ua-parser-js": "^1.0.2",
|
"ua-parser-js": "^1.0.2",
|
||||||
"uuid": "^7.0.2",
|
"uuid": "^8.3.2",
|
||||||
"yup": "0.32.9"
|
"yup": "0.32.9"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
|
|
||||||
|
|
@ -57,6 +57,22 @@ const GET_CUSTOMERS = gql`
|
||||||
sanctionsOverride
|
sanctionsOverride
|
||||||
daysSuspended
|
daysSuspended
|
||||||
isSuspended
|
isSuspended
|
||||||
|
customInfoRequests {
|
||||||
|
customerId
|
||||||
|
infoRequestId
|
||||||
|
override
|
||||||
|
overrideAt
|
||||||
|
overrideBy
|
||||||
|
customerData
|
||||||
|
customInfoRequest {
|
||||||
|
id
|
||||||
|
enabled
|
||||||
|
customRequest
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
customInfoRequests {
|
||||||
|
id
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
`
|
`
|
||||||
|
|
@ -110,6 +126,8 @@ const Customers = () => {
|
||||||
})
|
})
|
||||||
|
|
||||||
const configData = R.path(['config'])(customersResponse) ?? []
|
const configData = R.path(['config'])(customersResponse) ?? []
|
||||||
|
const customRequirementsData =
|
||||||
|
R.path(['customInfoRequests'], customersResponse) ?? []
|
||||||
const locale = configData && fromNamespace(namespaces.LOCALE, configData)
|
const locale = configData && fromNamespace(namespaces.LOCALE, configData)
|
||||||
const triggers = configData && fromNamespace(namespaces.TRIGGERS, configData)
|
const triggers = configData && fromNamespace(namespaces.TRIGGERS, configData)
|
||||||
const customersData = R.sortWith([
|
const customersData = R.sortWith([
|
||||||
|
|
@ -207,6 +225,7 @@ const Customers = () => {
|
||||||
onClick={handleCustomerClicked}
|
onClick={handleCustomerClicked}
|
||||||
loading={customerLoading}
|
loading={customerLoading}
|
||||||
triggers={triggers}
|
triggers={triggers}
|
||||||
|
customRequests={customRequirementsData}
|
||||||
/>
|
/>
|
||||||
<CreateCustomerModal
|
<CreateCustomerModal
|
||||||
showModal={showCreationModal}
|
showModal={showCreationModal}
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,14 @@ import { getAuthorizedStatus, getFormattedPhone, getName } from './helper'
|
||||||
|
|
||||||
const useStyles = makeStyles(styles)
|
const useStyles = makeStyles(styles)
|
||||||
|
|
||||||
const CustomersList = ({ data, locale, onClick, loading, triggers }) => {
|
const CustomersList = ({
|
||||||
|
data,
|
||||||
|
locale,
|
||||||
|
onClick,
|
||||||
|
loading,
|
||||||
|
triggers,
|
||||||
|
customRequests
|
||||||
|
}) => {
|
||||||
const classes = useStyles()
|
const classes = useStyles()
|
||||||
|
|
||||||
const elements = [
|
const elements = [
|
||||||
|
|
@ -66,7 +73,11 @@ const CustomersList = ({ data, locale, onClick, loading, triggers }) => {
|
||||||
{
|
{
|
||||||
header: 'Status',
|
header: 'Status',
|
||||||
width: 191,
|
width: 191,
|
||||||
view: it => <MainStatus statuses={[getAuthorizedStatus(it, triggers)]} />
|
view: it => (
|
||||||
|
<MainStatus
|
||||||
|
statuses={[getAuthorizedStatus(it, triggers, customRequests)]}
|
||||||
|
/>
|
||||||
|
)
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@ import { parse, isValid, format } from 'date-fns/fp'
|
||||||
import { Field, useFormikContext } from 'formik'
|
import { Field, useFormikContext } from 'formik'
|
||||||
import { parsePhoneNumberFromString } from 'libphonenumber-js'
|
import { parsePhoneNumberFromString } from 'libphonenumber-js'
|
||||||
import * as R from 'ramda'
|
import * as R from 'ramda'
|
||||||
|
import * as uuid from 'uuid'
|
||||||
import * as Yup from 'yup'
|
import * as Yup from 'yup'
|
||||||
|
|
||||||
import {
|
import {
|
||||||
|
|
@ -56,14 +57,11 @@ const CUSTOM = 'custom'
|
||||||
const REQUIREMENT = 'requirement'
|
const REQUIREMENT = 'requirement'
|
||||||
const ID_CARD_DATA = 'idCardData'
|
const ID_CARD_DATA = 'idCardData'
|
||||||
|
|
||||||
const getAuthorizedStatus = (it, triggers) => {
|
const getAuthorizedStatus = (it, triggers, customRequests) => {
|
||||||
const fields = [
|
const fields = R.concat(
|
||||||
'frontCamera',
|
['frontCamera', 'idCardData', 'idCardPhoto', 'usSsn', 'sanctions'],
|
||||||
'idCardData',
|
R.map(ite => ite.id, customRequests)
|
||||||
'idCardPhoto',
|
)
|
||||||
'usSsn',
|
|
||||||
'sanctions'
|
|
||||||
]
|
|
||||||
const fieldsWithPathSuffix = ['frontCamera', 'idCardPhoto']
|
const fieldsWithPathSuffix = ['frontCamera', 'idCardPhoto']
|
||||||
|
|
||||||
const isManualField = fieldName => {
|
const isManualField = fieldName => {
|
||||||
|
|
@ -83,17 +81,24 @@ const getAuthorizedStatus = (it, triggers) => {
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
const pendingFieldStatus = R.map(
|
const pendingFieldStatus = R.map(ite => {
|
||||||
ite =>
|
if (isManualField(ite)) {
|
||||||
!R.isNil(
|
if (uuid.validate(ite)) {
|
||||||
R.includes(ite, fieldsWithPathSuffix) ? it[`${ite}Path`] : it[`${ite}`]
|
const request = R.find(
|
||||||
)
|
iter => iter.infoRequestId === ite,
|
||||||
? isManualField(ite)
|
it.customInfoRequests
|
||||||
? R.equals(it[`${ite}Override`], 'automatic')
|
)
|
||||||
: false
|
return !R.isNil(request) && R.equals(request.override, 'automatic')
|
||||||
: false,
|
}
|
||||||
fields
|
|
||||||
)
|
const regularFieldValue = R.includes(ite, fieldsWithPathSuffix)
|
||||||
|
? it[`${ite}Path`]
|
||||||
|
: it[`${ite}`]
|
||||||
|
if (R.isNil(regularFieldValue)) return false
|
||||||
|
return R.equals(it[`${ite}Override`], 'automatic')
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}, fields)
|
||||||
|
|
||||||
if (it.authorizedOverride === CUSTOMER_BLOCKED)
|
if (it.authorizedOverride === CUSTOMER_BLOCKED)
|
||||||
return { label: 'Blocked', type: 'error' }
|
return { label: 'Blocked', type: 'error' }
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue