[Fix] Durability
This commit is contained in:
parent
c386e8d5cb
commit
c155bbb534
4 changed files with 61 additions and 38 deletions
|
|
@ -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();
|
||||
|
|
|
|||
Loading…
Reference in a new issue