16627: Added refresh button to main contet bar
[arvados-workbench2.git] / src / views-components / main-content-bar / main-content-bar.tsx
index c0014d005134bc52a706dc4c770baf00ae4907dc..c8565d62b1844c70e3c0eec7459b02e497dc9a28 100644 (file)
@@ -3,15 +3,27 @@
 // SPDX-License-Identifier: AGPL-3.0
 
 import * as React from "react";
-import { Toolbar, IconButton, Tooltip, Grid } from "@material-ui/core";
+
+import { Toolbar, StyleRulesCallback, IconButton, Tooltip, Grid, WithStyles, withStyles } from "@material-ui/core";
 import { DetailsIcon } from "~/components/icon/icon";
 import { Breadcrumbs } from "~/views-components/breadcrumbs/breadcrumbs";
 import { connect } from 'react-redux';
 import { RootState } from '~/store/store';
 import * as Routes from '~/routes/routes';
 import { toggleDetailsPanel } from '~/store/details-panel/details-panel-action';
+import RefreshButton from "~/components/refresh-button/refresh-button";
+
+type CssRules = "infoTooltip";
+
+const styles: StyleRulesCallback<CssRules> = theme => ({
+    infoTooltip: {
+        marginTop: '-10px',
+        marginLeft: '10px',
+    }
+});
 
 interface MainContentBarProps {
+    onRefreshPage: () => void;
     onDetailsPanelToggle: () => void;
     buttonVisible: boolean;
 }
@@ -27,22 +39,30 @@ const isButtonVisible = ({ router }: RootState) => {
         !Routes.matchMyAccountRoute(pathname) && !Routes.matchLinksRoute(pathname);
 };
 
-export const MainContentBar = connect((state: RootState) => ({
-    buttonVisible: isButtonVisible(state)
-}), {
-        onDetailsPanelToggle: toggleDetailsPanel
-    })((props: MainContentBarProps) =>
-        <Toolbar>
-            <Grid container>
-                <Grid container item xs alignItems="center">
-                    <Breadcrumbs />
-                </Grid>
-                <Grid item>
-                    {props.buttonVisible && <Tooltip title="Additional Info">
-                        <IconButton color="inherit" onClick={props.onDetailsPanelToggle}>
-                            <DetailsIcon />
-                        </IconButton>
-                    </Tooltip>}
-                </Grid>
-            </Grid>
-        </Toolbar>);
+export const MainContentBar =
+    connect((state: RootState) => ({
+        buttonVisible: isButtonVisible(state)
+    }), {
+        onDetailsPanelToggle: toggleDetailsPanel,
+    })(
+        withStyles(styles)(
+            (props: MainContentBarProps & WithStyles<CssRules> & any) =>
+                <Toolbar>
+                    <Grid container>
+                        <Grid item xs alignItems="center">
+                            <Breadcrumbs />
+                        </Grid>
+                        <Grid item>
+                            <RefreshButton />
+                        </Grid>
+                        <Grid item>
+                            {props.buttonVisible && <Tooltip title="Additional Info">
+                                <IconButton color="inherit" className={props.classes.infoTooltip} onClick={props.onDetailsPanelToggle}>
+                                    <DetailsIcon />
+                                </IconButton>
+                            </Tooltip>}
+                        </Grid>
+                    </Grid>
+                </Toolbar>
+        )
+    );