chore: improve label error handling

This commit is contained in:
killerprojecte
2026-06-22 14:07:53 +08:00
parent 74f456ef7d
commit 94ab94eceb
+2 -2
View File
@@ -226,7 +226,7 @@ export function MailPage() {
await qc.cancelQueries({ queryKey: ["labels"] }) await qc.cancelQueries({ queryKey: ["labels"] })
const prevLabels = qc.getQueryData<ListResponse<MailLabel>>(["labels", activeMailboxId]) const prevLabels = qc.getQueryData<ListResponse<MailLabel>>(["labels", activeMailboxId])
const tempLabel: MailLabel = { id: `temp-${Date.now()}`, name, color: "" } const tempLabel: MailLabel = { id: `temp-${Date.now()}`, name, color: "" }
qc.setQueryData<ListResponse<MailLabel>>(["labels", activeMailboxId], (current) => current ? { ...current, items: [...current.items, tempLabel] } : { items: [tempLabel] }) qc.setQueryData<ListResponse<MailLabel>>(["labels", activeMailboxId], (current) => current ? { ...current, items: [...(current.items || []), tempLabel] } : { items: [tempLabel] })
return { prevLabels } return { prevLabels }
}, },
onError: (_error, _name, context) => { onError: (_error, _name, context) => {
@@ -240,7 +240,7 @@ export function MailPage() {
onMutate: async (id) => { onMutate: async (id) => {
await qc.cancelQueries({ queryKey: ["labels"] }) await qc.cancelQueries({ queryKey: ["labels"] })
const prevLabels = qc.getQueryData<ListResponse<MailLabel>>(["labels", activeMailboxId]) const prevLabels = qc.getQueryData<ListResponse<MailLabel>>(["labels", activeMailboxId])
qc.setQueryData<ListResponse<MailLabel>>(["labels", activeMailboxId], (current) => current ? { ...current, items: current.items.filter((l) => l.id !== id) } : current) qc.setQueryData<ListResponse<MailLabel>>(["labels", activeMailboxId], (current) => current ? { ...current, items: (current.items || []).filter((l) => l.id !== id) } : current)
return { prevLabels } return { prevLabels }
}, },
onSuccess: (_data, id) => { onSuccess: (_data, id) => {