feat: add recycler steps to maintenance wizard

This commit is contained in:
siiky 2023-10-19 16:40:52 +01:00
parent 3be343bc26
commit 33da2ea5e3

View file

@ -108,26 +108,51 @@ const useStyles = makeStyles(styles)
const CASHBOX_STEP = 1 const CASHBOX_STEP = 1
const isCashboxStep = step => step === CASHBOX_STEP
const isCassetteStep = (step, numberOfCassettes) =>
step > 1 && step <= numberOfCassettes + 1
const isRecyclerStep = (step, numberOfCassettes, numberOfRecyclers) =>
step > numberOfCassettes + 1 &&
step <= numberOfCassettes + numberOfRecyclers + 1
const cassetesArtworks = (step, numberOfCassettes, numberOfRecyclers) => { const cassetesArtworks = (step, numberOfCassettes, numberOfRecyclers) => {
const cassetteStepsStart = CASHBOX_STEP + 1 const cassetteStepsStart = CASHBOX_STEP + 1
return [ return isCassetteStep(step, numberOfCassettes)
? [
[cassetteOne], [cassetteOne],
[cassetteOne, cassetteTwo], [cassetteOne, cassetteTwo],
[tejo3CassetteOne, tejo3CassetteTwo, tejo3CassetteThree], [tejo3CassetteOne, tejo3CassetteTwo, tejo3CassetteThree],
[tejo4CassetteOne, tejo4CassetteTwo, tejo4CassetteThree, tejo4CassetteFour] [
][numberOfCassettes - cassetteStepsStart + 1][step - cassetteStepsStart] tejo4CassetteOne,
tejo4CassetteTwo,
tejo4CassetteThree,
tejo4CassetteFour
]
][numberOfCassettes - 1][step - cassetteStepsStart]
: [
/* TODO: Recycler artwork */
[cassetteOne],
[cassetteOne, cassetteTwo],
[tejo3CassetteOne, tejo3CassetteTwo, tejo3CassetteThree],
[
tejo4CassetteOne,
tejo4CassetteTwo,
tejo4CassetteThree,
tejo4CassetteFour
]
][numberOfRecyclers - 1][step - cassetteStepsStart]
} }
const getCashUnitFieldName = (step, numberOfCassettes, numberOfRecyclers) => { const getCashUnitFieldName = (step, numberOfCassettes, numberOfRecyclers) => {
if (step === CASHBOX_STEP) return { name: 'cashbox', category: 'cashbox' } if (isCashboxStep(step)) return { name: 'cashbox', category: 'cashbox' }
const cassetteStepsStart = CASHBOX_STEP + 1 const cassetteStepsStart = CASHBOX_STEP + 1
if (step < cassetteStepsStart + numberOfCassettes) if (isCassetteStep(step, numberOfCassettes))
return { return {
name: `cassette${step - cassetteStepsStart + 1}`, name: `cassette${step - cassetteStepsStart + 1}`,
category: 'cassette' category: 'cassette'
} }
const recyclerStepsStart = CASHBOX_STEP + numberOfCassettes + 1 const recyclerStepsStart = CASHBOX_STEP + numberOfCassettes + 1
if (step < recyclerStepsStart + numberOfRecyclers) if (isRecyclerStep(step, numberOfCassettes, numberOfRecyclers))
return { return {
name: `recycler${Math.ceil(step - recyclerStepsStart + 1)}`, name: `recycler${Math.ceil(step - recyclerStepsStart + 1)}`,
category: 'recycler' category: 'recycler'
@ -180,7 +205,7 @@ const WizardStep = ({
<Stepper steps={steps.length} currentStep={step} /> <Stepper steps={steps.length} currentStep={step} />
</div> </div>
{step === 1 && ( {isCashboxStep(step) && (
<Formik <Formik
validateOnBlur={false} validateOnBlur={false}
validateOnChange={false} validateOnChange={false}
@ -194,7 +219,7 @@ const WizardStep = ({
className={classnames(classes.horizontalAlign, classes.form)}> className={classnames(classes.horizontalAlign, classes.form)}>
<img <img
className={classes.stepImage} className={classes.stepImage}
alt="cassette" alt={cashUnitCategory}
src={cashbox}></img> src={cashbox}></img>
<div className={classes.formWrapper}> <div className={classes.formWrapper}>
<div <div
@ -248,7 +273,7 @@ const WizardStep = ({
</Formik> </Formik>
)} )}
{step > 1 && ( {!isCashboxStep(step) && (
<Formik <Formik
validateOnBlur={false} validateOnBlur={false}
validateOnChange={false} validateOnChange={false}
@ -262,7 +287,7 @@ const WizardStep = ({
className={classnames(classes.horizontalAlign, classes.form)}> className={classnames(classes.horizontalAlign, classes.form)}>
<img <img
className={classes.stepImage} className={classes.stepImage}
alt="cassette" alt={cashUnitCategory}
src={cassetesArtworks( src={cassetesArtworks(
step, step,
numberOfCassettes, numberOfCassettes,
@ -289,9 +314,9 @@ const WizardStep = ({
className={classes.cassetteFormTitleContent} className={classes.cassetteFormTitleContent}
noMargin> noMargin>
{startCase(cashUnitField)} ( {startCase(cashUnitField)} (
{R.includes('cassette', cashUnitField) {cashUnitCategory === 'cassette'
? `dispenser` ? `dispenser`
: R.includes('recycler', cashUnitField) : cashUnitCategory === 'recycler'
? `recycler` ? `recycler`
: ``} : ``}
) )