(feat): unify message patching into a single interface
All checks were successful
/ build-web (push) Successful in 7m11s
/ build-desktop (linux) (push) Successful in 11m52s
/ build-mobile (push) Successful in 19m27s
/ release (push) Successful in 2m53s

This commit is contained in:
Alois 2026-07-07 18:21:52 +02:00
commit a08c41067e
2 changed files with 64 additions and 153 deletions

View file

@ -143,7 +143,7 @@ function MessageComponent({
}, [message.Content]);
// Message editing
const { chatSecret, editMessageContent, userId } = useChat();
const { chatSecret, editMessage, userId } = useChat();
const [editing, setEditing] = useState(false);
const [editDraft, setEditDraft] = useState(message.Content);
useEffect(() => {
@ -151,7 +151,7 @@ function MessageComponent({
setEditDraft(message.Content);
}
}, [editing, message.Content]);
const editMessage = useCallback(
const submitEditMessage = useCallback(
async (newContent: string) => {
if (!chatSecret) return;
@ -165,7 +165,7 @@ function MessageComponent({
if (!encryptedContent) return;
const previousContent = message.Content;
editMessageContent(message.SendTime, newContent);
editMessage(message.SendTime, { Content: newContent, Edited: true });
try {
const response = await send("MessageEdit", {
@ -178,18 +178,17 @@ function MessageComponent({
throw new Error(response.type);
}
} catch (err) {
editMessageContent(
message.SendTime,
previousContent,
message.Edited ?? false,
);
editMessage(message.SendTime, {
Content: previousContent,
Edited: message.Edited ?? false,
});
log(1, "chat", "red", "Failed to edit message", err);
toast("error", "Failed to edit message", String(err));
}
},
[
chatSecret,
editMessageContent,
editMessage,
userId,
message.Content,
message.Edited,
@ -288,7 +287,7 @@ function MessageComponent({
setValue={setEditDraft}
value={editDraft}
onSubmit={() => {
editMessage(editDraft);
submitEditMessage(editDraft);
setEditing(false);
}}
/>