diff --git a/src/components/AppContent/CircleContent.vue b/src/components/AppContent/CircleContent.vue index 67540d2952..d3e1ac8d41 100644 --- a/src/components/AppContent/CircleContent.vue +++ b/src/components/AppContent/CircleContent.vue @@ -58,12 +58,6 @@ export default { }, }, - data() { - return { - loadingList: false, - } - }, - computed: { // store variables circles() { @@ -82,25 +76,10 @@ export default { return Object.values(this.circle?.members || []) }, - /** - * Is the current circle empty - * - * @return {boolean} - */ - isEmptyCircle() { - return this.members.length === 0 - }, - ...mapStores(useUserGroupStore), }, watch: { - circle(newCircle) { - if (newCircle?.id) { - this.fetchCircleMembers(newCircle.id) - } - }, - userGroup(newUserGroup) { if (newUserGroup?.id) { this.fetchUserGroupMembers(newUserGroup.id) @@ -109,40 +88,18 @@ export default { }, beforeMount() { - if (this.circle?.id) { - this.fetchCircleMembers(this.circle.id) - } - if (this.userGroup?.id) { this.fetchUserGroupMembers(this.userGroup.id) } }, methods: { - async fetchCircleMembers(circleId) { - this.loadingList = true - this.logger.debug('Fetching members for', { circleId }) - - try { - await this.$store.dispatch('getCircleMembers', circleId) - } catch (error) { - console.error(error) - showError(t('contacts', 'There was an error fetching the member list')) - } finally { - this.loadingList = false - } - }, - async fetchUserGroupMembers(userGroupId) { - this.loadingList = true - try { await this.userGroupStore.getUserGroupMembers(userGroupId) } catch (error) { console.error(error) showError(t('contacts', 'There was an error fetching the member list')) - } finally { - this.loadingList = false } }, }, diff --git a/src/components/MemberList/MemberGridItem.vue b/src/components/MemberList/MemberGridItem.vue index e4d1335a4b..2fa92ca489 100644 --- a/src/components/MemberList/MemberGridItem.vue +++ b/src/components/MemberList/MemberGridItem.vue @@ -81,6 +81,7 @@ @@ -312,4 +450,28 @@ export default defineComponent({ .empty-content { height: 100%; } + +.member-list__virtual { + overflow: auto; +} + +.member-list__too-large { + margin-top: calc(var(--default-grid-baseline) * 2); +} + +.member-list__filters { + display: flex; + align-items: flex-end; + gap: calc(var(--default-grid-baseline) * 2); + margin-bottom: calc(var(--default-grid-baseline) * 4); + + &--mobile { + flex-direction: column; + align-items: stretch; + } +} + +.member-list__search { + flex: 1; +} diff --git a/src/components/MemberList/MemberListGroup.vue b/src/components/MemberList/MemberListGroup.vue index d8c0a18204..1623fc10ba 100644 --- a/src/components/MemberList/MemberListGroup.vue +++ b/src/components/MemberList/MemberListGroup.vue @@ -6,6 +6,9 @@