aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authortaehoon <th.dev91@gmail.com>2019-04-02 13:18:36 -0400
committertaehoon <th.dev91@gmail.com>2019-04-14 23:44:49 -0400
commit787737c80d8b815209539f159449efee677bd5d9 (patch)
tree2328760276a934b87043b7ed72b419e5d2400276 /src
parent6d3187b44951596204c5d8fec6d97b6faa70eb4a (diff)
hide results on outside click
Diffstat (limited to 'src')
-rw-r--r--src/components/user_autosuggest/user_autosuggest.js14
-rw-r--r--src/components/user_autosuggest/user_autosuggest.vue4
-rw-r--r--src/main.js2
3 files changed, 16 insertions, 4 deletions
diff --git a/src/components/user_autosuggest/user_autosuggest.js b/src/components/user_autosuggest/user_autosuggest.js
index eff6ef75..b99f61cc 100644
--- a/src/components/user_autosuggest/user_autosuggest.js
+++ b/src/components/user_autosuggest/user_autosuggest.js
@@ -11,7 +11,8 @@ export default {
return {
query: '',
results: [],
- timeout: null
+ timeout: null,
+ resultsVisible: false
}
},
watch: {
@@ -26,9 +27,18 @@ export default {
this.results = []
if (query) {
userSearchApi.search({query, store: this.$store})
- .then((data) => { this.results = data })
+ .then((data) => {
+ this.results = data
+ this.resultsVisible = true
+ })
}
}, debounceMilliseconds)
+ },
+ onInputClick () {
+ this.resultsVisible = true
+ },
+ onClickOutside () {
+ this.resultsVisible = false
}
}
}
diff --git a/src/components/user_autosuggest/user_autosuggest.vue b/src/components/user_autosuggest/user_autosuggest.vue
index 743d9eaf..eb5aa41b 100644
--- a/src/components/user_autosuggest/user_autosuggest.vue
+++ b/src/components/user_autosuggest/user_autosuggest.vue
@@ -1,7 +1,7 @@
<template>
- <div class="user-autosuggest">
<input v-model="query" placeholder="Search..." />
- <div class="user-autosuggest-results">
+ <div class="user-autosuggest" v-click-outside="onClickOutside">
+ <div class="user-autosuggest-results" v-if="resultsVisible">
<BasicUserCard v-for="user in results" :key="user.id" :user="user"/>
</div>
</div>
diff --git a/src/main.js b/src/main.js
index c80aea36..725f5806 100644
--- a/src/main.js
+++ b/src/main.js
@@ -22,6 +22,7 @@ import pushNotifications from './lib/push_notifications_plugin.js'
import messages from './i18n/messages.js'
import VueChatScroll from 'vue-chat-scroll'
+import VueClickOutside from 'v-click-outside'
import afterStoreSetup from './boot/after_store.js'
@@ -39,6 +40,7 @@ Vue.use(VueTimeago, {
})
Vue.use(VueI18n)
Vue.use(VueChatScroll)
+Vue.use(VueClickOutside)
const i18n = new VueI18n({
// By default, use the browser locale, we will update it if neccessary