Skip to content

Commit 9eff25a

Browse files
authored
add autocomplete to textarea and select (#190)
1 parent 0b99a61 commit 9eff25a

File tree

4 files changed

+10
-2
lines changed

4 files changed

+10
-2
lines changed

src/npm-fastui/src/components/FormField.tsx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ interface FormFieldTextareaProps extends FormFieldTextarea {
5151
}
5252

5353
export const FormFieldTextareaComp: FC<FormFieldTextareaProps> = (props) => {
54-
const { name, placeholder, required, locked, rows, cols } = props
54+
const { name, placeholder, required, locked, rows, cols, autocomplete } = props
5555
return (
5656
<div className={useClassName(props)}>
5757
<Label {...props} />
@@ -66,6 +66,7 @@ export const FormFieldTextareaComp: FC<FormFieldTextareaProps> = (props) => {
6666
disabled={locked}
6767
placeholder={placeholder}
6868
aria-describedby={descId(props)}
69+
autoComplete={autocomplete}
6970
/>
7071
<ErrorDescription {...props} />
7172
</div>
@@ -141,7 +142,7 @@ export const FormFieldSelectComp: FC<FormFieldSelectProps> = (props) => {
141142
}
142143

143144
export const FormFieldSelectVanillaComp: FC<FormFieldSelectProps> = (props) => {
144-
const { name, required, locked, options, multiple, initial, placeholder, onChange } = props
145+
const { name, required, locked, options, multiple, initial, placeholder, onChange, autocomplete } = props
145146

146147
const className = useClassName(props)
147148
const classNameSelect = useClassName(props, { el: 'select' })
@@ -159,6 +160,7 @@ export const FormFieldSelectVanillaComp: FC<FormFieldSelectProps> = (props) => {
159160
aria-describedby={descId(props)}
160161
placeholder={placeholder}
161162
onChange={() => onChange && onChange()}
163+
autoComplete={autocomplete}
162164
>
163165
{multiple ? null : <option></option>}
164166
{options.map((option, i) => (

src/npm-fastui/src/models.d.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -366,6 +366,7 @@ export interface FormFieldTextarea {
366366
cols?: number
367367
initial?: string
368368
placeholder?: string
369+
autocomplete?: string
369370
type: 'FormFieldTextarea'
370371
}
371372
export interface FormFieldBoolean {
@@ -408,6 +409,7 @@ export interface FormFieldSelect {
408409
initial?: string[] | string
409410
vanilla?: boolean
410411
placeholder?: string
412+
autocomplete?: string
411413
type: 'FormFieldSelect'
412414
}
413415
export interface SelectOption {

src/python-fastui/fastui/components/forms.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ class FormFieldTextarea(BaseFormField):
4040
cols: _t.Union[int, None] = None
4141
initial: _t.Union[str, None] = None
4242
placeholder: _t.Union[str, None] = None
43+
autocomplete: _t.Union[str, None] = None
4344
type: _t.Literal['FormFieldTextarea'] = 'FormFieldTextarea'
4445

4546

@@ -61,6 +62,7 @@ class FormFieldSelect(BaseFormField):
6162
initial: _t.Union[_t.List[str], str, None] = None
6263
vanilla: _t.Union[bool, None] = None
6364
placeholder: _t.Union[str, None] = None
65+
autocomplete: _t.Union[str, None] = None
6466
type: _t.Literal['FormFieldSelect'] = 'FormFieldSelect'
6567

6668

src/python-fastui/fastui/json_schema.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -257,6 +257,7 @@ def special_string_field(
257257
placeholder=schema.get('placeholder'),
258258
initial=schema.get('initial'),
259259
description=schema.get('description'),
260+
autocomplete=schema.get('autocomplete'),
260261
)
261262
elif enum := schema.get('enum'):
262263
enum_labels = schema.get('enum_labels', {})
@@ -269,6 +270,7 @@ def special_string_field(
269270
options=[SelectOption(value=v, label=enum_labels.get(v) or as_title(v)) for v in enum],
270271
initial=schema.get('default'),
271272
description=schema.get('description'),
273+
autocomplete=schema.get('autocomplete'),
272274
)
273275
elif search_url := schema.get('search_url'):
274276
return FormFieldSelectSearch(

0 commit comments

Comments
 (0)