aboutsummaryrefslogtreecommitdiffstats
path: root/web/src/js/components/EventLog.jsx
diff options
context:
space:
mode:
Diffstat (limited to 'web/src/js/components/EventLog.jsx')
-rw-r--r--web/src/js/components/EventLog.jsx41
1 files changed, 41 insertions, 0 deletions
diff --git a/web/src/js/components/EventLog.jsx b/web/src/js/components/EventLog.jsx
new file mode 100644
index 00000000..3de38954
--- /dev/null
+++ b/web/src/js/components/EventLog.jsx
@@ -0,0 +1,41 @@
+import React, { PropTypes } from 'react'
+import { bindActionCreators } from 'redux'
+import { connect } from 'react-redux'
+import { toggleEventLogFilter, toggleEventLogVisibility } from '../ducks/eventLog'
+import { ToggleButton } from './common'
+import EventList from './EventLog/EventList'
+
+EventLog.propTypes = {
+ filters: PropTypes.object.isRequired,
+ events: PropTypes.array.isRequired,
+ onToggleFilter: PropTypes.func.isRequired,
+ onClose: PropTypes.func.isRequired
+}
+
+function EventLog({ filters, events, onToggleFilter, onClose }) {
+ return (
+ <div className="eventlog">
+ <div>
+ Eventlog
+ <div className="pull-right">
+ {['debug', 'info', 'web'].map(type => (
+ <ToggleButton text={type} checked={filters[type]} onToggle={() => onToggleFilter(type)}/>
+ ))}
+ <i onClick={onClose} className="fa fa-close"></i>
+ </div>
+ </div>
+ <EventList events={events} />
+ </div>
+ )
+}
+
+export default connect(
+ state => ({
+ filters: state.eventLog.filter,
+ events: state.eventLog.filteredEvents,
+ }),
+ dispatch => bindActionCreators({
+ onClose: toggleEventLogVisibility,
+ onToggleFilter: toggleEventLogFilter,
+ }, dispatch)
+)(EventLog)