From 7a6397af22380eec65f20836d713256b5397d182 Mon Sep 17 00:00:00 2001 From: Henrique Dias Date: Sun, 6 Jan 2019 10:06:08 +0000 Subject: [PATCH] feat: show search progressively License: MIT Signed-off-by: Henrique Dias --- src/components/Search.vue | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/src/components/Search.vue b/src/components/Search.vue index 7c6086f3..211baf23 100644 --- a/src/components/Search.vue +++ b/src/components/Search.vue @@ -23,7 +23,7 @@ > -
+
-
    -
  • +
      +
    • folder insert_drive_file @@ -69,8 +69,6 @@ import { mapState, mapGetters, mapMutations } from "vuex" import url from "@/utils/url" import { search } from "@/api" -// TODO: show fifty at the tie - var boxes = { image: { label: "images", icon: "insert_photo" }, audio: { label: "music", icon: "volume_up" }, @@ -92,7 +90,7 @@ export default { } }, watch: { - show(val, old) { + show (val, old) { this.active = val === "search" if (old === "search" && !this.active) { @@ -102,12 +100,19 @@ export default { document.body.style.overflow = "auto" this.reset() + this.value = '' + this.active = false this.$refs.input.blur() } else if (this.active) { this.reload = false this.$refs.input.focus() document.body.style.overflow = "hidden" } + }, + value () { + if (this.results.length) { + this.reset() + } } }, computed: { @@ -125,6 +130,9 @@ export default { } return this.value === '' ? this.$t("search.typeToSearch") : this.$t("search.pressToSearch") + }, + filteredResults () { + return this.results.slice(0, this.resultsCount) } }, mounted() { @@ -133,6 +141,12 @@ export default { this.closeHovers() } }) + + this.$refs.result.addEventListener('scroll', event => { + if (event.target.offsetHeight + event.target.scrollTop >= event.target.scrollHeight - 100) { + this.resultsCount += 50 + } + }) }, methods: { ...mapMutations(["showHover", "closeHovers", "setReload"]), @@ -157,8 +171,6 @@ export default { this.$refs.input.focus() }, reset () { - this.value = '' - this.active = false this.ongoing = false this.resultsCount = 50 this.results = [] @@ -177,6 +189,7 @@ export default { this.ongoing = true + this.results = await search(path, this.value) this.ongoing = false }