useDeleteUser.js 654 B

1234567891011121314151617181920212223242526272829
  1. import { useOptimisticUpdate } from "pinia-colada-plugin-normalizer"
  2. export const useDeleteUser = defineMutation(() => {
  3. const { transaction } = useOptimisticUpdate()
  4. const { mutate, ...mutation } = useMutation({
  5. onMutate: ({ id }) => {
  6. const tx = transaction()
  7. tx.remove("user", id)
  8. return tx
  9. },
  10. mutation: ({ id }) => useEmit("user:delete", id),
  11. onError: (error, _vars, { rollback }) => {
  12. rollback?.()
  13. console.error("[useDeleteUser] [onError]", error)
  14. },
  15. onSuccess: (_data, _vars, { commit }) => commit?.()
  16. })
  17. return {
  18. ...mutation,
  19. deleteUser: (id) => mutate({ id })
  20. }
  21. })