useUpdateUser.js 694 B

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