From f02ff602b57f06ff7da076d998f6f4c24b411da7 Mon Sep 17 00:00:00 2001
From: Angelina Filippova <linakirsanova@gmail.com>
Date: Sun, 7 Feb 2021 01:15:31 +0300
Subject: [PATCH] Implement search for Relays

---
 src/store/modules/normalizers.js         |  6 ++++++
 src/views/settings/components/Relays.vue | 13 ++++++++++++-
 2 files changed, 18 insertions(+), 1 deletion(-)

diff --git a/src/store/modules/normalizers.js b/src/store/modules/normalizers.js
index 150865d0..8379a8b0 100644
--- a/src/store/modules/normalizers.js
+++ b/src/store/modules/normalizers.js
@@ -308,6 +308,12 @@ export const formSearchObject = description => {
     key: ':terms_of_services',
     label: 'Terms of Services',
     search: ['Terms of Services', ':terms_of_services']
+  }, {
+    groupKey: 'relays',
+    groupLabel: 'Relays',
+    key: ':relays',
+    label: 'Relays',
+    search: ['Relays', ':relays']
   }]
   return processedDescription.concat(searchDataForEditableDocs)
 }
diff --git a/src/views/settings/components/Relays.vue b/src/views/settings/components/Relays.vue
index 4ac29042..9e8d16a8 100644
--- a/src/views/settings/components/Relays.vue
+++ b/src/views/settings/components/Relays.vue
@@ -1,5 +1,5 @@
 <template>
-  <div v-if="!loading" class="relays-container">
+  <div v-if="!loading" class="relays-container" data-search="relays">
     <div class="follow-relay-container">
       <el-input v-model="newRelay" :placeholder="$t('settings.followRelay')" class="follow-relay" @keyup.enter.native="followRelay"/>
       <el-button @click.native="followRelay">{{ $t('settings.follow') }}</el-button>
@@ -51,10 +51,21 @@ export default {
     },
     relays() {
       return this.$store.state.relays.fetchedRelays
+    },
+    searchQuery() {
+      return this.$store.state.settings.searchQuery
     }
   },
   mounted() {
     this.$store.dispatch('FetchRelays')
+
+    if (this.searchQuery.length > 0) {
+      const selectedSetting = document.querySelector(`[data-search="${this.searchQuery}"]`)
+      if (selectedSetting) {
+        selectedSetting.scrollIntoView({ block: 'start', behavior: 'smooth' })
+      }
+      this.$store.dispatch('SetSearchQuery', '')
+    }
   },
   methods: {
     followRelay() {
-- 
GitLab