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:
Torsten Schulz (local)
2025-11-26 17:15:42 +01:00
parent e6146b8f5a
commit bdbbb88be9

View File

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