Skip to content

Commit 8a12363

Browse files
authored
Merge pull request #25 from dshk0718/main
Wrap `text-field` with `Autocomplete` to provide a way to add text suggestions
2 parents e2a692d + f23a512 commit 8a12363

File tree

1 file changed

+21
-12
lines changed

1 file changed

+21
-12
lines changed
Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,34 @@
11
import React from 'react';
22

3-
import { TextInputField } from 'evergreen-ui';
3+
import { Autocomplete, TextInputField } from 'evergreen-ui';
44

55
import useFieldApi from '@data-driven-forms/react-form-renderer/use-field-api';
66
import { UseFieldApiProps } from '@data-driven-forms/react-form-renderer';
77

88
export interface TextFieldProps extends UseFieldApiProps<string> {
9-
name: string;
10-
isRequired?: boolean;
11-
};
9+
name: string;
10+
items?: string[];
11+
isRequired?: boolean;
12+
}
1213

1314
const TextField: React.FC<TextFieldProps> = (props) => {
14-
const { input, meta, isRequired, ...rest } = useFieldApi(props);
15+
const { input, meta, isRequired, items, ...rest } = useFieldApi(props) as TextFieldProps;
1516

16-
return <TextInputField
17-
{...input}
18-
required={isRequired}
19-
isInvalid={Boolean(meta.error)}
20-
validationMessage={meta.error}
21-
{...rest}
22-
/>;
17+
return (
18+
<Autocomplete {...input} items={items || []}>
19+
{({ getInputProps, getRef, inputValue, openMenu }) => (
20+
<TextInputField
21+
ref={getRef}
22+
required={isRequired}
23+
isInvalid={Boolean(meta.error)}
24+
validationMessage={meta.error}
25+
{...getInputProps({ onFocus: () => openMenu() })}
26+
value={inputValue}
27+
{...rest}
28+
/>
29+
)}
30+
</Autocomplete>
31+
);
2332
};
2433

2534
export default TextField;

0 commit comments

Comments
 (0)