From 88637c4776af8dda572702c8150b282335de655f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20Salgado?= Date: Fri, 14 Jan 2022 19:38:17 +0000 Subject: [PATCH 1/2] fix: improve UX when creating a trigger using custom requirements --- .../src/pages/Triggers/TriggerView.js | 4 +++ .../src/pages/Triggers/Wizard.js | 8 +++--- .../src/pages/Triggers/helper.js | 26 ++++--------------- 3 files changed, 13 insertions(+), 25 deletions(-) diff --git a/new-lamassu-admin/src/pages/Triggers/TriggerView.js b/new-lamassu-admin/src/pages/Triggers/TriggerView.js index 52256f55..93bbdc87 100644 --- a/new-lamassu-admin/src/pages/Triggers/TriggerView.js +++ b/new-lamassu-admin/src/pages/Triggers/TriggerView.js @@ -75,6 +75,10 @@ const TriggerView = ({ error={error?.message} save={add} onClose={toggleWizard} + customInfoRequests={R.filter( + it => it.enabled === true, + customInfoRequests + )} /> )} {R.isEmpty(triggers) && ( diff --git a/new-lamassu-admin/src/pages/Triggers/Wizard.js b/new-lamassu-admin/src/pages/Triggers/Wizard.js index 44eb7875..dfc5fd03 100644 --- a/new-lamassu-admin/src/pages/Triggers/Wizard.js +++ b/new-lamassu-admin/src/pages/Triggers/Wizard.js @@ -48,14 +48,14 @@ const styles = { const useStyles = makeStyles(styles) -const getStep = (step, currency) => { +const getStep = (step, currency, customInfoRequests) => { switch (step) { // case 1: // return txDirection case 1: return type(currency) case 2: - return requirements + return requirements(customInfoRequests) default: return Fragment } @@ -202,7 +202,7 @@ const GetValues = ({ setValues }) => { return null } -const Wizard = ({ onClose, save, error, currency }) => { +const Wizard = ({ onClose, save, error, currency, customInfoRequests }) => { const classes = useStyles() const [liveValues, setLiveValues] = useState({}) @@ -211,7 +211,7 @@ const Wizard = ({ onClose, save, error, currency }) => { }) const isLastStep = step === LAST_STEP - const stepOptions = getStep(step, currency) + const stepOptions = getStep(step, currency, customInfoRequests) const onContinue = async it => { const newConfig = R.merge(config, stepOptions.schema.cast(it)) diff --git a/new-lamassu-admin/src/pages/Triggers/helper.js b/new-lamassu-admin/src/pages/Triggers/helper.js index fcf91e71..f62b5ddf 100644 --- a/new-lamassu-admin/src/pages/Triggers/helper.js +++ b/new-lamassu-admin/src/pages/Triggers/helper.js @@ -1,8 +1,6 @@ -import { useQuery } from '@apollo/react-hooks' import { makeStyles, Box } from '@material-ui/core' import classnames from 'classnames' import { Field, useFormikContext } from 'formik' -import gql from 'graphql-tag' import * as R from 'ramda' import React, { memo } from 'react' import * as Yup from 'yup' @@ -508,16 +506,7 @@ const requirementOptions = [ { display: 'Block', code: 'block' } ] -const GET_ACTIVE_CUSTOM_REQUESTS = gql` - query customInfoRequests($onlyEnabled: Boolean) { - customInfoRequests(onlyEnabled: $onlyEnabled) { - id - customRequest - } - } -` - -const Requirement = () => { +const Requirement = ({ customInfoRequests }) => { const classes = useStyles() const { touched, @@ -526,11 +515,6 @@ const Requirement = () => { handleChange, setTouched } = useFormikContext() - const { data } = useQuery(GET_ACTIVE_CUSTOM_REQUESTS, { - variables: { - onlyEnabled: true - } - }) const isSuspend = values?.requirement?.requirement === 'suspend' const isCustom = values?.requirement?.requirement === 'custom' @@ -546,8 +530,7 @@ const Requirement = () => { (!values.requirement?.suspensionDays || values.requirement?.suspensionDays < 0) - const customInfoRequests = R.path(['customInfoRequests'])(data) ?? [] - const enableCustomRequirement = customInfoRequests.length > 0 + const enableCustomRequirement = customInfoRequests?.length > 0 const customInfoOption = { display: 'Custom information requirement', code: 'custom' @@ -604,10 +587,11 @@ const Requirement = () => { ) } -const requirements = { +const requirements = customInfoRequests => ({ schema: requirementSchema, options: requirementOptions, Component: Requirement, + props: { customInfoRequests }, initialValues: { requirement: { requirement: '', @@ -615,7 +599,7 @@ const requirements = { customInfoRequestId: '' } } -} +}) const getView = (data, code, compare) => it => { if (!data) return '' From dc1f8f82f9d7142ed06b2be185e84862798ad544 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20Salgado?= Date: Fri, 14 Jan 2022 19:45:18 +0000 Subject: [PATCH 2/2] fix: remove duplicate code --- new-lamassu-admin/src/pages/Triggers/TriggerView.js | 5 +---- new-lamassu-admin/src/pages/Triggers/Triggers.js | 10 +++++++--- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/new-lamassu-admin/src/pages/Triggers/TriggerView.js b/new-lamassu-admin/src/pages/Triggers/TriggerView.js index 93bbdc87..d07bdce9 100644 --- a/new-lamassu-admin/src/pages/Triggers/TriggerView.js +++ b/new-lamassu-admin/src/pages/Triggers/TriggerView.js @@ -75,10 +75,7 @@ const TriggerView = ({ error={error?.message} save={add} onClose={toggleWizard} - customInfoRequests={R.filter( - it => it.enabled === true, - customInfoRequests - )} + customInfoRequests={customInfoRequests} /> )} {R.isEmpty(triggers) && ( diff --git a/new-lamassu-admin/src/pages/Triggers/Triggers.js b/new-lamassu-admin/src/pages/Triggers/Triggers.js index af4046bc..c7e82550 100644 --- a/new-lamassu-admin/src/pages/Triggers/Triggers.js +++ b/new-lamassu-admin/src/pages/Triggers/Triggers.js @@ -48,8 +48,10 @@ const GET_CUSTOM_REQUESTS = gql` const Triggers = () => { const classes = useStyles() const [wizardType, setWizard] = useState(false) - const { data, loading } = useQuery(GET_CONFIG) - const { data: customInfoReqData } = useQuery(GET_CUSTOM_REQUESTS) + const { data, loading: configLoading } = useQuery(GET_CONFIG) + const { data: customInfoReqData, loading: customInfoLoading } = useQuery( + GET_CUSTOM_REQUESTS + ) const [error, setError] = useState(null) const [subMenu, setSubMenu] = useState(false) @@ -94,6 +96,8 @@ const Triggers = () => { return setWizard(wizardName) } + const loading = configLoading || customInfoLoading + return ( <> { showWizard={wizardType === 'newTrigger'} config={data?.config ?? {}} toggleWizard={toggleWizard('newTrigger')} - customInfoRequests={customInfoRequests} + customInfoRequests={enabledCustomInfoRequests} /> )} {!loading && subMenu === 'advancedSettings' && (