Skip to content
Snippets Groups Projects
Select Git revision
  • 134ad2d56ecc5013689489b24265f555288870bc
  • main default protected
2 results

WikiAbstract-SolarSystem-13.stog.amr.dot

Blame
  • CompanionWindow.js 1.63 KiB
    import { compose } from 'redux';
    import { connect } from 'react-redux';
    import { withTranslation } from 'react-i18next';
    import { withSize } from 'react-sizeme';
    import { withPlugins } from '../extend/withPlugins';
    import { withRef } from '../extend/withRef';
    import * as actions from '../state/actions';
    import { getCompanionWindow, getThemeDirection, getWindowConfig } from '../state/selectors';
    import { CompanionWindow } from '../components/CompanionWindow';
    
    /**
     * mapStateToProps - to hook up connect
     * @memberof CompanionWindow
     * @private
     */
    const mapStateToProps = (state, { id, windowId }) => {
      const companionWindow = getCompanionWindow(state, { companionWindowId: id });
      const {
        defaultSidebarPanelHeight, defaultSidebarPanelWidth,
      } = getWindowConfig(state, { windowId });
    
      return {
        ...companionWindow,
        defaultSidebarPanelHeight,
        defaultSidebarPanelWidth,
        direction: getThemeDirection(state),
        isDisplayed: (companionWindow
                      && companionWindow.content
                      && companionWindow.content.length > 0),
      };
    };
    
    /**
     * mapDispatchToProps - to hook up connect
     * @memberof CompanionWindow
     * @private
     */
    const mapDispatchToProps = (dispatch, { windowId, id }) => ({
      onCloseClick: () => dispatch(
        actions.removeCompanionWindow(windowId, id),
      ),
      updateCompanionWindow: (...args) => dispatch(
        actions.updateCompanionWindow(windowId, id, ...args),
      ),
    });
    
    const enhance = compose(
      withRef(),
      withTranslation(),
      withSize(),
      connect(mapStateToProps, mapDispatchToProps, null, { forwardRef: true }),
      withPlugins('CompanionWindow'),
    );
    
    export default enhance(CompanionWindow);