reducer.js 1.59 KB
Newer Older
zhanghaozhe committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
const UPDATE_CAPTCHA_STATE = 'UPDATE_CAPTCHA_STATE'
export const updateCaptchaState = payload => {
  return {
    type: UPDATE_CAPTCHA_STATE,
    payload,
  }
}

const SHOW_CAPTCHA_MODAL = 'SHOW_CAPTCHA_MODAL'
export const showCaptchaModal = () => {
  return {
    type: SHOW_CAPTCHA_MODAL,
  }
}

const CLOSE_CAPTCHA_MODAL = 'CLOSE_CAPTCHA_MODAL'
export const closeCaptchaModal = () => {
  return {
    type: CLOSE_CAPTCHA_MODAL,
  }
}

const VALIDATION_PASSED = 'VALIDATION_PASSED'
export const validationPassed = () => {
  return {
    type: VALIDATION_PASSED,
  }
}

zhanghaozhe committed
30 31 32 33 34 35 36 37 38 39
const START_FETCH = 'START_FETCH'
export const startFetchNoTrace = () => ({
  type: START_FETCH,
})

const END_FETCH = 'END_FETCH'
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 56 57 58 59 60 61 62 63 64 65 66
}

export default function noTraceValidation(state = initialState, action) {
  switch (action.type) {
    case UPDATE_CAPTCHA_STATE:
      return {
        ...state,
        ...action.payload,
      }
    case SHOW_CAPTCHA_MODAL:
      return {
        ...state,
        ...{isShowCaptcha: true},
      }
    case CLOSE_CAPTCHA_MODAL:
      return {
        ...state,
        ...{isShowCaptcha: false},
      }
    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
  }
}