@patternfly/react-core 4.244.0 → 4.244.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/esm/components/DatePicker/DatePicker.d.ts.map +1 -1
  3. package/dist/esm/components/DatePicker/DatePicker.js +4 -0
  4. package/dist/esm/components/DatePicker/DatePicker.js.map +1 -1
  5. package/dist/esm/components/Select/Select.d.ts +2 -0
  6. package/dist/esm/components/Select/Select.d.ts.map +1 -1
  7. package/dist/esm/components/Select/Select.js +4 -3
  8. package/dist/esm/components/Select/Select.js.map +1 -1
  9. package/dist/esm/components/Select/SelectToggle.d.ts +2 -0
  10. package/dist/esm/components/Select/SelectToggle.d.ts.map +1 -1
  11. package/dist/esm/components/Select/SelectToggle.js +3 -5
  12. package/dist/esm/components/Select/SelectToggle.js.map +1 -1
  13. package/dist/js/components/DatePicker/DatePicker.d.ts.map +1 -1
  14. package/dist/js/components/DatePicker/DatePicker.js +4 -0
  15. package/dist/js/components/DatePicker/DatePicker.js.map +1 -1
  16. package/dist/js/components/Select/Select.d.ts +2 -0
  17. package/dist/js/components/Select/Select.d.ts.map +1 -1
  18. package/dist/js/components/Select/Select.js +4 -3
  19. package/dist/js/components/Select/Select.js.map +1 -1
  20. package/dist/js/components/Select/SelectToggle.d.ts +2 -0
  21. package/dist/js/components/Select/SelectToggle.d.ts.map +1 -1
  22. package/dist/js/components/Select/SelectToggle.js +3 -5
  23. package/dist/js/components/Select/SelectToggle.js.map +1 -1
  24. package/dist/umd/react-core.min.css +3475 -3475
  25. package/dist/umd/react-core.min.js +1 -1
  26. package/package.json +2 -2
  27. package/src/components/DatePicker/DatePicker.tsx +4 -0
  28. package/src/components/DatePicker/__tests__/DatePicker.test.tsx +21 -0
  29. package/src/components/Select/Select.tsx +5 -0
  30. package/src/components/Select/SelectToggle.tsx +5 -4
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@patternfly/react-core",
3
- "version": "4.244.0",
3
+ "version": "4.244.1",
4
4
  "description": "This library provides a set of common React components for use with the PatternFly reference implementation.",
5
5
  "main": "dist/js/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -70,5 +70,5 @@
70
70
  "react": "^16.8 || ^17 || ^18",
71
71
  "react-dom": "^16.8 || ^17 || ^18"
72
72
  },
73
- "gitHead": "38e7a38cfcbb11b376302e90c1ac9df3a3f00711"
73
+ "gitHead": "a66b0277f021bed9693f19f2ee65d11193305e9d"
74
74
  }
