diff options
author | Maximilian Hils <git@maximilianhils.com> | 2016-06-02 23:45:36 -0700 |
---|---|---|
committer | Maximilian Hils <git@maximilianhils.com> | 2016-06-02 23:45:36 -0700 |
commit | e31aa39fc28645fe27646b1e6c6f7e876280ed69 (patch) | |
tree | 8536a77b278d8182205e8ba757e1e1f00ac67d76 /web/src/js/ducks/eventLog.js | |
parent | 65fde7f5547f179c80d5858f1ab69583b63fd099 (diff) | |
parent | 5321f15defcef641bf5b7ba39e5c9057d562c5f8 (diff) | |
download | mitmproxy-e31aa39fc28645fe27646b1e6c6f7e876280ed69.tar.gz mitmproxy-e31aa39fc28645fe27646b1e6c6f7e876280ed69.tar.bz2 mitmproxy-e31aa39fc28645fe27646b1e6c6f7e876280ed69.zip |
Merge branch 'redux-ducks'
Diffstat (limited to 'web/src/js/ducks/eventLog.js')
-rw-r--r-- | web/src/js/ducks/eventLog.js | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/web/src/js/ducks/eventLog.js b/web/src/js/ducks/eventLog.js new file mode 100644 index 00000000..2040711c --- /dev/null +++ b/web/src/js/ducks/eventLog.js @@ -0,0 +1,61 @@ +import getList, {ADD} from "./list" +const TOGGLE_FILTER = 'TOGGLE_EVENTLOG_FILTER' +const TOGGLE_VISIBILITY = 'TOGGLE_EVENTLOG_VISIBILITY' +const UPDATE_LIST = "UPDATE_EVENTLOG" + + +const defaultState = { + visible: false, + filter: { + "debug": false, + "info": true, + "web": true + }, + events: getList(), + filteredEvents: [], +} + +export default function reducer(state = defaultState, action) { + switch (action.type) { + case TOGGLE_FILTER: + const filter = { + ...state.filter, + [action.filter]: !state.filter[action.filter] + } + return { + ...state, + filter, + filteredEvents: state.events.list.filter(x => filter[x.level]) + } + case TOGGLE_VISIBILITY: + return { + ...state, + visible: !state.visible + } + case UPDATE_LIST: + const events = getList(state.events, action) + return { + ...state, + events, + filteredEvents: events.list.filter(x => state.filter[x.level]) + } + default: + return state + } +} + + +export function toggleEventLogFilter(filter) { + return {type: TOGGLE_FILTER, filter} +} +export function toggleEventLogVisibility() { + return {type: TOGGLE_VISIBILITY} +} +let id = 0; +export function addLogEntry(message, level = "web") { + return { + type: UPDATE_LIST, + cmd: ADD, + data: {message, level, id: `log-${id++}`} + } +}
\ No newline at end of file |