diff --git a/src/components/DictionaryView.vue b/src/components/DictionaryView.vue index 065016dedeccb0909266f79d35d191714984f83a..487528b58df788f4b3cd31090534b5caca9964fc 100644 --- a/src/components/DictionaryView.vue +++ b/src/components/DictionaryView.vue @@ -2,7 +2,7 @@ <main> <div class="search_container"> <div class="lang_select_container"> - <v-radio-group row v-model="lang"> + <v-radio-group row v-model="lang" @change="forceRerender"> <template v-slot:label> <span>VIS</span> </template> @@ -37,6 +37,7 @@ </div> <SearchResults :hits="search_results" :lang="lang" + :key="lang" @article-click="article_link_click" @details-click="details_click" v-if="search_results.length && ! waiting && ! article" /> @@ -177,7 +178,8 @@ export default { article: null, error: null, monthly_bm: null, - monthly_nn: null + monthly_nn: null, + event: null } }, computed: { @@ -195,7 +197,10 @@ export default { }, methods: { select_result: function(event) { - if(event.articles){ + this.event = event + if(!event){ + return false + }else if(event.articles){ let source = '/' + this.lang + '/w/' + event.word this.$router.push(source) this.search_results = event.articles.sort(compare_by_hgno(decodeURIComponent(event.word))).map(a => Object.assign(a, {source: source})) @@ -211,6 +216,10 @@ export default { this.$plausible.trackEvent('dropdown selection', {props: {query: event.label, match: '<fritekstsøk>'}}) } }, + forceRerender: function(event) { + if (this.event){this.event.articles = null} + this.select_result(this.event) + }, article_link_click: function(item) { if (this.article && this.article.article_id == item.article_id){ this.article_key++