@@ -127,6 +127,10 @@ const DatePickerBase = (
127
127
 
128
128
  React.useEffect(() => {
129
129
  setPristine(!value);
130
+ const newValueDate = dateParse(value);
131
+ if (errorText && isValidDate(newValueDate)) {
132
+ setError(newValueDate);
133
+ }
130
134
  }, [value]);
131
135
 
132
136
  const setError = (date: Date) => {
@@ -24,6 +24,27 @@ test('Date picker with multiple validators does not show invalid icon on valid i
24
24
  await user.click(screen.getByRole('textbox'));
25
25
 
26
26
  await user.click(document.body);
27
+ expect(screen.getByRole('textbox')).not.toBeInvalid();
28
+ });
29
+
30
+ test('Error state can be cleared from outside', async () => {
31
+ const rangeValidator = (date: Date) => {
32
+ if (date < new Date('2020-03-17')) {
33
+ return 'error';
34
+ }
35
+ return '';
36
+ };
37
+
38
+ const user = userEvent.setup();
39
+
40
+ const { rerender } = render(<DatePicker value="2020-03-17" validators={[rangeValidator]} />);
41
+
42
+ await user.clear(screen.getByRole('textbox'));
43
+ await user.type(screen.getByRole('textbox'), '2020-03-16');
44
+
45
+ await user.click(document.body);
46
+
47
+ rerender(<DatePicker value="2020-03-18" validators={[rangeValidator]} />);
27
48
 
28
49
  expect(screen.getByRole('textbox')).not.toBeInvalid();
29
50
  });
@@ -143,6 +143,8 @@ export interface SelectProps
143
143
  maxHeight?: string | number;
144
144
  /** Icon element to render inside the select toggle */
145
145
  toggleIcon?: React.ReactElement;
146
+ /** Custom icon for the dropdown replacing the CaretDownIcon */
147
+ toggleIndicator?: React.ReactElement;
146
148
  /** Custom content to render in the select menu. If this prop is defined, the variant prop will be ignored and the select will render with a single select toggle */
147
149
  customContent?: React.ReactNode;
148
150
  /** Flag indicating if select should have an inline text input for filtering */
@@ -239,6 +241,7 @@ export class Select extends React.Component<SelectProps & OUIAProps, SelectState
239
241
  onClear: () => undefined as void,
240
242
  onCreateOption: () => undefined as void,
241
243
  toggleIcon: null as React.ReactElement,
244
+ toggleIndicator: null as React.ReactElement,
242
245
  onFilter: null,
243
246
  onTypeaheadInputChanged: null,
244
247
  customContent: null,
@@ -983,6 +986,7 @@ export class Select extends React.Component<SelectProps & OUIAProps, SelectState
983
986
  width,
984
987
  maxHeight,
985
988
  toggleIcon,
989
+ toggleIndicator,
986
990
  ouiaId,
987
991
  ouiaSafe,
988
992
  hasInlineFilter,
@@ -1314,6 +1318,7 @@ export class Select extends React.Component<SelectProps & OUIAProps, SelectState
1314
1318
  onClose={this.onClose}
1315
1319
  onBlur={onBlur}
1316
1320
  variant={variant}
1321
+ toggleIndicator={toggleIndicator}
1317
1322
  aria-labelledby={`${ariaLabelledBy || ''} ${selectToggleId}`}
1318
1323
  aria-label={toggleAriaLabel}
1319
1324
  {...(ariaDescribedby && { 'aria-describedby': ariaDescribedby })}
@@ -31,6 +31,8 @@ export interface SelectToggleProps extends React.HTMLProps<HTMLElement> {
31
31
  moveFocusToLastMenuItem?: () => void;
32
32
  /** Element which wraps toggle */
33
33
  parentRef: React.RefObject<HTMLDivElement>;
34
+ /** Custom icon for the dropdown replacing the CaretDownIcon */
35
+ toggleIndicator?: React.ReactElement;
34
36
  /** The menu element */
35
37
  menuRef?: React.RefObject<HTMLElement>;
36
38
  /** The menu footer element */
@@ -262,6 +264,7 @@ export class SelectToggle extends React.Component<SelectToggleProps> {
262
264
  'aria-label': ariaLabel,
263
265
  hasFooter,
264
266
  footerRef,
267
+ toggleIndicator,
265
268
  ...props
266
269
  } = this.props;
267
270
  /* eslint-enable @typescript-eslint/no-unused-vars */
@@ -307,9 +310,7 @@ export class SelectToggle extends React.Component<SelectToggleProps> {
307
310
  disabled={isDisabled}
308
311
  >
309
312
  {children}
310
- <span className={css(styles.selectToggleArrow)}>
311
- <CaretDownIcon />
312
- </span>
313
+ <span className={css(styles.selectToggleArrow)}>{toggleIndicator ?? <CaretDownIcon />}</span>
313
314
  </button>
314
315
  )}
315
316
  {isTypeahead && (
@@ -354,7 +355,7 @@ export class SelectToggle extends React.Component<SelectToggleProps> {
354
355
  })}
355
356
  disabled={isDisabled}
356
357
  >
357
- <CaretDownIcon className={css(styles.selectToggleArrow)} />
358
+ {toggleIndicator ?? <CaretDownIcon className={css(styles.selectToggleArrow)} />}
358
359
  </button>
359
360
  </div>
360
361
  )}