|
|
@@ -43,19 +43,19 @@ export default (({ user }: Props) => { |
|
|
|
return next |
|
|
|
}, |
|
|
|
onMutate: async () => { |
|
|
|
await qc.cancelQueries ({ queryKey: ['post', String (id)] }) |
|
|
|
const prev = qc.getQueryData<any> (['post', String (id)]) |
|
|
|
qc.setQueryData (['post', String (id)], |
|
|
|
await qc.cancelQueries ({ queryKey: ['posts', String (id)] }) |
|
|
|
const prev = qc.getQueryData<any> (['posts', String (id)]) |
|
|
|
qc.setQueryData (['posts', String (id)], |
|
|
|
(cur: any) => cur ? { ...cur, viewed: !(cur.viewed) } : cur) |
|
|
|
return { prev } |
|
|
|
}, |
|
|
|
onError: (...[, , ctx]) => { |
|
|
|
if (ctx?.prev) |
|
|
|
qc.setQueryData (['post', String (id)], ctx.prev) |
|
|
|
qc.setQueryData (['posts', String (id)], ctx.prev) |
|
|
|
toast ({ title: '失敗……', description: '通信に失敗しました……' }) |
|
|
|
}, |
|
|
|
onSuccess: () => { |
|
|
|
qc.invalidateQueries ({ queryKey: ['posts'] }) |
|
|
|
qc.invalidateQueries ({ queryKey: ['posts', 'index'] }) |
|
|
|
qc.invalidateQueries ({ queryKey: ['related', String (id)] }) |
|
|
|
} }) |
|
|
|
|
|
|
|