fix: validate number on the reducer

This commit is contained in:
José Oliveira 2021-03-29 14:20:49 +01:00
parent 1595f4f60e
commit f20ccbee8b
2 changed files with 11 additions and 8 deletions

View file

@ -7,7 +7,6 @@ import { Info1, Info2, Info3 } from 'src/components/typography/index'
// import { ReactComponent as TxInIcon } from 'src/styling/icons/direction/cash-in.svg' // import { ReactComponent as TxInIcon } from 'src/styling/icons/direction/cash-in.svg'
import { ReactComponent as TxOutIcon } from 'src/styling/icons/direction/cash-out.svg' import { ReactComponent as TxOutIcon } from 'src/styling/icons/direction/cash-out.svg'
import { fromNamespace } from 'src/utils/config' import { fromNamespace } from 'src/utils/config'
import { isValidNumber } from 'src/utils/number'
import styles from './CashCassettesFooter.styles.js' import styles from './CashCassettesFooter.styles.js'
const useStyles = makeStyles(styles) const useStyles = makeStyles(styles)
@ -26,10 +25,15 @@ const CashCassettesFooter = ({
const classes = useStyles() const classes = useStyles()
const cashout = config && fromNamespace('cashOut')(config) const cashout = config && fromNamespace('cashOut')(config)
const getCashoutSettings = id => fromNamespace(id)(cashout) const getCashoutSettings = id => fromNamespace(id)(cashout)
const reducerFn = (acc, { cassette1, cassette2, id }) => [ const reducerFn = (acc, { cassette1, cassette2, id }) => {
(acc[0] += cassette1 * getCashoutSettings(id).top), const topDenomination = getCashoutSettings(id).top ?? 0
(acc[1] += cassette2 * getCashoutSettings(id).bottom) const bottomDenomination = getCashoutSettings(id).bottom ?? 0
] return [
(acc[0] += cassette1 * topDenomination),
(acc[1] += cassette2 * bottomDenomination)
]
}
const totalInCassettes = R.sum(R.reduce(reducerFn, [0, 0], machines)) const totalInCassettes = R.sum(R.reduce(reducerFn, [0, 0], machines))
/* const totalInCashBox = R.sum( /* const totalInCashBox = R.sum(
@ -61,8 +65,7 @@ const CashCassettesFooter = ({
<TxOutIcon className={classes.icon} /> <TxOutIcon className={classes.icon} />
<Info2 className={classes.iconLabel}>Cash-out:</Info2> <Info2 className={classes.iconLabel}>Cash-out:</Info2>
<Info1 className={classes.valueDisplay}> <Info1 className={classes.valueDisplay}>
{isValidNumber(totalInCassettes) ? totalInCassettes : 0}{' '} {totalInCassettes} {currencyCode}
{currencyCode}
</Info1> </Info1>
</div> </div>
{/* <div className={classes.flex}> {/* <div className={classes.flex}>

View file

@ -4,4 +4,4 @@ const isValidNumber = R.both(R.is(Number), R.complement(R.equals(NaN)))
const transformNumber = value => (isValidNumber(value) ? value : null) const transformNumber = value => (isValidNumber(value) ? value : null)
export { transformNumber, isValidNumber } export { transformNumber }