From 6ce52820a1b04510a4fb4ba0f62633374f5be8d7 Mon Sep 17 00:00:00 2001 From: "Mr. Stallion" <mrstallion@nobody.nowhere.fauxdomain.ext> Date: Sat, 7 Dec 2019 07:57:54 -0600 Subject: [PATCH] Search spinner --- chat/CharacterSearch.vue | 35 ++++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/chat/CharacterSearch.vue b/chat/CharacterSearch.vue index 64998b7..5cbbca7 100644 --- a/chat/CharacterSearch.vue +++ b/chat/CharacterSearch.vue @@ -18,7 +18,11 @@ <button class="btn btn-outline-secondary" @click.prevent="reset()">Reset</button> </div> <div v-else-if="results" class="results"> - <h4>{{l('characterSearch.results')}}</h4> + <h4> + {{l('characterSearch.results')}} + <i class="fa fa-spinner search-spinner" v-if="!resultsComplete"></i> + </h4> + <div v-for="character in results" :key="character.name" class="search-result" :class="'status-' + character.status"> <template v-if="character.status === 'looking'" v-once> <img :src="characterImage(character.name)" v-if="showAvatars"/> @@ -101,6 +105,7 @@ kinksFilter = ''; error = ''; results: Character[] | undefined; + resultsComplete = false; characterImage = characterImage; options!: Data; data: Data = {kinks: [], genders: [], orientations: [], languages: [], furryprefs: [], roles: [], positions: []}; @@ -145,6 +150,8 @@ core.connection.onMessage('FKS', (data) => { this.results = data.characters.map((x) => core.characters.get(x)) .filter((x) => core.state.hiddenUsers.indexOf(x.name) === -1 && !x.isIgnored).sort(sort); + + this.resultsComplete = this.checkResultCompletion(); }); if (this.scoreWatcher) { @@ -163,6 +170,7 @@ && (_.find(this.results, (c: Character) => c.name === event.character.character.name)) ) { this.results = this.results.sort(sort); + this.resultsComplete = this.checkResultCompletion(); } }; @@ -200,6 +208,14 @@ } + checkResultCompletion(): boolean { + return _.every( + this.results, + (c: Character) => (!!core.cache.profileCache.getSync(c.name)) + ); + } + + filterKink(filter: RegExp, kink: Kink): boolean { if(this.data.kinks.length >= 5) return this.data.kinks.indexOf(kink) !== -1; @@ -267,5 +283,22 @@ .search-string span { font-weight: bold; } + + .search-spinner { + float: right; + animation: search-spin 4s linear infinite; + } } + + + @keyframes search-spin { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } + + } + </style> \ No newline at end of file