Skip to content

Commit 4ffd5f9

Browse files
committed
fix(carbon): introduce validateOnMount
1 parent 7d68642 commit 4ffd5f9

File tree

8 files changed

+16
-14
lines changed

8 files changed

+16
-14
lines changed

packages/carbon-component-mapper/src/files/date-picker.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ import { DatePicker as CarbonDatePicker, DatePickerInput } from 'carbon-componen
77
import prepareProps from '../common/prepare-props';
88

99
const DatePicker = (props) => {
10-
const { input, datePickerType, meta, DatePickerProps, ...rest } = useFieldApi(prepareProps(props));
10+
const { input, datePickerType, meta, DatePickerProps, validateOnMount, ...rest } = useFieldApi(prepareProps(props));
1111

12-
const invalid = meta.touched && meta.error;
12+
const invalid = (meta.touched || validateOnMount) && meta.error;
1313

1414
return (
1515
<CarbonDatePicker {...input} datePickerType={datePickerType} {...DatePickerProps}>

packages/carbon-component-mapper/src/files/field-array.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,8 @@ const FieldArray = (props) => {
6969
labelText,
7070
buttonLabels,
7171
noItemsMessage,
72-
meta
72+
meta,
73+
validateOnMount
7374
} = useFieldApi(prepareProps(props));
7475

7576
const buttonLabelsFinal = {
@@ -78,7 +79,7 @@ const FieldArray = (props) => {
7879
...buttonLabels
7980
};
8081

81-
const invalid = meta.touched && !Array.isArray(meta.error) && meta.error;
82+
const invalid = (meta.touched || validateOnMount) && !Array.isArray(meta.error) && meta.error;
8283

8384
return (
8485
<FormGroup

packages/carbon-component-mapper/src/files/form-group.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ export interface FormGroupInternalProps {
88
label?: ReactNode;
99
labelText?: ReactNode;
1010
description?: ReactNode;
11+
validateOnMount?: boolean;
1112
}
1213

1314
export type FormGroupProps = FormGroupInternalProps & UseFieldApiComponentConfig;

packages/carbon-component-mapper/src/files/select.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ ClearedSelect.propTypes = {
163163
};
164164

165165
const Select = (props) => {
166-
const { isMulti, isSearchable, loadOptions, input, meta, ...rest } = useFieldApi(prepareProps(props));
166+
const { isMulti, isSearchable, loadOptions, input, meta, validateOnMount, ...rest } = useFieldApi(prepareProps(props));
167167

168168
const [loadOptionsChangeCounter, setCounter] = useState(0);
169169

@@ -176,7 +176,7 @@ const Select = (props) => {
176176

177177
const Component = isMulti && isSearchable ? ClearedMultiSelectFilterable : isMulti ? ClearedMultiSelect : ClearedSelect;
178178

179-
const invalidText = (meta.touched && meta.error) || '';
179+
const invalidText = ((meta.touched || validateOnMount) && meta.error) || '';
180180

181181
return (
182182
<DataDrivenSelect

packages/carbon-component-mapper/src/files/slider.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ import { Slider as CarbonSlider } from 'carbon-components-react';
77
import prepareProps from '../common/prepare-props';
88

99
const Slider = (props) => {
10-
const { input, meta, isRequired, ...rest } = useFieldApi(prepareProps(props));
10+
const { input, meta, isRequired, validateOnMount, ...rest } = useFieldApi(prepareProps(props));
1111

12-
const invalid = meta.touched && meta.error;
12+
const invalid = (meta.touched || validateOnMount) && meta.error;
1313

1414
return (
1515
<CarbonSlider

packages/carbon-component-mapper/src/files/text-field.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ import { TextInput } from 'carbon-components-react';
77
import prepareProps from '../common/prepare-props';
88

99
const TextField = (props) => {
10-
const { input, meta, ...rest } = useFieldApi(prepareProps(props));
10+
const { input, meta, validateOnMount, ...rest } = useFieldApi(prepareProps(props));
1111

12-
const invalid = meta.touched && meta.error;
12+
const invalid = (meta.touched || validateOnMount) && meta.error;
1313

1414
return <TextInput {...input} key={input.name} id={input.name} invalid={Boolean(invalid)} invalidText={invalid || ''} {...rest} />;
1515
};

packages/carbon-component-mapper/src/files/textarea.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ import { TextArea } from 'carbon-components-react';
77
import prepareProps from '../common/prepare-props';
88

99
const Textarea = (props) => {
10-
const { input, meta, ...rest } = useFieldApi(prepareProps(props));
10+
const { input, meta, validateOnMount, ...rest } = useFieldApi(prepareProps(props));
1111

12-
const invalid = meta.touched && meta.error;
12+
const invalid = (meta.touched || validateOnMount) && meta.error;
1313

1414
return <TextArea {...input} key={input.name} id={input.name} invalid={Boolean(invalid)} invalidText={invalid || ''} {...rest} />;
1515
};

packages/carbon-component-mapper/src/files/time-picker.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ import { TimePicker as CarbonTimePicker, TimePickerSelect, SelectItem } from 'ca
77
import prepareProps from '../common/prepare-props';
88

99
const TimePicker = (props) => {
10-
const { input, meta, twelveHoursFormat, timezones, ...rest } = useFieldApi(prepareProps(props));
10+
const { input, meta, twelveHoursFormat, timezones, validateOnMount, ...rest } = useFieldApi(prepareProps(props));
1111

12-
const invalid = meta.touched && meta.error;
12+
const invalid = (meta.touched || validateOnMount) && meta.error;
1313

1414
return (
1515
<CarbonTimePicker {...input} key={input.name} id={input.name} invalid={Boolean(invalid)} invalidText={invalid || ''} {...rest}>

0 commit comments

Comments
 (0)