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 key={type} 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)