Ulf Gebhardt a0e4b49833
fix(webapp): fix group performance (#8656)
* seed more Yoga group members

* implement groupMembers pagination

* load limited amount of group members

* force show all members in group member list

* remove unused import

* - added virtual scrolling to ProfileList

* - fixed linter error

* load all when clicking the button

* seed 3000 users

* cleanup

* lint

* hide search when not all members are visible

* fix email factory

* - increased profileListVisibleCount to 6

---------

Co-authored-by: Sebastian Stein <sebastian@codepassion.de>
2025-06-11 17:46:57 +02:00

65 lines
1.3 KiB
Vue

<template>
<div>
<add-group-member
:groupId="group.id"
:groupMembers="groupMembers"
@loadGroupMembers="loadGroupMembers"
/>
<ds-space margin-bottom="small" />
<base-card>
<group-member
:groupId="group.id"
:groupMembers="groupMembers"
@loadGroupMembers="loadGroupMembers"
/>
</base-card>
</div>
</template>
<script>
import GroupMember from '~/components/Group/GroupMember'
import AddGroupMember from '~/components/Group/AddGroupMember'
import { groupMembersQuery } from '~/graphql/groups.js'
export default {
components: {
GroupMember,
AddGroupMember,
},
props: {
group: {
type: Object,
required: true,
},
},
computed: {
groupMembers() {
return this.GroupMembers ? this.GroupMembers : []
},
},
apollo: {
GroupMembers: {
query() {
return groupMembersQuery()
},
variables() {
return {
id: this.group.id,
first: 999999,
}
},
error(error) {
this.GroupMembers = []
this.$toast.error(error.message)
},
fetchPolicy: 'cache-and-network',
},
},
methods: {
loadGroupMembers() {
this.$apollo.queries.GroupMembers.refetch()
},
},
}
</script>