true
+ },
+ participantStatusMap: {
+ type: Object,
+ default: () => ({})
}
},
emits: ['update:modelValue', 'member-click'],
@@ -97,6 +101,17 @@ export default {
}
}
},
+ computed: {
+ visibleGalleryMembers() {
+ return (this.galleryMembers || []).filter((member) => {
+ const status = this.participantStatusMap?.[member.memberId] || '';
+ if (status === 'excused') {
+ return false;
+ }
+ return this.shouldShowMember(member);
+ });
+ }
+ },
methods: {
updateGallerySizeBasedOnCount() {
const count = this.galleryMembers.length;
diff --git a/frontend/src/views/DiaryView.vue b/frontend/src/views/DiaryView.vue
index 9254433e..d3faad85 100644
--- a/frontend/src/views/DiaryView.vue
+++ b/frontend/src/views/DiaryView.vue
@@ -671,6 +671,7 @@
:date="date"
:is-participant="isParticipant"
:should-show-member="shouldShowGalleryMember"
+ :participant-status-map="participantStatusMap"
@member-click="handleGalleryMemberClick"
/>