1 // Copyright (C) The Arvados Authors. All rights reserved.
3 // SPDX-License-Identifier: AGPL-3.0
5 import { RootState } from 'store/store';
6 import { connect } from 'react-redux';
7 import parse from 'parse-duration';
8 import { MainPanelRoot, MainPanelRootDataProps } from 'views/main-panel/main-panel-root';
9 import { isSystemWorking } from 'store/progress-indicator/progress-indicator-reducer';
10 import { isWorkbenchLoading } from 'store/workbench/workbench-actions';
11 import { LinkAccountPanelStatus } from 'store/link-account-panel/link-account-panel-reducer';
12 import { matchLinkAccountRoute } from 'routes/routes';
14 const mapStateToProps = (state: RootState): MainPanelRootDataProps => {
16 user: state.auth.user,
17 working: isSystemWorking(state.progressIndicator),
18 loading: isWorkbenchLoading(state),
19 buildInfo: state.appInfo.buildInfo,
20 uuidPrefix: state.auth.localCluster,
21 isNotLinking: state.linkAccountPanel.status === LinkAccountPanelStatus.NONE || state.linkAccountPanel.status === LinkAccountPanelStatus.INITIAL,
22 isLinkingPath: state.router.location ? matchLinkAccountRoute(state.router.location.pathname) !== null : false,
23 siteBanner: state.auth.config.clusterConfig.Workbench.SiteName,
24 sessionIdleTimeout: parse(state.auth.config.clusterConfig.Workbench.IdleTimeout, 's') || 0
28 const mapDispatchToProps = null;
30 export const MainPanel = connect(mapStateToProps, mapDispatchToProps)(MainPanelRoot);