hyper/lib/containers/header.js
David Gómez 8f28573fc0 Prefer default export to make XO happy (#931)
* Comply with prefer-default-export rule for findBySession function

* Remove XO's prefer-default-export rule

* Comply with prefer-default-export rule for init function

* Comply with prefer-default-export rule for getRootGroups function

* Comply with prefer-default-export rule for INIT constant

* Comply with prefer-default-export rule for isExecutable function

* Fix default export for constants

* Comply with prefer-default-export rule for last function

* Comply with prefer-default-export rule for getColorList function
2016-10-25 14:53:15 +02:00

62 lines
1.7 KiB
JavaScript

/* eslint-disable max-params */
import {createSelector} from 'reselect';
import Header from '../components/header';
import {closeTab, changeTab, maximize, unmaximize} from '../actions/header';
import {connect} from '../utils/plugins';
import getRootGroups from '../selectors';
const isMac = /Mac/.test(navigator.userAgent);
const getSessions = ({sessions}) => sessions.sessions;
const getActiveRootGroup = ({termGroups}) => termGroups.activeRootGroup;
const getActiveSessions = ({termGroups}) => termGroups.activeSessions;
const getActivityMarkers = ({ui}) => ui.activityMarkers;
const getTabs = createSelector(
[getSessions, getRootGroups, getActiveSessions, getActiveRootGroup, getActivityMarkers],
(sessions, rootGroups, activeSessions, activeRootGroup, activityMarkers) => rootGroups.map(t => {
const activeSessionUid = activeSessions[t.uid];
const session = sessions[activeSessionUid];
return {
uid: t.uid,
title: session.title,
isActive: t.uid === activeRootGroup,
hasActivity: activityMarkers[session.uid]
};
})
);
const HeaderContainer = connect(
state => {
return {
// active is an index
isMac,
tabs: getTabs(state),
activeMarkers: state.ui.activityMarkers,
borderColor: state.ui.borderColor,
backgroundColor: state.ui.backgroundColor,
maximized: state.ui.maximized
};
},
dispatch => {
return {
onCloseTab: i => {
dispatch(closeTab(i));
},
onChangeTab: i => {
dispatch(changeTab(i));
},
maximize: () => {
dispatch(maximize());
},
unmaximize: () => {
dispatch(unmaximize());
}
};
}
)(Header, 'Header');
export default HeaderContainer;