fix: protocol presence syncing

This commit is contained in:
Julian Krauser 2025-02-03 13:50:52 +01:00
parent a24f8b7153
commit 06d24c21a2
2 changed files with 16 additions and 3 deletions

View file

@ -22,8 +22,12 @@ export const useProtocolPresenceStore = defineStore("protocolPresence", {
getters: { getters: {
detectedChangeProtocolPresence: (state) => detectedChangeProtocolPresence: (state) =>
!isEqual( !isEqual(
state.origin, //.sort((a: ProtocolPresenceViewModel, b: ProtocolPresenceViewModel) => a.memberId - b.memberId), state.origin.sort((a: ProtocolPresenceViewModel, b: ProtocolPresenceViewModel) =>
state.presence //.sort((a: ProtocolPresenceViewModel, b: ProtocolPresenceViewModel) => a.memberId - b.memberId) a.memberId.localeCompare(b.memberId)
),
state.presence.sort((a: ProtocolPresenceViewModel, b: ProtocolPresenceViewModel) =>
a.memberId.localeCompare(b.memberId)
)
) && state.syncingProtocolPresence != "syncing", ) && state.syncingProtocolPresence != "syncing",
}, },
actions: { actions: {

View file

@ -22,7 +22,7 @@
<p>Anwesenheit</p> <p>Anwesenheit</p>
<div class="flex flex-col gap-2 grow overflow-y-auto"> <div class="flex flex-col gap-2 grow overflow-y-auto">
<div <div
v-for="member in presence" v-for="member in sortedPresence"
:key="member.memberId" :key="member.memberId"
class="flex flex-row h-fit w-full border border-primary rounded-md bg-primary p-2 text-white justify-between items-center" class="flex flex-row h-fit w-full border border-primary rounded-md bg-primary p-2 text-white justify-between items-center"
> >
@ -82,6 +82,15 @@ export default defineComponent({
return this.members.find((m) => memberId == m.id); return this.members.find((m) => memberId == m.id);
}; };
}, },
sortedPresence() {
return this.presence.toSorted((a, b) => {
const memberA = this.getMember(a.memberId);
const memberB = this.getMember(b.memberId);
return `${memberA?.lastname}, ${memberA?.firstname}`.localeCompare(
`${memberB?.lastname}, ${memberB?.firstname}`
);
});
},
}, },
mounted() {}, mounted() {},
methods: { methods: {