Signed-off-by: bnechyporenko <bnechyporenko@bol.com>
This commit is contained in:
bnechyporenko
2024-02-27 08:25:36 +01:00
committed by blam
parent 4f25522da9
commit 1748756611
@@ -37,8 +37,9 @@ import {
type FormValidation,
} from './createAsyncValidators';
import { ReviewState, type ReviewStateProps } from '../ReviewState';
import { useTemplateSchema, useFormDataFromQuery } from '../../hooks';
import { useTemplateSchema } from '../../hooks/useTemplateSchema';
import validator from '@rjsf/validator-ajv8';
import { useFormDataFromQuery } from '../../hooks';
import { useTransformSchemaToProps } from '../../hooks/useTransformSchemaToProps';
import { hasErrors } from './utils';
import * as FieldOverrides from './FieldOverrides';
@@ -111,18 +112,6 @@ export const Stepper = (stepperProps: StepperProps) => {
const [errors, setErrors] = useState<undefined | FormValidation>();
const styles = useStyles();
const templateName =
typeof formState.name === 'string'
? formState.name
: props.templateName ?? 'unknown';
const backLabel =
presentation?.buttonLabels?.backButtonText ?? backButtonText;
const createLabel =
presentation?.buttonLabels?.createButtonText ?? createButtonText;
const reviewLabel =
presentation?.buttonLabels?.reviewButtonText ?? reviewButtonText;
const extensions = useMemo(() => {
return Object.fromEntries(
props.extensions.map(({ name, component }) => [name, component]),
@@ -158,8 +147,10 @@ export const Stepper = (stepperProps: StepperProps) => {
const handleCreate = useCallback(() => {
props.onCreate(formState);
analytics.captureEvent('click', `[${templateName}]: ${createLabel}`);
}, [props, formState, analytics, templateName, createLabel]);
const name =
typeof formState.name === 'string' ? formState.name : undefined;
analytics.captureEvent('create', name ?? props.templateName ?? 'unknown');
}, [props, formState, analytics]);
const currentStep = useTransformSchemaToProps(steps[activeStep], { layouts });
@@ -183,16 +174,20 @@ export const Stepper = (stepperProps: StepperProps) => {
setErrors(undefined);
setActiveStep(prevActiveStep => {
const stepNum = prevActiveStep + 1;
analytics.captureEvent(
'click',
`[${templateName}]: Next Step (${stepNum})`,
);
analytics.captureEvent('click', `Next Step (${stepNum})`);
return stepNum;
});
}
setFormState(current => ({ ...current, ...formData }));
};
const backLabel =
presentation?.buttonLabels?.backButtonText ?? backButtonText;
const createLabel =
presentation?.buttonLabels?.createButtonText ?? createButtonText;
const reviewLabel =
presentation?.buttonLabels?.reviewButtonText ?? reviewButtonText;
return (
<>
{isValidating && <LinearProgress variant="indeterminate" />}
@@ -219,7 +214,7 @@ export const Stepper = (stepperProps: StepperProps) => {
);
})}
<MuiStep>
<MuiStepLabel>${reviewLabel}</MuiStepLabel>
<MuiStepLabel>Review</MuiStepLabel>
</MuiStep>
</MuiStepper>
<div className={styles.formWrapper}>
@@ -279,7 +274,7 @@ export const Stepper = (stepperProps: StepperProps) => {
className={styles.backButton}
disabled={activeStep < 1}
>
{backLabel}
Back
</Button>
<Button
variant="contained"