diff options
Diffstat (limited to 'web/src/js/ducks/eventLog.js')
-rw-r--r-- | web/src/js/ducks/eventLog.js | 95 |
1 files changed, 20 insertions, 75 deletions
diff --git a/web/src/js/ducks/eventLog.js b/web/src/js/ducks/eventLog.js index f72d7bd6..776e4b08 100644 --- a/web/src/js/ducks/eventLog.js +++ b/web/src/js/ducks/eventLog.js @@ -1,24 +1,15 @@ -import reduceList, * as listActions from './utils/list' -import reduceView, * as viewActions from './utils/view' -import * as websocketActions from './websocket' -import * as msgQueueActions from './msgQueue' +import reduceStore from "./utils/store" +import * as storeActions from "./utils/store" -export const MSG_TYPE = 'UPDATE_EVENTLOG' -export const DATA_URL = '/events' - -export const ADD = 'EVENTLOG_ADD' -export const RECEIVE = 'EVENTLOG_RECEIVE' -export const TOGGLE_VISIBILITY = 'EVENTLOG_TOGGLE_VISIBILITY' -export const TOGGLE_FILTER = 'EVENTLOG_TOGGLE_FILTER' -export const UNKNOWN_CMD = 'EVENTLOG_UNKNOWN_CMD' -export const FETCH_ERROR = 'EVENTLOG_FETCH_ERROR' +export const ADD = 'EVENTS_ADD' +export const RECEIVE = 'EVENTS_RECEIVE' +export const TOGGLE_VISIBILITY = 'EVENTS_TOGGLE_VISIBILITY' +export const TOGGLE_FILTER = 'EVENTS_TOGGLE_FILTER' const defaultState = { - logId: 0, visible: false, filters: { debug: false, info: true, web: true }, - list: reduceList(undefined, {}), - view: reduceView(undefined, {}), + ...reduceStore(undefined, {}), } export default function reduce(state = defaultState, action) { @@ -35,27 +26,14 @@ export default function reduce(state = defaultState, action) { return { ...state, filters, - view: reduceView(state.view, viewActions.updateFilter(state.list.data, log => filters[log.level])), + ...reduceStore(state, storeActions.setFilter(log => filters[log.level])) } case ADD: - const item = { - id: state.logId, - message: action.message, - level: action.level, - } - return { - ...state, - logId: state.logId + 1, - list: reduceList(state.list, listActions.add(item)), - view: reduceView(state.view, viewActions.add(item, log => state.filters[log.level])), - } - case RECEIVE: return { ...state, - list: reduceList(state.list, listActions.receive(action.list)), - view: reduceView(state.view, viewActions.receive(action.list, log => state.filters[log.level])), + ...reduceStore(state, storeActions[action.cmd](action.data, log => state.filters[log.level])) } default: @@ -63,58 +41,25 @@ export default function reduce(state = defaultState, action) { } } -/** - * @public - */ export function toggleFilter(filter) { return { type: TOGGLE_FILTER, filter } } -/** - * @public - * - * @todo move to ui? - */ export function toggleVisibility() { return { type: TOGGLE_VISIBILITY } } -/** - * @public - */ +let logId = 1 // client-side log ids are odd export function add(message, level = 'web') { - return { type: ADD, message, level } -} - -/** - * This action creater takes all WebSocket events - * - * @public websocket - */ -export function handleWsMsg(msg) { - switch (msg.cmd) { - - case websocketActions.CMD_ADD: - return add(msg.data.message, msg.data.level) - - case websocketActions.CMD_RESET: - return fetchData() - - default: - return { type: UNKNOWN_CMD, msg } + let data = { + id: logId, + message, + level, + } + logId += 2 + return { + type: ADD, + cmd: "add", + data } -} - -/** - * @public websocket - */ -export function fetchData() { - return msgQueueActions.fetchData(MSG_TYPE) -} - -/** - * @public msgQueue - */ -export function receiveData(list) { - return { type: RECEIVE, list } } |