fix: cash-out fields now accepts only positive values

fix: add max values for fields on Cashout, Commissions, Notifications

fix: disable adding on the Locales overrides when all of the machines
are already overriden
This commit is contained in:
Liordino Neto 2020-08-03 18:47:34 -03:00 committed by Josh Harvey
parent 0c3ae801d0
commit 3c6f547349
6 changed files with 37 additions and 8 deletions

View file

@ -2,10 +2,20 @@ import * as Yup from 'yup'
import { NumberInput } from 'src/components/inputs/formik' import { NumberInput } from 'src/components/inputs/formik'
const currencyMax = 999999999
const DenominationsSchema = Yup.object().shape({ const DenominationsSchema = Yup.object().shape({
top: Yup.number().required('Required'), top: Yup.number()
bottom: Yup.number().required('Required'), .required('Required')
zeroConfLimit: Yup.number().required('Required') .min(0)
.max(currencyMax),
bottom: Yup.number()
.required('Required')
.min(0)
.max(currencyMax),
zeroConfLimit: Yup.number()
.required('Required')
.min(0)
.max(currencyMax)
}) })
const getElements = (machines, { fiatCurrency } = {}) => { const getElements = (machines, { fiatCurrency } = {}) => {

View file

@ -200,20 +200,24 @@ const overrides = (auxData, currency, auxElements) => {
return getOverridesFields(getData, currency, auxElements) return getOverridesFields(getData, currency, auxElements)
} }
const percentMax = 100
const currencyMax = 9999999
const schema = Yup.object().shape({ const schema = Yup.object().shape({
cashIn: Yup.number() cashIn: Yup.number()
.min(0) .min(0)
.max(100) .max(percentMax)
.required('Required'), .required('Required'),
cashOut: Yup.number() cashOut: Yup.number()
.min(0) .min(0)
.max(100) .max(percentMax)
.required('Required'), .required('Required'),
fixedFee: Yup.number() fixedFee: Yup.number()
.min(0) .min(0)
.max(currencyMax)
.required('Required'), .required('Required'),
minimumTx: Yup.number() minimumTx: Yup.number()
.min(0) .min(0)
.max(currencyMax)
.required('Required') .required('Required')
}) })
@ -222,17 +226,19 @@ const OverridesSchema = Yup.object().shape({
cryptoCurrencies: Yup.array().required('Required'), cryptoCurrencies: Yup.array().required('Required'),
cashIn: Yup.number() cashIn: Yup.number()
.min(0) .min(0)
.max(100) .max(percentMax)
.required('Required'), .required('Required'),
cashOut: Yup.number() cashOut: Yup.number()
.min(0) .min(0)
.max(100) .max(percentMax)
.required('Required'), .required('Required'),
fixedFee: Yup.number() fixedFee: Yup.number()
.min(0) .min(0)
.max(currencyMax)
.required('Required'), .required('Required'),
minimumTx: Yup.number() minimumTx: Yup.number()
.min(0) .min(0)
.max(currencyMax)
.required('Required') .required('Required')
}) })

View file

@ -160,6 +160,10 @@ const Locales = ({ name: SCREEN_KEY }) => {
validationSchema={OverridesSchema} validationSchema={OverridesSchema}
data={localeOverrides ?? []} data={localeOverrides ?? []}
elements={overrides(data, localeOverrides)} elements={overrides(data, localeOverrides)}
disableAdd={R.compose(R.isEmpty, R.difference)(
data?.machines.map(m => m.deviceId) ?? [],
localeOverrides?.map(o => o.machine) ?? []
)}
setEditing={onEditingOverrides} setEditing={onEditingOverrides}
forceDisable={isEditingDefault} forceDisable={isEditingDefault}
/> />

View file

@ -13,6 +13,8 @@ const SingleFieldEditableNumber = ({
title, title,
label, label,
width = 80, width = 80,
min = 0,
max = 9999999,
name, name,
section, section,
className className
@ -42,7 +44,8 @@ const SingleFieldEditableNumber = ({
const schema = Yup.object().shape({ const schema = Yup.object().shape({
[name]: Yup.number() [name]: Yup.number()
.integer() .integer()
.min(0) .min(min)
.max(max)
.required() .required()
}) })

View file

@ -51,15 +51,18 @@ const CryptoBalanceOverrides = ({ section }) => {
[HIGH_BALANCE_KEY]: '' [HIGH_BALANCE_KEY]: ''
} }
const currencyMax = 9999999
const validationSchema = Yup.object().shape({ const validationSchema = Yup.object().shape({
[CRYPTOCURRENCY_KEY]: Yup.string().required(), [CRYPTOCURRENCY_KEY]: Yup.string().required(),
[LOW_BALANCE_KEY]: Yup.number() [LOW_BALANCE_KEY]: Yup.number()
.integer() .integer()
.min(0) .min(0)
.max(currencyMax)
.required(), .required(),
[HIGH_BALANCE_KEY]: Yup.number() [HIGH_BALANCE_KEY]: Yup.number()
.integer() .integer()
.min(0) .min(0)
.max(currencyMax)
.required() .required()
}) })

View file

@ -38,15 +38,18 @@ const FiatBalanceOverrides = ({ section }) => {
[CASSETTE_2_KEY]: '' [CASSETTE_2_KEY]: ''
} }
const notesMax = 9999999
const validationSchema = Yup.object().shape({ const validationSchema = Yup.object().shape({
[MACHINE_KEY]: Yup.string().required(), [MACHINE_KEY]: Yup.string().required(),
[CASSETTE_1_KEY]: Yup.number() [CASSETTE_1_KEY]: Yup.number()
.integer() .integer()
.min(0) .min(0)
.max(notesMax)
.required(), .required(),
[CASSETTE_2_KEY]: Yup.number() [CASSETTE_2_KEY]: Yup.number()
.integer() .integer()
.min(0) .min(0)
.max(notesMax)
.required() .required()
}) })