/** @module player/state */ // import { call, put, takeEvery, takeLatest } from 'redux-saga/effects' /** * state.js * * Collection of everything which has to do with state changes. **/ /** actionTypes define what actions are handeled by the reducer. */ export const actions = { alertAdd: data => { console.log('adding alert', data) return { type: 'ALERT_ADD', data } }, alertDismiss: alertId => { console.log('dismissing alert', alertId) return { type: 'ALERT_DISMISS', alertId } } } console.log('State actions', actions) /** state definition */ export const state = { alerts: [] } console.log('State state', state) /** reducer is called by the redux dispatcher and handles all component actions */ export function reducer (state = [], action) { switch (action.type) { case 'ALERT_ADD': return { ...state, alerts: [ ...state.alerts, action.data ] } case 'ALERT_DISMISS': return { ...state, alerts: [ ...state.alerts.slice(0, action.alertId), ...state.alerts.slice(action.alertId + 1) ] } default: return state } } /** sagas are asynchronous workers (JS generators) to handle the state. */ export function * saga () {}