diff --git a/src/components/search/search.js b/src/components/search/search.js index 6347febff133a97e1d360e816fc1890df6203065..751a9c37ed140e189201a59846a1d03d4f8b0175 100644 --- a/src/components/search/search.js +++ b/src/components/search/search.js @@ -63,28 +63,32 @@ const Search = { this.$router.push({ name: 'search', query: { query } }) this.$refs.searchInput.focus() }, - search (query) { + search (query, searchType = null) { if (!query) { this.loading = false return } this.loading = true - this.userIds = [] - this.hashtags = [] this.$refs.searchInput.blur() if (this.lastQuery !== query) { + this.userIds = [] + this.hashtags = [] this.statuses = [] + this.statusesOffset = 0 this.lastStatusFetchCount = 0 } - this.$store.dispatch('search', { q: query, resolve: true, offset: this.statusesOffset }) + this.$store.dispatch('search', { q: query, resolve: true, offset: this.statusesOffset, 'type': searchType }) .then(data => { this.loading = false - this.userIds = map(data.accounts, 'id') + + // Always append to old results. If new results are empty, this doesn't change anything + this.userIds = this.userIds.concat(map(data.accounts, 'id')) this.statuses = this.statuses.concat(data.statuses) - this.hashtags = data.hashtags + this.hashtags = this.hashtags.concat(data.hashtags) + this.currenResultTab = this.getActiveTab() this.loaded = true diff --git a/src/components/search/search.vue b/src/components/search/search.vue index 5d8a6715c1b811867e81aa69e6b38d09f58b559a..f3076f65acd9b6ea67e5024d745420da4ff3d5a3 100644 --- a/src/components/search/search.vue +++ b/src/components/search/search.vue @@ -68,7 +68,7 @@ <button v-if="!loading && loaded && lastStatusFetchCount > 0" class="more-statuses-button button-unstyled -link -fullwidth" - @click.prevent="search(searchTerm)" + @click.prevent="search(searchTerm, 'statuses')" > <div class="new-status-notification text-center"> {{ $t('search.load_more') }}