Fix search with URL fetching twice

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
This commit is contained in:
Thomas Citharel 2020-02-07 17:04:03 +01:00
parent e02f8f0012
commit 81012d49a4

View File

@ -87,7 +87,7 @@ const tabsName = {
};
},
skip() {
return !this.searchTerm;
return !this.searchTerm || this.isURL(this.searchTerm);
},
},
},
@ -104,6 +104,13 @@ export default class Search extends Vue {
searchGroups: SearchGroup = { total: 0, elements: [] };
activeTab: SearchTabs = tabsName[this.searchType];
@Watch('searchEvents')
async redirectURLToEvent() {
if (this.searchEvents.total === 1 && this.isURL(this.searchTerm)) {
return await this.$router.replace({ name: RouteName.EVENT, params: { uuid: this.searchEvents.elements[0].uuid } });
}
}
changeTab(index: number) {
switch (index) {
case SearchTabs.EVENTS:
@ -136,6 +143,12 @@ export default class Search extends Vue {
return this.searchGroups.elements.map(group => Object.assign(new Group(), group));
}
isURL(url: string): boolean {
const a = document.createElement('a');
a.href = url;
return (a.host && a.host !== window.location.host) as boolean;
}
}
</script>
<style lang="scss">