Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@
"@testing-library/jest-dom": "^5.16.5",
"@testing-library/react": "^14.0.0",
"@testing-library/user-event": "^14.4.3",
"@types/react": "^18.2.28",
"@types/react": "npm:[email protected]",
"@types/storybook__react": "^5.2.1",
"@typescript-eslint/eslint-plugin": "^6.7.5",
"@typescript-eslint/parser": "^6.7.5",
Expand Down Expand Up @@ -181,7 +181,8 @@
},
"resolutions": {
"@babel/core": "7.12.10",
"@types/react": "18.2.28",
"@types/react": "npm:[email protected]",
"@types/react-dom": "npm:[email protected]",
"postcss": "8.4.24",
"postcss-custom-properties": "13.2.0",
"postcss-import": "15.1.0",
Expand Down
4 changes: 2 additions & 2 deletions packages/@react-aria/accordion/src/useAccordion.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ export interface AccordionItemAria {
regionProps: DOMAttributes
}

export function useAccordionItem<T>(props: AccordionItemAriaProps<T>, state: TreeState<T>, ref: RefObject<HTMLButtonElement>): AccordionItemAria {
export function useAccordionItem<T>(props: AccordionItemAriaProps<T>, state: TreeState<T>, ref: RefObject<HTMLButtonElement | null>): AccordionItemAria {
let {item} = props;
let buttonId = useId();
let regionId = useId();
Expand Down Expand Up @@ -65,7 +65,7 @@ export function useAccordionItem<T>(props: AccordionItemAriaProps<T>, state: Tre
};
}

export function useAccordion<T>(props: AriaAccordionProps<T>, state: TreeState<T>, ref: RefObject<HTMLDivElement>): AccordionAria {
export function useAccordion<T>(props: AriaAccordionProps<T>, state: TreeState<T>, ref: RefObject<HTMLDivElement | null>): AccordionAria {
let {listProps} = useSelectableList({
...props,
...state,
Expand Down
2 changes: 1 addition & 1 deletion packages/@react-aria/actiongroup/src/useActionGroup.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ export interface ActionGroupAria {
actionGroupProps: DOMAttributes
}

export function useActionGroup<T>(props: AriaActionGroupProps<T>, state: ListState<T>, ref: RefObject<FocusableElement>): ActionGroupAria {
export function useActionGroup<T>(props: AriaActionGroupProps<T>, state: ListState<T>, ref: RefObject<FocusableElement | null>): ActionGroupAria {
let {
isDisabled,
orientation = 'horizontal' as Orientation
Expand Down
2 changes: 1 addition & 1 deletion packages/@react-aria/actiongroup/src/useActionGroupItem.ts
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ const BUTTON_ROLES = {
};

// eslint-disable-next-line @typescript-eslint/no-unused-vars
export function useActionGroupItem<T>(props: AriaActionGroupItemProps, state: ListState<T>, ref?: RefObject<FocusableElement>): ActionGroupItemAria {
export function useActionGroupItem<T>(props: AriaActionGroupItemProps, state: ListState<T>, ref?: RefObject<FocusableElement | null>): ActionGroupItemAria {
let selectionMode = state.selectionManager.selectionMode;
let buttonProps = {
role: BUTTON_ROLES[selectionMode]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,11 +37,11 @@ export interface SearchAutocompleteAria<T> extends ValidationResult {

export interface AriaSearchAutocompleteOptions<T> extends AriaSearchAutocompleteProps<T> {
/** The ref for the input element. */
inputRef: RefObject<HTMLInputElement>,
inputRef: RefObject<HTMLInputElement | null>,
/** The ref for the list box popover. */
popoverRef: RefObject<HTMLDivElement>,
popoverRef: RefObject<HTMLDivElement | null>,
/** The ref for the list box. */
listBoxRef: RefObject<HTMLElement>,
listBoxRef: RefObject<HTMLElement | null>,
/** An optional keyboard delegate implementation, to override the default. */
keyboardDelegate?: KeyboardDelegate
}
Expand Down
2 changes: 1 addition & 1 deletion packages/@react-aria/breadcrumbs/src/useBreadcrumbItem.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ export interface BreadcrumbItemAria {
* Provides the behavior and accessibility implementation for an in a breadcrumbs component.
* See `useBreadcrumbs` for details about breadcrumbs.
*/
export function useBreadcrumbItem(props: AriaBreadcrumbItemProps, ref: RefObject<FocusableElement>): BreadcrumbItemAria {
export function useBreadcrumbItem(props: AriaBreadcrumbItemProps, ref: RefObject<FocusableElement | null>): BreadcrumbItemAria {
let {
isCurrent,
isDisabled,
Expand Down
12 changes: 6 additions & 6 deletions packages/@react-aria/button/src/useButton.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,12 +34,12 @@ export interface ButtonAria<T> {
}

// Order with overrides is important: 'button' should be default
export function useButton(props: AriaButtonOptions<'button'>, ref: RefObject<HTMLButtonElement>): ButtonAria<ButtonHTMLAttributes<HTMLButtonElement>>;
export function useButton(props: AriaButtonOptions<'a'>, ref: RefObject<HTMLAnchorElement>): ButtonAria<AnchorHTMLAttributes<HTMLAnchorElement>>;
export function useButton(props: AriaButtonOptions<'div'>, ref: RefObject<HTMLDivElement>): ButtonAria<HTMLAttributes<HTMLDivElement>>;
export function useButton(props: AriaButtonOptions<'input'>, ref: RefObject<HTMLInputElement>): ButtonAria<InputHTMLAttributes<HTMLInputElement>>;
export function useButton(props: AriaButtonOptions<'span'>, ref: RefObject<HTMLSpanElement>): ButtonAria<HTMLAttributes<HTMLSpanElement>>;
export function useButton(props: AriaButtonOptions<ElementType>, ref: RefObject<Element>): ButtonAria<DOMAttributes>;
export function useButton(props: AriaButtonOptions<'button'>, ref: RefObject<HTMLButtonElement | null>): ButtonAria<ButtonHTMLAttributes<HTMLButtonElement>>;
export function useButton(props: AriaButtonOptions<'a'>, ref: RefObject<HTMLAnchorElement | null>): ButtonAria<AnchorHTMLAttributes<HTMLAnchorElement>>;
export function useButton(props: AriaButtonOptions<'div'>, ref: RefObject<HTMLDivElement | null>): ButtonAria<HTMLAttributes<HTMLDivElement>>;
export function useButton(props: AriaButtonOptions<'input'>, ref: RefObject<HTMLInputElement | null>): ButtonAria<InputHTMLAttributes<HTMLInputElement>>;
export function useButton(props: AriaButtonOptions<'span'>, ref: RefObject<HTMLSpanElement | null>): ButtonAria<HTMLAttributes<HTMLSpanElement>>;
export function useButton(props: AriaButtonOptions<ElementType>, ref: RefObject<Element | null>): ButtonAria<DOMAttributes>;
/**
* Provides the behavior and accessibility implementation for a button component. Handles mouse, keyboard, and touch interactions,
* focus behavior, and ARIA props for both native button elements and custom element types.
Expand Down
12 changes: 6 additions & 6 deletions packages/@react-aria/button/src/useToggleButton.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,12 @@ import {ToggleState} from '@react-stately/toggle';
export interface AriaToggleButtonOptions<E extends ElementType> extends Omit<AriaToggleButtonProps<E>, 'children'> {}

// Order with overrides is important: 'button' should be default
export function useToggleButton(props: AriaToggleButtonOptions<'button'>, state: ToggleState, ref: RefObject<HTMLButtonElement>): ButtonAria<ButtonHTMLAttributes<HTMLButtonElement>>;
export function useToggleButton(props: AriaToggleButtonOptions<'a'>, state: ToggleState, ref: RefObject<HTMLAnchorElement>): ButtonAria<AnchorHTMLAttributes<HTMLAnchorElement>>;
export function useToggleButton(props: AriaToggleButtonOptions<'div'>, state: ToggleState, ref: RefObject<HTMLDivElement>): ButtonAria<HTMLAttributes<HTMLDivElement>>;
export function useToggleButton(props: AriaToggleButtonOptions<'input'>, state: ToggleState, ref: RefObject<HTMLInputElement>): ButtonAria<InputHTMLAttributes<HTMLInputElement>>;
export function useToggleButton(props: AriaToggleButtonOptions<'span'>, state: ToggleState, ref: RefObject<HTMLSpanElement>): ButtonAria<HTMLAttributes<HTMLSpanElement>>;
export function useToggleButton(props: AriaToggleButtonOptions<ElementType>, state: ToggleState, ref: RefObject<Element>): ButtonAria<DOMAttributes>;
export function useToggleButton(props: AriaToggleButtonOptions<'button'>, state: ToggleState, ref: RefObject<HTMLButtonElement | null>): ButtonAria<ButtonHTMLAttributes<HTMLButtonElement>>;
export function useToggleButton(props: AriaToggleButtonOptions<'a'>, state: ToggleState, ref: RefObject<HTMLAnchorElement | null>): ButtonAria<AnchorHTMLAttributes<HTMLAnchorElement>>;
export function useToggleButton(props: AriaToggleButtonOptions<'div'>, state: ToggleState, ref: RefObject<HTMLDivElement | null>): ButtonAria<HTMLAttributes<HTMLDivElement>>;
export function useToggleButton(props: AriaToggleButtonOptions<'input'>, state: ToggleState, ref: RefObject<HTMLInputElement | null>): ButtonAria<InputHTMLAttributes<HTMLInputElement>>;
export function useToggleButton(props: AriaToggleButtonOptions<'span'>, state: ToggleState, ref: RefObject<HTMLSpanElement | null>): ButtonAria<HTMLAttributes<HTMLSpanElement>>;
export function useToggleButton(props: AriaToggleButtonOptions<ElementType>, state: ToggleState, ref: RefObject<Element | null>): ButtonAria<DOMAttributes>;
/**
* Provides the behavior and accessibility implementation for a toggle button component.
* ToggleButtons allow users to toggle a selection on or off, for example switching between two states or modes.
Expand Down
2 changes: 1 addition & 1 deletion packages/@react-aria/calendar/src/useCalendarCell.ts
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ export interface CalendarCellAria {
* Provides the behavior and accessibility implementation for a calendar cell component.
* A calendar cell displays a date cell within a calendar grid which can be selected by the user.
*/
export function useCalendarCell(props: AriaCalendarCellProps, state: CalendarState | RangeCalendarState, ref: RefObject<HTMLElement>): CalendarCellAria {
export function useCalendarCell(props: AriaCalendarCellProps, state: CalendarState | RangeCalendarState, ref: RefObject<HTMLElement | null>): CalendarCellAria {
let {date, isDisabled} = props;
let {errorMessageId, selectedDateDescription} = hookData.get(state);
let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-aria/calendar');
Expand Down
2 changes: 1 addition & 1 deletion packages/@react-aria/calendar/src/useRangeCalendar.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ import {useEvent} from '@react-aria/utils';
* Provides the behavior and accessibility implementation for a range calendar component.
* A range calendar displays one or more date grids and allows users to select a contiguous range of dates.
*/
export function useRangeCalendar<T extends DateValue>(props: AriaRangeCalendarProps<T>, state: RangeCalendarState, ref: RefObject<FocusableElement>): CalendarAria {
export function useRangeCalendar<T extends DateValue>(props: AriaRangeCalendarProps<T>, state: RangeCalendarState, ref: RefObject<FocusableElement | null>): CalendarAria {
let res = useCalendarBase(props, state);

// We need to ignore virtual pointer events from VoiceOver due to these bugs.
Expand Down
2 changes: 1 addition & 1 deletion packages/@react-aria/calendar/stories/Example.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ function CalendarGrid({state, visibleDuration, offset = {}}: {state: CalendarSta
}

function Cell(props) {
let ref = useRef();
let ref = useRef(undefined);
let {cellProps, buttonProps} = useCalendarCell(props, props.state, ref);

let dateFormatter = useDateFormatter({
Expand Down
2 changes: 1 addition & 1 deletion packages/@react-aria/checkbox/src/useCheckbox.ts
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ export interface CheckboxAria extends ValidationResult {
* @param state - State for the checkbox, as returned by `useToggleState`.
* @param inputRef - A ref for the HTML input element.
*/
export function useCheckbox(props: AriaCheckboxProps, state: ToggleState, inputRef: RefObject<HTMLInputElement>): CheckboxAria {
export function useCheckbox(props: AriaCheckboxProps, state: ToggleState, inputRef: RefObject<HTMLInputElement | null>): CheckboxAria {
// Create validation state here because it doesn't make sense to add to general useToggleState.
let validationState = useFormValidationState({...props, value: state.isSelected});
let {isInvalid, validationErrors, validationDetails} = validationState.displayValidation;
Expand Down
2 changes: 1 addition & 1 deletion packages/@react-aria/checkbox/src/useCheckboxGroupItem.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ import {ValidationResult} from '@react-types/shared';
* @param state - State for the checkbox, as returned by `useCheckboxGroupState`.
* @param inputRef - A ref for the HTML input element.
*/
export function useCheckboxGroupItem(props: AriaCheckboxGroupItemProps, state: CheckboxGroupState, inputRef: RefObject<HTMLInputElement>): CheckboxAria {
export function useCheckboxGroupItem(props: AriaCheckboxGroupItemProps, state: CheckboxGroupState, inputRef: RefObject<HTMLInputElement | null>): CheckboxAria {
const toggleState = useToggleState({
isReadOnly: props.isReadOnly || state.isReadOnly,
isSelected: state.isSelected(props.value),
Expand Down
8 changes: 4 additions & 4 deletions packages/@react-aria/color/src/useColorArea.ts
Original file line number Diff line number Diff line change
Expand Up @@ -37,11 +37,11 @@ export interface ColorAreaAria {

export interface AriaColorAreaOptions extends AriaColorAreaProps {
/** A ref to the input that represents the x axis of the color area. */
inputXRef: RefObject<HTMLInputElement>,
inputXRef: RefObject<HTMLInputElement | null>,
/** A ref to the input that represents the y axis of the color area. */
inputYRef: RefObject<HTMLInputElement>,
inputYRef: RefObject<HTMLInputElement | null>,
/** A ref to the color area containing element. */
containerRef: RefObject<Element>
containerRef: RefObject<Element | null>
}

/**
Expand All @@ -65,7 +65,7 @@ export function useColorArea(props: AriaColorAreaOptions, state: ColorAreaState)
let {direction, locale} = useLocale();

let [focusedInput, setFocusedInput] = useState<'x' | 'y' | null>(null);
let focusInput = useCallback((inputRef:RefObject<HTMLInputElement> = inputXRef) => {
let focusInput = useCallback((inputRef:RefObject<HTMLInputElement | null> = inputXRef) => {
if (inputRef.current) {
focusWithoutScrolling(inputRef.current);
}
Expand Down
2 changes: 1 addition & 1 deletion packages/@react-aria/color/src/useColorField.ts
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ export interface ColorFieldAria extends ValidationResult {
export function useColorField(
props: AriaColorFieldProps,
state: ColorFieldState,
ref: RefObject<HTMLInputElement>
ref: RefObject<HTMLInputElement | null>
): ColorFieldAria {
let {
isDisabled,
Expand Down
4 changes: 2 additions & 2 deletions packages/@react-aria/color/src/useColorSlider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,9 @@ import {useSlider, useSliderThumb} from '@react-aria/slider';

export interface AriaColorSliderOptions extends AriaColorSliderProps {
/** A ref for the track element. */
trackRef: RefObject<Element>,
trackRef: RefObject<Element | null>,
/** A ref for the input element. */
inputRef: RefObject<HTMLInputElement>
inputRef: RefObject<HTMLInputElement | null>
}

export interface ColorSliderAria {
Expand Down
2 changes: 1 addition & 1 deletion packages/@react-aria/color/src/useColorWheel.ts
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ export interface ColorWheelAria {
* Provides the behavior and accessibility implementation for a color wheel component.
* Color wheels allow users to adjust the hue of an HSL or HSB color value on a circular track.
*/
export function useColorWheel(props: AriaColorWheelOptions, state: ColorWheelState, inputRef: RefObject<HTMLInputElement>): ColorWheelAria {
export function useColorWheel(props: AriaColorWheelOptions, state: ColorWheelState, inputRef: RefObject<HTMLInputElement | null>): ColorWheelAria {
let {
isDisabled,
innerRadius,
Expand Down
8 changes: 4 additions & 4 deletions packages/@react-aria/combobox/src/useComboBox.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,13 +30,13 @@ import {useTextField} from '@react-aria/textfield';

export interface AriaComboBoxOptions<T> extends Omit<AriaComboBoxProps<T>, 'children'> {
/** The ref for the input element. */
inputRef: RefObject<HTMLInputElement>,
inputRef: RefObject<HTMLInputElement | null>,
/** The ref for the list box popover. */
popoverRef: RefObject<Element>,
popoverRef: RefObject<Element | null>,
/** The ref for the list box. */
listBoxRef: RefObject<HTMLElement>,
listBoxRef: RefObject<HTMLElement | null>,
/** The ref for the optional list box popup trigger button. */
buttonRef?: RefObject<Element>,
buttonRef?: RefObject<Element | null>,
/** An optional keyboard delegate implementation, to override the default. */
keyboardDelegate?: KeyboardDelegate
}
Expand Down
6 changes: 3 additions & 3 deletions packages/@react-aria/combobox/stories/example.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ export function ComboBox(props) {
}

function Popover(props) {
let ref = React.useRef();
let ref = React.useRef(undefined);
let {
popoverRef = ref,
isOpen,
Expand Down Expand Up @@ -126,7 +126,7 @@ function Popover(props) {


function ListBox(props) {
let ref = React.useRef();
let ref = React.useRef(undefined);
let {listBoxRef = ref, state} = props;
let {listBoxProps} = useListBox(props, state, listBoxRef);

Expand All @@ -152,7 +152,7 @@ function ListBox(props) {
}

function Option({item, state}) {
let ref = React.useRef();
let ref = React.useRef(undefined);
let {optionProps, isSelected, isFocused, isDisabled} = useOption({key: item.key}, state, ref);

let backgroundColor;
Expand Down
8 changes: 4 additions & 4 deletions packages/@react-aria/datepicker/src/useDateField.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ import {useLocalizedStringFormatter} from '@react-aria/i18n';
// Allows this hook to also be used with TimeField
export interface AriaDateFieldOptions<T extends DateValue> extends Omit<AriaDateFieldPropsBase<T>, 'value' | 'defaultValue' | 'onChange' | 'minValue' | 'maxValue' | 'placeholderValue' | 'validate'> {
/** A ref for the hidden input element for HTML form submission. */
inputRef?: RefObject<HTMLInputElement>
inputRef?: RefObject<HTMLInputElement | null>
}

export interface DateFieldAria extends ValidationResult {
Expand Down Expand Up @@ -63,7 +63,7 @@ export const focusManagerSymbol = '__focusManager_' + Date.now();
* A date field allows users to enter and edit date and time values using a keyboard.
* Each part of a date value is displayed in an individually editable segment.
*/
export function useDateField<T extends DateValue>(props: AriaDateFieldOptions<T>, state: DateFieldState, ref: RefObject<Element>): DateFieldAria {
export function useDateField<T extends DateValue>(props: AriaDateFieldOptions<T>, state: DateFieldState, ref: RefObject<Element | null>): DateFieldAria {
let {isInvalid, validationErrors, validationDetails} = state.displayValidation;
let {labelProps, fieldProps, descriptionProps, errorMessageProps} = useField({
...props,
Expand Down Expand Up @@ -193,15 +193,15 @@ export function useDateField<T extends DateValue>(props: AriaDateFieldOptions<T>

export interface AriaTimeFieldOptions<T extends TimeValue> extends AriaTimeFieldProps<T> {
/** A ref for the hidden input element for HTML form submission. */
inputRef?: RefObject<HTMLInputElement>
inputRef?: RefObject<HTMLInputElement | null>
}

/**
* Provides the behavior and accessibility implementation for a time field component.
* A time field allows users to enter and edit time values using a keyboard.
* Each part of a time value is displayed in an individually editable segment.
*/
export function useTimeField<T extends TimeValue>(props: AriaTimeFieldOptions<T>, state: TimeFieldState, ref: RefObject<Element>): DateFieldAria {
export function useTimeField<T extends TimeValue>(props: AriaTimeFieldOptions<T>, state: TimeFieldState, ref: RefObject<Element | null>): DateFieldAria {
let res = useDateField(props, state, ref);
res.inputProps.value = state.timeValue?.toString() || '';
return res;
Expand Down
2 changes: 1 addition & 1 deletion packages/@react-aria/datepicker/src/useDatePicker.ts
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ export interface DatePickerAria extends ValidationResult {
* Provides the behavior and accessibility implementation for a date picker component.
* A date picker combines a DateField and a Calendar popover to allow users to enter or select a date and time value.
*/
export function useDatePicker<T extends DateValue>(props: AriaDatePickerProps<T>, state: DatePickerState, ref: RefObject<Element>): DatePickerAria {
export function useDatePicker<T extends DateValue>(props: AriaDatePickerProps<T>, state: DatePickerState, ref: RefObject<Element | null>): DatePickerAria {
let buttonId = useId();
let dialogId = useId();
let fieldId = useId();
Expand Down
2 changes: 1 addition & 1 deletion packages/@react-aria/datepicker/src/useDatePickerGroup.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import {RefObject, useMemo} from 'react';
import {useLocale} from '@react-aria/i18n';
import {usePress} from '@react-aria/interactions';

export function useDatePickerGroup(state: DatePickerState | DateRangePickerState | DateFieldState, ref: RefObject<Element>, disableArrowNavigation?: boolean) {
export function useDatePickerGroup(state: DatePickerState | DateRangePickerState | DateFieldState, ref: RefObject<Element | null>, disableArrowNavigation?: boolean) {
let {direction} = useLocale();
let focusManager = useMemo(() => createFocusManager(ref), [ref]);

Expand Down
2 changes: 1 addition & 1 deletion packages/@react-aria/datepicker/src/useDateRangePicker.ts
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ export interface DateRangePickerAria extends ValidationResult {
* A date range picker combines two DateFields and a RangeCalendar popover to allow
* users to enter or select a date and time range.
*/
export function useDateRangePicker<T extends DateValue>(props: AriaDateRangePickerProps<T>, state: DateRangePickerState, ref: RefObject<Element>): DateRangePickerAria {
export function useDateRangePicker<T extends DateValue>(props: AriaDateRangePickerProps<T>, state: DateRangePickerState, ref: RefObject<Element | null>): DateRangePickerAria {
let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-aria/datepicker');
let {isInvalid, validationErrors, validationDetails} = state.displayValidation;
let {labelProps, fieldProps, descriptionProps, errorMessageProps} = useField({
Expand Down
Loading