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 @@