@ansible/ansible-ui-framework
Version:
A framework for building applications using PatternFly.
29 lines (28 loc) • 1.46 kB
TypeScript
import { ReactNode } from 'react';
import { FieldPath, FieldPathValue, FieldValues, Validate } from 'react-hook-form';
import { PageSelectOption } from '../../PageInputs/PageSelectOption';
export interface SelectOptionObject {
toString(): string;
compareTo?(selectOption: unknown): boolean;
}
export type PageFormSelectProps<TFieldValues extends FieldValues = FieldValues, TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TSelection = unknown> = {
id?: string;
name: TFieldName;
label?: string;
labelHelpTitle?: string;
labelHelp?: string | string[] | ReactNode;
additionalControls?: ReactNode;
placeholderText?: string;
footer?: ReactNode;
options: PageSelectOption<TSelection>[];
helperText?: string;
isDisabled?: boolean;
isReadOnly?: boolean;
isRequired?: boolean;
onChange?: (option?: TSelection) => void;
validate?: Validate<FieldPathValue<TFieldValues, TFieldName>, TFieldValues> | Record<string, Validate<FieldPathValue<TFieldValues, TFieldName>, TFieldValues>>;
defaultValue?: FieldPathValue<TFieldValues, TFieldName>;
enableReset?: boolean;
enableUndo?: boolean;
};
export declare function PageFormSelect<TFieldValues extends FieldValues = FieldValues, TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TSelection = unknown>(props: PageFormSelectProps<TFieldValues, TFieldName, TSelection>): import("react/jsx-runtime").JSX.Element;