actionUserUpdate.js 795 B

1234567891011121314151617181920212223242526272829
  1. import { call, delay, put, select } from "redux-saga/effects";
  2. import { actionPromiseClear } from "../reducers";
  3. import { promiseWorker } from "../reducers/promiseReducer";
  4. import { actionAboutMe } from "./actionAboutMe";
  5. import { actionUserUpsert } from "./actionUserUpsert";
  6. export const actionUserUpdate = (user) => ({ type: "USER_UPDATE", payload: user });
  7. export function* userUpdateWorker(action) {
  8. const user = action.payload || {};
  9. if (!user) {
  10. return;
  11. }
  12. yield call(promiseWorker, actionUserUpsert(user));
  13. const {
  14. promise: {
  15. userUpsert: { status },
  16. },
  17. } = yield select();
  18. if (status === "FULFILLED") {
  19. yield put(actionAboutMe());
  20. }
  21. yield delay(500);
  22. yield put(actionPromiseClear("userUpsert"));
  23. }