import { handleActions } from 'redux-actions'; import * as actions from '../actions/access'; const access = handleActions( { [actions.getAccessListRequest]: state => ({ ...state, processing: true }), [actions.getAccessListFailure]: state => ({ ...state, processing: false }), [actions.getAccessListSuccess]: (state, { payload }) => { const { allowed_clients, disallowed_clients, blocked_hosts, } = payload; const newState = { ...state, allowed_clients: (allowed_clients && allowed_clients.join('\n')) || '', disallowed_clients: (disallowed_clients && disallowed_clients.join('\n')) || '', blocked_hosts: (blocked_hosts && blocked_hosts.join('\n')) || '', processing: false, }; return newState; }, [actions.setAccessListRequest]: state => ({ ...state, processingSet: true }), [actions.setAccessListFailure]: state => ({ ...state, processingSet: false }), [actions.setAccessListSuccess]: (state) => { const newState = { ...state, processingSet: false, }; return newState; }, [actions.toggleClientBlockRequest]: state => ({ ...state, processingSet: true }), [actions.toggleClientBlockFailure]: state => ({ ...state, processingSet: false }), [actions.toggleClientBlockSuccess]: (state, { payload }) => { const { allowed_clients, disallowed_clients, blocked_hosts, } = payload; const newState = { ...state, allowed_clients: (allowed_clients && allowed_clients.join('\n')) || '', disallowed_clients: (disallowed_clients && disallowed_clients.join('\n')) || '', blocked_hosts: (blocked_hosts && blocked_hosts.join('\n')) || '', processingSet: false, }; return newState; }, }, { processing: true, processingSet: false, allowed_clients: '', disallowed_clients: '', blocked_hosts: '', }, ); export default access;