import { createAction } from 'redux-actions'


{{#if fetch}}
export const REQUEST_{{fetchConst}} = 'Request {{fetch}}'
export const RECEIVE_{{fetchConst}} = 'Receieve {{fetch}}'
{{else}}
export const XXX = 'Informative action text'
{{/if}}

{{#if fetch}}
const request{{fetch}} = createAction(REQUEST_{{fetchConst}})
const receive{{fetch}} = createAction(RECEIVE_{{fetchConst}})

const fetch{{fetch}} = () => async (dispatch) => {
  let response
  let data
  dispatch(request{{fetch}}())

  try {
    response = await window.fetch(URL)
    data = await response.json()
  } catch (error) {
    console.error(error)
    return dispatch(receive{{fetch}}(error))
  }

  return dispatch(receive{{fetch}}(data))
}
{{else}}
const YYY = createAction(XXX)
{{/if}}

export const actionCreators = {
  {{#if fetch}}
  fetch{{fetch}},
  {{else}}
  YYY,
  {{/if}}
}
