Improve handling on of project url changes
[arvados-workbench2.git] / src / views / project-panel / project-panel.tsx
index 0cd74ff91388b3287f09de80ecac745a3ea6b798..dd61e58a74a6c567a0fc423e72371f98aa46ca0b 100644 (file)
@@ -19,10 +19,9 @@ import { RouteComponentProps } from 'react-router';
 
 export const PROJECT_PANEL_ID = "projectPanel";
 
-type ProjectPanelProps = { onItemOpen: (itemId: string) => void }
+type ProjectPanelProps = { onItemClick: (item: ProjectPanelItem) => void }
     & DispatchProp
-    & WithStyles<CssRules>
-    & RouteComponentProps<{ id: string }>;
+    & WithStyles<CssRules>;
 class ProjectPanel extends React.Component<ProjectPanelProps> {
     render() {
         return <div>
@@ -42,7 +41,7 @@ class ProjectPanel extends React.Component<ProjectPanelProps> {
                 contextActions={contextMenuActions}
                 onColumnToggle={this.toggleColumn}
                 onFiltersChange={this.changeFilters}
-                onRowClick={this.openProject}
+                onRowClick={this.props.onItemClick}
                 onSortToggle={this.toggleSort}
                 onSearch={this.search}
                 onContextAction={this.executeAction}
@@ -55,12 +54,6 @@ class ProjectPanel extends React.Component<ProjectPanelProps> {
         this.props.dispatch(actions.SET_COLUMNS({ id: PROJECT_PANEL_ID, columns }));
     }
 
-    componentWillReceiveProps(nextProps: ProjectPanelProps) {
-        if (this.props.match.params.id !== nextProps.match.params.id) {
-            this.props.onItemOpen(nextProps.match.params.id);
-        }
-    }
-
     toggleColumn = (toggledColumn: DataColumn<ProjectPanelItem>) => {
         this.props.dispatch(actions.TOGGLE_COLUMN({ id: PROJECT_PANEL_ID, columnName: toggledColumn.name }));
     }
@@ -88,10 +81,6 @@ class ProjectPanel extends React.Component<ProjectPanelProps> {
     changeRowsPerPage = (rowsPerPage: number) => {
         this.props.dispatch(actions.SET_ROWS_PER_PAGE({ id: PROJECT_PANEL_ID, rowsPerPage }));
     }
-
-    openProject = (item: ProjectPanelItem) => {
-        this.props.onItemOpen(item.uuid);
-    }
 }
 
 type CssRules = "toolbar" | "button";