@workday/canvas-kit-react
Version:
The parent module that contains all Workday Canvas Kit React components
22 lines (21 loc) • 907 B
JavaScript
import { createElemPropsHook, createSubcomponent } from '@workday/canvas-kit-react/common';
import { handleCsProp } from '@workday/canvas-kit-styling';
import React from 'react';
import { useFormFieldModel } from './hooks';
/**
* Adds the necessary props to an `Input` component for grouped inputs.
*/
export const useFormFieldGroupInput = createElemPropsHook(useFormFieldModel)(({ state }) => {
return {
'aria-invalid': state.error === 'error' ? true : undefined,
'aria-describedby': state.id ? `hint-${state.id}` : undefined,
'aria-required': state.isRequired ? true : undefined,
};
});
export const FormFieldGroupInput = createSubcomponent('input')({
displayName: 'FormField.Input',
modelHook: useFormFieldModel,
elemPropsHook: useFormFieldGroupInput,
})((elemProps, Element) => {
return React.createElement(Element, { ...handleCsProp(elemProps) });
});