reducer.js 1.59 KB
Newer Older
zhanghaozhe committed
1 2
const UPDATE_CAPTCHA_STATE = "UPDATE_CAPTCHA_STATE"
export const updateCaptchaState = (payload) => {
zhanghaozhe committed
3 4 5 6 7 8
  return {
    type: UPDATE_CAPTCHA_STATE,
    payload,
  }
}

zhanghaozhe committed
9
const SHOW_CAPTCHA_MODAL = "SHOW_CAPTCHA_MODAL"
zhanghaozhe committed
10 11 12 13 14 15
export const showCaptchaModal = () => {
  return {
    type: SHOW_CAPTCHA_MODAL,
  }
}

zhanghaozhe committed
16
const CLOSE_CAPTCHA_MODAL = "CLOSE_CAPTCHA_MODAL"
zhanghaozhe committed
17 18 19 20 21 22
export const closeCaptchaModal = () => {
  return {
    type: CLOSE_CAPTCHA_MODAL,
  }
}

zhanghaozhe committed
23
const VALIDATION_PASSED = "VALIDATION_PASSED"
zhanghaozhe committed
24 25 26 27 28 29
export const validationPassed = () => {
  return {
    type: VALIDATION_PASSED,
  }
}

zhanghaozhe committed
30
const START_FETCH = "START_FETCH"
zhanghaozhe committed
31 32 33 34
export const startFetchNoTrace = () => ({
  type: START_FETCH,
})

zhanghaozhe committed
35
const END_FETCH = "END_FETCH"
zhanghaozhe committed
36 37 38 39
export const endFetchNoTrace = () => ({
  type: END_FETCH,
})

zhanghaozhe committed
40 41 42
const initialState = {
  isShowCaptcha: false,
  isNeedValidation: false,
zhanghaozhe committed
43
  isFetching: false,
zhanghaozhe committed
44 45 46 47 48 49 50 51 52 53 54 55
}

export default function noTraceValidation(state = initialState, action) {
  switch (action.type) {
    case UPDATE_CAPTCHA_STATE:
      return {
        ...state,
        ...action.payload,
      }
    case SHOW_CAPTCHA_MODAL:
      return {
        ...state,
zhanghaozhe committed
56
        ...{ isShowCaptcha: true },
zhanghaozhe committed
57 58 59 60
      }
    case CLOSE_CAPTCHA_MODAL:
      return {
        ...state,
zhanghaozhe committed
61
        ...{ isShowCaptcha: false },
zhanghaozhe committed
62 63 64 65 66
      }
    case VALIDATION_PASSED:
      return {
        isNeedValidation: false,
        isShowCaptcha: false,
zhanghaozhe committed
67 68
        isFetching: false,
      }
zhanghaozhe committed
69 70 71 72 73 74 75 76 77 78
    case START_FETCH:
      return {
        ...state,
        isFetching: true,
      }
    case END_FETCH:
      return {
        ...state,
        isFetching: false,
      }
zhanghaozhe committed
79 80 81 82
    default:
      return state
  }
}