// Package imports. import PropTypes from 'prop-types'; import React from 'react'; import ImmutablePropTypes from 'react-immutable-proptypes'; // Actions. import { changeComposing } from 'flavours/glitch/actions/compose'; import { openModal } from 'flavours/glitch/actions/modal'; import { changeSearch, clearSearch, showSearch, submitSearch, } from 'flavours/glitch/actions/search'; // Components. import DrawerHeader from './header'; import DrawerPager from './pager'; import DrawerResults from './results'; import DrawerSearch from './search'; // Utils. import { me } from 'flavours/glitch/util/initial_state'; import { wrap } from 'flavours/glitch/util/redux_helpers'; // State mapping. const mapStateToProps = state => ({ account: state.getIn(['accounts', me]), columns: state.getIn(['settings', 'columns']), isComposing: state.getIn(['compose', 'is_composing']), results: state.getIn(['search', 'results']), searchHidden: state.getIn(['search', 'hidden']), searchValue: state.getIn(['search', 'value']), submitted: state.getIn(['search', 'submitted']), }); // Dispatch mapping. const mapDispatchToProps = dispatch => ({ change (value) { dispatch(changeSearch(value)); }, changeComposingOff () { dispatch(changeComposing(false)); }, changeComposingOn () { dispatch(changeComposing(true)); }, clear () { dispatch(clearSearch()); }, show () { dispatch(showSearch()); }, submit () { dispatch(submitSearch()); }, openSettings () { dispatch(openModal('SETTINGS', {})); }, }); // The component. class Drawer extends React.Component { // Constructor. constructor (props) { super(props); } // Rendering. render () { const { dispatch: { change, changeComposingOff, changeComposingOn, clear, openSettings, show, submit, }, intl, multiColumn, state: { account, columns, isComposing, results, searchHidden, searchValue, submitted, }, } = this.props; // The result. return (