From 6d62ecdf1779a9f5fa34395d76d2c83f59cb93ec Mon Sep 17 00:00:00 2001 From: Leonardo Chappuis <40621126+leonardochappuis@users.noreply.github.com> Date: Tue, 23 Jan 2024 18:06:54 -0300 Subject: [PATCH] Fix sort/search on member selection modal (#15066) --- .../src/components/selectMembersModal.vue | 22 +++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/website/client/src/components/selectMembersModal.vue b/website/client/src/components/selectMembersModal.vue index ef9d9eeb1d..c5b4da571e 100644 --- a/website/client/src/components/selectMembersModal.vue +++ b/website/client/src/components/selectMembersModal.vue @@ -207,10 +207,9 @@ export default { computed: { ...mapState({ user: 'user.data' }), sortedMembers () { - const sortedMembers = this.members; - if (!this.sortOption) return sortedMembers; + if (!this.sortOption) return this.members; - sortBy(this.members, [member => { + const sortedMembers = sortBy(this.members, [member => { if (this.sortOption === 'tier') { if (!member.contributor) return; return member.contributor.level; // eslint-disable-line consistent-return @@ -223,7 +222,7 @@ export default { } }]); - return this.members; + return sortedMembers; }, isLoadMoreAvailable () { // Only available if the current length of `members` is less than the @@ -243,6 +242,13 @@ export default { this.getMembers(); } }, + searchTerm () { + if (this.searchTerm) { + this.searchMembers(this.searchTerm); + } else { + this.getMembers(); + } + }, }, methods: { loadMembers (payload = null) { @@ -253,6 +259,14 @@ export default { return this.$store.dispatch('members:getGroupMembers', payload); }, + async searchMembers (searchTerm = '') { + this.members = await this.$store.state.memberModalOptions.fetchMoreMembers({ + challengeId: this.challengeId, + groupId: this.groupId, + searchTerm, + includeAllPublicFields: true, + }); + }, async getMembers () { this.group = await this.$store.dispatch('party:getParty'); this.group = this.$store.state.party.data;