1 | import { ReactNode } from 'react';
|
2 | import { PublicBaseSelectProps } from './Select';
|
3 | import { GetOptionLabel, GetOptionValue, GroupBase, Options, OptionsOrGroups } from './types';
|
4 | export interface Accessors<Option> {
|
5 | getOptionValue: GetOptionValue<Option>;
|
6 | getOptionLabel: GetOptionLabel<Option>;
|
7 | }
|
8 | export interface CreatableAdditionalProps<Option, Group extends GroupBase<Option>> {
|
9 | |
10 |
|
11 |
|
12 |
|
13 |
|
14 | allowCreateWhileLoading?: boolean;
|
15 |
|
16 | createOptionPosition?: 'first' | 'last';
|
17 | |
18 |
|
19 |
|
20 |
|
21 | formatCreateLabel?: (inputValue: string) => ReactNode;
|
22 | |
23 |
|
24 |
|
25 |
|
26 | isValidNewOption?: (inputValue: string, value: Options<Option>, options: OptionsOrGroups<Option, Group>, accessors: Accessors<Option>) => boolean;
|
27 | |
28 |
|
29 |
|
30 |
|
31 | getNewOptionData?: (inputValue: string, optionLabel: ReactNode) => Option;
|
32 | |
33 |
|
34 |
|
35 |
|
36 |
|
37 | onCreateOption?: (inputValue: string) => void;
|
38 | }
|
39 | declare type BaseCreatableProps<Option, IsMulti extends boolean, Group extends GroupBase<Option>> = PublicBaseSelectProps<Option, IsMulti, Group> & CreatableAdditionalProps<Option, Group>;
|
40 | export default function useCreatable<Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ allowCreateWhileLoading, createOptionPosition, formatCreateLabel, isValidNewOption, getNewOptionData, onCreateOption, options: propsOptions, onChange: propsOnChange, ...restSelectProps }: BaseCreatableProps<Option, IsMulti, Group>): PublicBaseSelectProps<Option, IsMulti, Group>;
|
41 | export {};
|