798
799
case ActionType.ChatQueuedMessagesReordered: {
800
>
const existing = state.queuedMessages;
reducer.ts
801
>
if (!existing) {
802
return state;
803
}
804
>
const byId = new Map(existing.map(m => [m.id, m]));
reducer.ts
805
>
const ordered = new Set<string>();
806
>
const reordered = action.order
807
>
.filter(id => {
808
>
if (byId.has(id) && !ordered.has(id)) {
809
>
ordered.add(id);
810
>
return true;
811
>
}
812
>
return false;
813
>
})
814
>
.map(id => byId.get(id)!);
815
>
// Append any messages not mentioned in order, preserving original order
816
>
for (const m of existing) {
817
>
if (!ordered.has(m.id)) {
818
reordered.push(m);
819
}
821
>
return { ...state, queuedMessages: reordered };
822
>
}
823
824
// ── Draft ─────────────────────────────────────────────────────────────