From 5c5362137a31eba1e196ec0314b9900724d0c177 Mon Sep 17 00:00:00 2001 From: djamaile Date: Mon, 21 Feb 2022 16:30:04 +0100 Subject: [PATCH] refactor: respond to comments Signed-off-by: djamaile --- .../MultistepJsonForm/MultistepJsonForm.tsx | 37 ++++++++----------- 1 file changed, 15 insertions(+), 22 deletions(-) diff --git a/plugins/scaffolder/src/components/MultistepJsonForm/MultistepJsonForm.tsx b/plugins/scaffolder/src/components/MultistepJsonForm/MultistepJsonForm.tsx index 8936ab7994..6e2ac32c89 100644 --- a/plugins/scaffolder/src/components/MultistepJsonForm/MultistepJsonForm.tsx +++ b/plugins/scaffolder/src/components/MultistepJsonForm/MultistepJsonForm.tsx @@ -108,15 +108,8 @@ export function getReviewData(formData: Record, steps: Step[]) { return reviewData; } -export const MultistepJsonForm = ({ - steps, - formData, - onChange, - onReset, - onFinish, - fields, - widgets, -}: Props) => { +export const MultistepJsonForm = (props: Props) => { + const { formData, onChange, onReset, onFinish, fields, widgets } = props; const [activeStep, setActiveStep] = useState(0); const [disableButtons, setDisableButtons] = useState(false); const errorApi = useApi(errorApiRef); @@ -139,21 +132,21 @@ export const MultistepJsonForm = ({ ); // remove the feature flag property key from required if they are not active - if (Array.isArray(schema.required) && removedPropertyKeys.length > 0) { - for (const property of removedPropertyKeys) { - const index = schema.required.findIndex(r => r === property); - if (index > -1) { - schema.required.splice(index, 1); - } - } - } + schema.required = Array.isArray(schema.required) + ? schema.required?.filter( + r => !removedPropertyKeys.includes(r as string), + ) + : schema.required; } return schema; }; - const updatedSteps = steps.filter(s => { - const featureFlag = s.schema[featureFlagKey] as string; - if (featureFlag && !featureFlagApi.isActive(featureFlag)) { + const steps = props.steps.filter(s => { + const featureFlag = s.schema[featureFlagKey]; + if ( + typeof featureFlag === 'string' && + !featureFlagApi.isActive(featureFlag) + ) { return null; } // filter out properties accordingly to the feature flag settings; @@ -166,7 +159,7 @@ export const MultistepJsonForm = ({ onReset(); }; const handleNext = () => { - setActiveStep(Math.min(activeStep + 1, updatedSteps.length)); + setActiveStep(Math.min(activeStep + 1, steps.length)); }; const handleBack = () => setActiveStep(Math.max(activeStep - 1, 0)); const handleCreate = async () => { @@ -182,7 +175,7 @@ export const MultistepJsonForm = ({ return ( <> - {updatedSteps.map(({ title, schema, ...formProps }, index) => { + {steps.map(({ title, schema, ...formProps }, index) => { return (