diff --git a/addons/web/static/src/core/autocomplete/autocomplete.js b/addons/web/static/src/core/autocomplete/autocomplete.js index 0e51f26d251..e2de3f4dcd8 100644 --- a/addons/web/static/src/core/autocomplete/autocomplete.js +++ b/addons/web/static/src/core/autocomplete/autocomplete.js @@ -1,10 +1,9 @@ /** @odoo-module **/ -import { useForwardRefToParent, useService } from "@web/core/utils/hooks"; +import { useAutofocus, useForwardRefToParent, useService } from "@web/core/utils/hooks"; import { useDebounced } from "@web/core/utils/timing"; import { getActiveHotkey } from "@web/core/hotkeys/hotkey_service"; import { usePosition } from "@web/core/position_hook"; - import { Component, useExternalListener, useRef, useState } from "@odoo/owl"; export class AutoComplete extends Component { @@ -22,6 +21,9 @@ export class AutoComplete extends Component { }); this.inputRef = useForwardRefToParent("input"); + if (this.props.autofocus) { + useAutofocus({ refName: "input" }); + } this.root = useRef("root"); this.debouncedOnInput = useDebounced(this.onInput, this.constructor.timeout); useExternalListener(window, "scroll", this.onWindowScroll, true); @@ -322,6 +324,8 @@ Object.assign(AutoComplete, { onBlur: { type: Function, optional: true }, onFocus: { type: Function, optional: true }, input: { type: Function, optional: true }, + autofocus: { type: Boolean, optional: true }, + class: { type: String, optional: true }, }, defaultProps: { placeholder: "", diff --git a/addons/web/static/src/core/autocomplete/autocomplete.xml b/addons/web/static/src/core/autocomplete/autocomplete.xml index 260ff7f1e91..9f22692eabc 100644 --- a/addons/web/static/src/core/autocomplete/autocomplete.xml +++ b/addons/web/static/src/core/autocomplete/autocomplete.xml @@ -2,7 +2,7 @@ -