X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/ddb7f33868ea499ab8f48a7062f145e8c0fbe02f..refs/pull/3879/head:/resources/js/components/page-picker.js diff --git a/resources/js/components/page-picker.js b/resources/js/components/page-picker.js index 577e9f6db..fba0a0a43 100644 --- a/resources/js/components/page-picker.js +++ b/resources/js/components/page-picker.js @@ -1,14 +1,14 @@ +import {Component} from "./component"; -class PagePicker { +export class PagePicker extends Component { - constructor(elem) { - this.elem = elem; - this.input = elem.querySelector('input'); - this.resetButton = elem.querySelector('[page-picker-reset]'); - this.selectButton = elem.querySelector('[page-picker-select]'); - this.display = elem.querySelector('[page-picker-display]'); - this.defaultDisplay = elem.querySelector('[page-picker-default]'); - this.buttonSep = elem.querySelector('span.sep'); + setup() { + this.input = this.$refs.input; + this.resetButton = this.$refs.resetButton; + this.selectButton = this.$refs.selectButton; + this.display = this.$refs.display; + this.defaultDisplay = this.$refs.defaultDisplay; + this.buttonSep = this.$refs.buttonSeperator; this.value = this.input.value; this.setupListeners(); @@ -24,7 +24,9 @@ class PagePicker { } showPopup() { - window.EntitySelectorPopup.show(entity => { + /** @type {EntitySelectorPopup} **/ + const selectorPopup = window.$components.first('entity-selector-popup'); + selectorPopup.show(entity => { this.setValue(entity.id, entity.name); }); } @@ -36,7 +38,7 @@ class PagePicker { } controlView(name) { - let hasValue = this.value && this.value !== 0; + const hasValue = this.value && this.value !== 0; toggleElem(this.resetButton, hasValue); toggleElem(this.buttonSep, hasValue); toggleElem(this.defaultDisplay, !hasValue); @@ -55,8 +57,5 @@ class PagePicker { } function toggleElem(elem, show) { - let display = (elem.tagName === 'BUTTON' || elem.tagName === 'SPAN') ? 'inline-block' : 'block'; - elem.style.display = show ? display : 'none'; -} - -export default PagePicker; \ No newline at end of file + elem.style.display = show ? null : 'none'; +} \ No newline at end of file