diff options
author | Maksim Sukharev <antreesy.web@gmail.com> | 2023-07-24 20:09:39 +0200 |
---|---|---|
committer | backportbot-nextcloud[bot] <backportbot-nextcloud[bot]@users.noreply.github.com> | 2023-08-03 08:15:00 +0000 |
commit | 7ae81f89a3c4c2907bbeaeae12b91351bb8d2e7b (patch) | |
tree | ca66a09addf67bb974a660083504a07e49da1aaa /src/components/LeftSidebar/SearchBox/SearchBox.vue | |
parent | f1f8cc928e12851f2820d232709872d0ca0000c9 (diff) |
patch
Signed-off-by: Maksim Sukharev <antreesy.web@gmail.com>
Diffstat (limited to 'src/components/LeftSidebar/SearchBox/SearchBox.vue')
-rw-r--r-- | src/components/LeftSidebar/SearchBox/SearchBox.vue | 47 |
1 files changed, 45 insertions, 2 deletions
diff --git a/src/components/LeftSidebar/SearchBox/SearchBox.vue b/src/components/LeftSidebar/SearchBox/SearchBox.vue index b40897a16..ce5f33914 100644 --- a/src/components/LeftSidebar/SearchBox/SearchBox.vue +++ b/src/components/LeftSidebar/SearchBox/SearchBox.vue @@ -23,9 +23,11 @@ <NcTextField ref="searchConversations" :value="value" :label="placeholderText" - :show-trailing-button="isSearching" + :show-trailing-button="isFocused" trailing-button-icon="close" - v-on="$listeners" + v-on="listeners" + @focus="handleFocus" + @blur="handleBlur" @update:value="updateValue" @trailing-button-click="abortSearch" @keydown.esc="abortSearch"> @@ -75,6 +77,13 @@ export default { emits: ['update:value', 'input', 'submit', 'abort-search'], computed: { + listeners() { + return Object.assign({}, this.$listeners, { + focus: this.handleFocus, + blur: this.handleBlur, + }) + }, + cancelSearchLabel() { return t('spreed', 'Cancel search') }, @@ -112,6 +121,40 @@ export default { this.$emit('abort-search') this.focus() }, + + handleFocus(event) { + this.$emit('focus', event) + }, + handleBlur(event) { + console.log('inner blur') + if (Array.from(event.relatedTarget.classList).includes('input-field__clear-button')) { + event.preventDefault() + this.$refs.searchConversations.$el.querySelector('.input-field__clear-button').addEventListener('blur', (event) => { + console.log('trailing blur') + console.log(event) + // check if focus goes back to native input or outside, and proceed accordingly + }) + } else { + this.$emit('blur', event) + } + }, + + handleFocus(event) { + this.$emit('focus', event) + }, + handleBlur(event) { + console.log('inner blur') + if (Array.from(event.relatedTarget.classList).includes('input-field__clear-button')) { + event.preventDefault() + this.$refs.searchConversations.$el.querySelector('.input-field__clear-button').addEventListener('blur', (event) => { + console.log('trailing blur') + console.log(event) + // check if focus goes back to native input or outside, and proceed accordingly + }) + } else { + this.$emit('blur', event) + } + }, }, } </script> |