X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/a6633642232efd164d4708967ab59e498fbff896..refs/pull/3918/head:/resources/js/components/user-select.js diff --git a/resources/js/components/user-select.js b/resources/js/components/user-select.js index 477c11d6b..d4d88a633 100644 --- a/resources/js/components/user-select.js +++ b/resources/js/components/user-select.js @@ -1,24 +1,28 @@ import {onChildEvent} from "../services/dom"; +import {Component} from "./component"; -class UserSelect { +export class UserSelect extends Component { setup() { - + this.container = this.$el; this.input = this.$refs.input; this.userInfoContainer = this.$refs.userInfo; - this.hide = this.$el.components.dropdown.hide; - - onChildEvent(this.$el, 'a.dropdown-search-item', 'click', this.selectUser.bind(this)); + onChildEvent(this.container, 'a.dropdown-search-item', 'click', this.selectUser.bind(this)); } selectUser(event, userEl) { - const id = userEl.getAttribute('data-id'); - this.input.value = id; + event.preventDefault(); + this.input.value = userEl.getAttribute('data-id'); this.userInfoContainer.innerHTML = userEl.innerHTML; + this.input.dispatchEvent(new Event('change', {bubbles: true})); this.hide(); } -} + hide() { + /** @var {Dropdown} **/ + const dropdown = window.$components.firstOnElement(this.container, 'dropdown'); + dropdown.hide(); + } -export default UserSelect; \ No newline at end of file +} \ No newline at end of file