[Fix] Durability

This commit is contained in:
Alex Emmet 2026-08-30 21:28:36 +02:00
commit c155bbb534
No known key found for this signature in database
4 changed files with 61 additions and 38 deletions

View file

@ -69,6 +69,14 @@ type MessageEdit = Partial<
>
>;
const messageStateRank: Record<RawMessage["MessageState"], number> = {
awaiting: 0,
sending: 0,
sent: 1,
received: 2,
read: 3,
};
function updateMessagesBySendTime<T extends EditableMessage>(
messages: T[],
sendTime: number,
@ -81,6 +89,13 @@ function updateMessagesBySendTime<T extends EditableMessage>(
return item;
}
if (
edit.MessageState !== undefined &&
messageStateRank[edit.MessageState] < messageStateRank[item.MessageState]
) {
return item;
}
const entries = Object.entries(edit) as Array<
[keyof MessageEdit, MessageEdit[keyof MessageEdit]]
>;
@ -989,9 +1004,7 @@ export default function Provider({ children }: { children: ReactNode }) {
);
return;
}
editMessage(data.SendTime, {
MessageState: data.MessageState,
});
editMessage(data.SendTime, { MessageState: data.MessageState });
});
return () => {
unsubscribeEdit();