import { FormGroup, ValidatedOptions } from "@patternfly/react-core"; import { FieldPath, FieldValues, PathValue, useController, UseControllerProps, } from "react-hook-form"; import { KeycloakTextInput } from "../keycloak-text-input/KeycloakTextInput"; import { HelpItem } from "./HelpItem"; export type TextControlProps< T extends FieldValues, P extends FieldPath = FieldPath > = UseControllerProps & { label: string; labelIcon?: string; isDisabled?: boolean; }; export const TextControl = < T extends FieldValues, P extends FieldPath = FieldPath >( props: TextControlProps ) => { const required = !!props.rules?.required; const defaultValue = props.defaultValue ?? ("" as PathValue); const { field, fieldState } = useController({ ...props, defaultValue, }); return ( ) : undefined } fieldId={props.name} helperTextInvalid={fieldState.error?.message} validated={ fieldState.error ? ValidatedOptions.error : ValidatedOptions.default } > ); };