Enhance MemberGalleryDialog to manage initial load state for gallery members. Introduce isInitialLoad flag to control gallery member loading behavior, ensuring size updates only occur on the first load. Reset isInitialLoad on dialog close for consistent state management.
This commit is contained in:
@@ -79,12 +79,14 @@ export default {
|
||||
galleryImageUrl: null,
|
||||
galleryError: '',
|
||||
gallerySize: 200,
|
||||
galleryMembers: []
|
||||
galleryMembers: [],
|
||||
isInitialLoad: true
|
||||
};
|
||||
},
|
||||
watch: {
|
||||
modelValue(newVal) {
|
||||
if (newVal) {
|
||||
this.isInitialLoad = true;
|
||||
this.loadGalleryMembers();
|
||||
} else {
|
||||
this.handleClose();
|
||||
@@ -114,9 +116,12 @@ export default {
|
||||
const response = await apiClient.get(`/clubmembers/gallery/${this.currentClub}?format=json&size=${this.gallerySize}`);
|
||||
const members = response.data.members || [];
|
||||
|
||||
// Setze Größe basierend auf Anzahl der Mitglieder (vor dem Laden der Bilder)
|
||||
this.galleryMembers = members; // Temporär setzen für count
|
||||
this.updateGallerySizeBasedOnCount();
|
||||
// Setze Größe basierend auf Anzahl der Mitglieder nur beim ersten Laden
|
||||
if (this.isInitialLoad) {
|
||||
this.galleryMembers = members; // Temporär setzen für count
|
||||
this.updateGallerySizeBasedOnCount();
|
||||
this.isInitialLoad = false;
|
||||
}
|
||||
|
||||
// Lade Bilder als Blobs und erstelle ObjectURLs
|
||||
this.galleryMembers = await Promise.all(members.map(async (member) => {
|
||||
@@ -193,6 +198,7 @@ export default {
|
||||
}
|
||||
});
|
||||
this.galleryMembers = [];
|
||||
this.isInitialLoad = true;
|
||||
this.$emit('update:modelValue', false);
|
||||
},
|
||||
handleGalleryMemberClick(member) {
|
||||
|
||||
Reference in New Issue
Block a user