From bd94e5062d08bbcd6019b34b9ffb3cca60acb220 Mon Sep 17 00:00:00 2001 From: Sivin Varghese <64252451+iamsivin@users.noreply.github.com> Date: Mon, 3 Feb 2025 19:34:50 +0530 Subject: [PATCH] chore: Search improvements (#10801) - Adds pagination support for search. - Use composition API on all search related component. - Minor UI improvements. - Adds missing specs Loom video https://www.loom.com/share/5b01afa5c9204e7d97ff81b215621dde?sid=82ca6d22-ca8c-4d5e-8740-ba06ca4051ba --- app/javascript/dashboard/api/search.js | 9 +- .../dashboard/i18n/locale/en/search.json | 3 + .../search/components/MessageContent.vue | 110 ++-- .../modules/search/components/ReadMore.vue | 21 +- .../search/components/SearchHeader.vue | 95 ++- .../modules/search/components/SearchInput.vue | 35 -- .../components/SearchResultContactItem.vue | 35 +- .../components/SearchResultContactsList.vue | 49 +- .../SearchResultConversationItem.vue | 127 ++-- .../SearchResultConversationsList.vue | 51 +- .../components/SearchResultMessagesList.vue | 62 +- .../search/components/SearchResultSection.vue | 6 +- .../modules/search/components/SearchTabs.vue | 66 +- .../modules/search/components/SearchView.vue | 581 ++++++++++-------- .../store/modules/conversationSearch.js | 30 +- .../specs/conversationSearch/actions.spec.js | 115 ++++ .../specs/conversationSearch/getters.spec.js | 43 +- .../conversationSearch/mutations.spec.js | 97 ++- .../dashboard/store/mutation-types.js | 1 + app/services/search_service.rb | 8 +- 20 files changed, 898 insertions(+), 646 deletions(-) delete mode 100644 app/javascript/dashboard/modules/search/components/SearchInput.vue diff --git a/app/javascript/dashboard/api/search.js b/app/javascript/dashboard/api/search.js index 7dc98dcf2..7abb584c0 100644 --- a/app/javascript/dashboard/api/search.js +++ b/app/javascript/dashboard/api/search.js @@ -14,26 +14,29 @@ class SearchAPI extends ApiClient { }); } - contacts({ q }) { + contacts({ q, page = 1 }) { return axios.get(`${this.url}/contacts`, { params: { q, + page: page, }, }); } - conversations({ q }) { + conversations({ q, page = 1 }) { return axios.get(`${this.url}/conversations`, { params: { q, + page: page, }, }); } - messages({ q }) { + messages({ q, page = 1 }) { return axios.get(`${this.url}/messages`, { params: { q, + page: page, }, }); } diff --git a/app/javascript/dashboard/i18n/locale/en/search.json b/app/javascript/dashboard/i18n/locale/en/search.json index d10c9c4fc..7a0fc4f82 100644 --- a/app/javascript/dashboard/i18n/locale/en/search.json +++ b/app/javascript/dashboard/i18n/locale/en/search.json @@ -11,7 +11,10 @@ "CONVERSATIONS": "Conversations", "MESSAGES": "Messages" }, + "VIEW_MORE": "View more", + "LOAD_MORE": "Load more", "SEARCHING_DATA": "Searching", + "LOADING_DATA": "Loading", "EMPTY_STATE": "No {item} found for query '{query}'", "EMPTY_STATE_FULL": "No results found for query '{query}'", "PLACEHOLDER_KEYBINDING": "/ to focus", diff --git a/app/javascript/dashboard/modules/search/components/MessageContent.vue b/app/javascript/dashboard/modules/search/components/MessageContent.vue index 4ea4714c2..fef35ac89 100644 --- a/app/javascript/dashboard/modules/search/components/MessageContent.vue +++ b/app/javascript/dashboard/modules/search/components/MessageContent.vue @@ -1,73 +1,59 @@ -