import { openProjectCreateDialog } from '~/store/projects/project-create-actions';
import { openCollectionCreateDialog } from '~/store/collections/collection-create-actions';
import { matchProjectRoute } from '~/routes/routes';
+import { navigateToRunProcess } from '~/store/navigation/navigation-action';
type CssRules = 'button' | 'menuItem' | 'icon';
interface SidePanelDataProps {
currentItemId: string;
- showButton: boolean;
+ buttonVisible: boolean;
}
interface SidePanelState {
const transformOrigin: PopoverOrigin = {
vertical: -50,
- horizontal: 45
+ horizontal: 0
};
-const checkButtonVisibility = ({ router }: RootState) => {
+const isButtonVisible = ({ router }: RootState) => {
const pathname = router.location ? router.location.pathname : '';
const match = matchProjectRoute(pathname);
return !!match;
export const SidePanelButton = withStyles(styles)(
connect((state: RootState) => ({
currentItemId: getProperty(PROJECT_PANEL_CURRENT_UUID)(state.properties),
- showButton: checkButtonVisibility(state)
+ buttonVisible: isButtonVisible(state)
}))(
class extends React.Component<SidePanelProps> {
};
render() {
- const { classes, showButton } = this.props;
+ const { classes, buttonVisible } = this.props;
const { anchorEl } = this.state;
return <Toolbar>
- {showButton && <Grid container>
- <Grid container item xs alignItems="center" justify="center">
+ {buttonVisible && <Grid container>
+ <Grid container item xs alignItems="center" justify="flex-start">
<Button variant="contained" color="primary" size="small" className={classes.button}
aria-owns={anchorEl ? 'aside-menu-list' : undefined}
aria-haspopup="true"
<MenuItem className={classes.menuItem} onClick={this.handleNewCollectionClick}>
<CollectionIcon className={classes.icon} /> New collection
</MenuItem>
- <MenuItem className={classes.menuItem}>
+ <MenuItem className={classes.menuItem} onClick={this.handleRunProcessClick}>
<ProcessIcon className={classes.icon} /> Run a process
</MenuItem>
<MenuItem className={classes.menuItem} onClick={this.handleNewProjectClick}>
this.props.dispatch<any>(openProjectCreateDialog(this.props.currentItemId));
}
+ handleRunProcessClick = () => {
+ this.props.dispatch<any>(navigateToRunProcess);
+ }
+
handleNewCollectionClick = () => {
this.props.dispatch<any>(openCollectionCreateDialog(this.props.currentItemId));
}