refactor: abstract amount of cassettes from the cassette wizard

This commit is contained in:
Sérgio Salgado 2021-12-07 00:05:44 +00:00
parent f096e3c165
commit e72fb77070
3 changed files with 36 additions and 19 deletions

View file

@ -12,6 +12,8 @@ const MODAL_WIDTH = 554
const MODAL_HEIGHT = 520
const CASHBOX_DEFAULT_CAPACITY = 500
const CASSETTE_FIELDS = ['cassette1', 'cassette2', 'cassette3', 'cassette4']
const Wizard = ({ machine, cashoutSettings, locale, onClose, save, error }) => {
const [{ step, config }, setState] = useState({
step: 0,
@ -26,6 +28,17 @@ const Wizard = ({ machine, cashoutSettings, locale, onClose, save, error }) => {
const title = `Update counts`
const isLastStep = step === LAST_STEP
const buildCassetteObj = cassetteInput => {
return R.reduce(
(acc, value) => {
acc[value] = defaultToZero(cassetteInput[value])
return acc
},
{},
CASSETTE_FIELDS
)
}
const onContinue = it => {
if (isLastStep) {
const wasCashboxEmptied = [
@ -34,12 +47,9 @@ const Wizard = ({ machine, cashoutSettings, locale, onClose, save, error }) => {
].includes('YES')
const cashbox = wasCashboxEmptied ? 0 : machine?.cashbox
const cassettes = buildCassetteObj(it)
const { cassette1, cassette2, cassette3, cassette4 } = R.map(
defaultToZero,
it
)
save(machine.id, cashbox, cassette1, cassette2, cassette3, cassette4)
save(machine.id, cashbox, cassettes)
return onClose()
}
@ -66,6 +76,18 @@ const Wizard = ({ machine, cashoutSettings, locale, onClose, save, error }) => {
}))
)
const makeInitialValues = () =>
!R.isEmpty(cashoutSettings)
? R.reduce(
(acc, value) => {
acc[`cassette${value}`] = ''
return acc
},
{},
R.range(1, numberOfCassettes + 1)
)
: {}
const steps = R.prepend(
{
type: 'cashbox',
@ -98,6 +120,7 @@ const Wizard = ({ machine, cashoutSettings, locale, onClose, save, error }) => {
steps={steps}
fiatCurrency={locale.fiatCurrency}
onContinue={onContinue}
initialValues={makeInitialValues()}
/>
)}
</Modal>