From 561532339a52d78cd1147e9328c4f6619806c9ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Oliveira?= Date: Wed, 10 Nov 2021 00:58:19 +0000 Subject: [PATCH 1/3] fix: confidence checking ui up to spec --- new-lamassu-admin/src/pages/Wallet/Wallet.js | 6 +- new-lamassu-admin/src/pages/Wallet/Wizard.js | 26 ++++++- .../src/pages/Wallet/WizardStep.js | 70 +++++++++++++++---- .../src/pages/Wallet/WizardStep.styles.js | 10 +++ new-lamassu-admin/src/pages/Wallet/helper.js | 1 + 5 files changed, 96 insertions(+), 17 deletions(-) diff --git a/new-lamassu-admin/src/pages/Wallet/Wallet.js b/new-lamassu-admin/src/pages/Wallet/Wallet.js index f9a3514f..386cc1a6 100644 --- a/new-lamassu-admin/src/pages/Wallet/Wallet.js +++ b/new-lamassu-admin/src/pages/Wallet/Wallet.js @@ -46,6 +46,7 @@ const GET_INFO = gql` } } ` +const LOCALE = 'locale' const Wallet = ({ name: SCREEN_KEY }) => { const [editingSchema, setEditingSchema] = useState(null) @@ -69,8 +70,10 @@ const Wallet = ({ name: SCREEN_KEY }) => { return saveConfig({ variables: { config, accounts } }) } - const config = data?.config && fromNamespace(SCREEN_KEY)(data.config) + const fiatCurrency = + data?.config && fromNamespace(LOCALE)(data.config).fiatCurrency + const config = data?.config && fromNamespace(SCREEN_KEY)(data.config) const accountsConfig = data?.accountsConfig const cryptoCurrencies = data?.cryptoCurrencies ?? [] const accounts = data?.accounts ?? [] @@ -135,6 +138,7 @@ const Wallet = ({ name: SCREEN_KEY }) => { save={save} error={error?.message} cryptoCurrencies={cryptoCurrencies} + fiatCurrency={fiatCurrency} userAccounts={data?.config?.accounts} accounts={accounts} accountsConfig={accountsConfig} diff --git a/new-lamassu-admin/src/pages/Wallet/Wizard.js b/new-lamassu-admin/src/pages/Wallet/Wizard.js index ea8a7c1a..237e278f 100644 --- a/new-lamassu-admin/src/pages/Wallet/Wizard.js +++ b/new-lamassu-admin/src/pages/Wallet/Wizard.js @@ -1,6 +1,7 @@ import { utils as coinUtils } from 'lamassu-coins' import * as R from 'ramda' import React, { useState } from 'react' +import * as Yup from 'yup' import Modal from 'src/components/Modal' import schema from 'src/pages/Services/schemas' @@ -9,7 +10,7 @@ import { toNamespace } from 'src/utils/config' import WizardSplash from './WizardSplash' import WizardStep from './WizardStep' -const LAST_STEP = 4 +const LAST_STEP = 5 const MODAL_WIDTH = 554 const contains = crypto => R.compose(R.contains(crypto), R.prop('cryptos')) @@ -34,7 +35,15 @@ const getItems = (accountsConfig, accounts, type, crypto) => { return { filled, unfilled } } -const Wizard = ({ coin, onClose, accountsConfig, accounts, save, error }) => { +const Wizard = ({ + coin, + onClose, + accountsConfig, + accounts, + fiatCurrency, + save, + error +}) => { const [{ step, config, accountsToSave }, setState] = useState({ step: 0, config: { active: true }, @@ -85,7 +94,16 @@ const Wizard = ({ coin, onClose, accountsConfig, accounts, save, error }) => { case 3: return { type: 'exchange', ...exchanges } case 4: - return { type: 'zeroConf', name: 'zero conf', ...zeroConfs } + return { + type: 'confidenceChecking', + name: 'confidence checking', + schema: Yup.object().shape({ + zeroConfLimit: Yup.number().required() + }), + ...zeroConfs + } + case 5: + return { type: 'zeroConfLimit', name: '0-conf limit', ...zeroConfs } default: return null } @@ -107,6 +125,8 @@ const Wizard = ({ coin, onClose, accountsConfig, accounts, save, error }) => { {step !== 0 && ( { const WizardStep = ({ type, + schema: stepSchema, + coin, name, step, error, lastStep, onContinue, + fiatCurrency, filled, unfilled, getValue @@ -86,21 +91,60 @@ const WizardStep = ({ } return ( <> - {startCase(type)} - + {startCase(displayName)} +

- Select a {displayName} or set up a new one + {step < 4 + ? `Select a ${displayName} or set up a new one` + : `Select ${displayName} for ${coin}`}

- { - dispatch({ type: 'select', selected: it }) - }} - labelClassName={classes.radioLabel} - radioClassName={classes.radio} - /> + {step !== 5 && ( + { + dispatch({ type: 'select', selected: it }) + }} + labelClassName={classes.radioLabel} + radioClassName={classes.radio} + /> + )} + {step === 5 && ( + + {({ values, setFieldValue }) => ( +
+
+ { + dispatch({ + type: 'select', + selected: event.target.value + }) + setFieldValue(event.target.id, event.target.value) + }} + className={classes.zeroConfLimit} + /> + {fiatCurrency} +
+
+ )} +
+ )}
{!R.isEmpty(unfilled) && !R.isNil(unfilled) && ( { }, { name: 'zeroConfLimit', + header: '0-conf Limit', size: 'sm', stripe: true, view: (it, row) => From 293fc06d4b039446917aa5114d1414c824f0d592 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Oliveira?= Date: Thu, 11 Nov 2021 00:41:04 +0000 Subject: [PATCH 2/3] fix: zero conf limit field value and ui font size --- new-lamassu-admin/src/pages/Wallet/Wizard.js | 3 +-- .../src/pages/Wallet/WizardStep.styles.js | 12 ++++++++++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/new-lamassu-admin/src/pages/Wallet/Wizard.js b/new-lamassu-admin/src/pages/Wallet/Wizard.js index 237e278f..44a13191 100644 --- a/new-lamassu-admin/src/pages/Wallet/Wizard.js +++ b/new-lamassu-admin/src/pages/Wallet/Wizard.js @@ -72,7 +72,6 @@ const Wizard = ({ ) const configToSave = { ...newConfig, - zeroConfLimit: 0, cryptoUnits: defaultCryptoUnit } return save(toNamespace(coin.code, configToSave), newAccounts) @@ -95,7 +94,7 @@ const Wizard = ({ return { type: 'exchange', ...exchanges } case 4: return { - type: 'confidenceChecking', + type: 'zeroConf', name: 'confidence checking', schema: Yup.object().shape({ zeroConfLimit: Yup.number().required() diff --git a/new-lamassu-admin/src/pages/Wallet/WizardStep.styles.js b/new-lamassu-admin/src/pages/Wallet/WizardStep.styles.js index 6f957be8..5ff78ac9 100644 --- a/new-lamassu-admin/src/pages/Wallet/WizardStep.styles.js +++ b/new-lamassu-admin/src/pages/Wallet/WizardStep.styles.js @@ -1,4 +1,4 @@ -import { errorColor } from 'src/styling/variables' +import { errorColor, fontSize1, fontPrimary } from 'src/styling/variables' const LABEL_WIDTH = 150 @@ -47,6 +47,14 @@ export default { alignItems: 'center' }, zeroConfLimit: { - margin: 10 + marginRight: 5, + '& > div': { + fontSize: fontSize1, + fontFamily: fontPrimary, + fontWeight: 300, + '& > input': { + padding: [[6, 0, 2]] + } + } } } From a83df77a259d5ca9e29eb3c6b7107fe585ff1fbf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Oliveira?= Date: Thu, 11 Nov 2021 23:05:51 +0000 Subject: [PATCH 3/3] fix: add default values for zeroConf and zeroConfLimit on the initial setup --- .../src/pages/Wizard/components/Wallet/Blockcypher.js | 2 +- .../src/pages/Wizard/components/Wallet/ChooseCoin.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/new-lamassu-admin/src/pages/Wizard/components/Wallet/Blockcypher.js b/new-lamassu-admin/src/pages/Wizard/components/Wallet/Blockcypher.js index 362671d9..1a334622 100644 --- a/new-lamassu-admin/src/pages/Wizard/components/Wallet/Blockcypher.js +++ b/new-lamassu-admin/src/pages/Wizard/components/Wallet/Blockcypher.js @@ -86,7 +86,7 @@ const Blockcypher = ({ addData }) => { {selected === 'disable' && ( diff --git a/new-lamassu-admin/src/pages/Wizard/components/Wallet/ChooseCoin.js b/new-lamassu-admin/src/pages/Wizard/components/Wallet/ChooseCoin.js index d434720e..734c9a95 100644 --- a/new-lamassu-admin/src/pages/Wizard/components/Wallet/ChooseCoin.js +++ b/new-lamassu-admin/src/pages/Wizard/components/Wallet/ChooseCoin.js @@ -38,7 +38,7 @@ const ChooseCoin = ({ addData }) => { if (!schema.isValidSync(it)) return setError(true) if (it.coin !== 'BTC') { - return addData({ coin: it.coin, zeroConf: 'all-zero-conf' }) + return addData({ coin: it.coin, zeroConf: 'none', zeroConfLimit: 0 }) } addData(it)