Load details while navigating using tree or breadcrumbs
authorMichal Klobukowski <michal.klobukowski@contractors.roche.com>
Tue, 10 Jul 2018 12:46:45 +0000 (14:46 +0200)
committerMichal Klobukowski <michal.klobukowski@contractors.roche.com>
Tue, 10 Jul 2018 12:46:45 +0000 (14:46 +0200)
Feature #13777

Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <michal.klobukowski@contractors.roche.com>

src/views/workbench/workbench.tsx

index fac962689c5f0c00c617e367d4585fc462ca2254..959025bfbe8a43f37d52c7d9defd2627f274ee59 100644 (file)
@@ -136,6 +136,7 @@ class Workbench extends React.Component<WorkbenchProps, WorkbenchState> {
     mainAppBarActions: MainAppBarActionProps = {
         onBreadcrumbClick: ({ itemId }: NavBreadcrumb) => {
             this.props.dispatch<any>(setProjectItem(itemId, ItemMode.BOTH));
+            this.props.dispatch<any>(loadDetails(itemId, ResourceKind.Project));
         },
         onSearch: searchText => {
             this.setState({ searchText });
@@ -190,7 +191,10 @@ class Workbench extends React.Component<WorkbenchProps, WorkbenchState> {
                             <ProjectTree
                                 projects={this.props.projects}
                                 toggleOpen={itemId => this.props.dispatch<any>(setProjectItem(itemId, ItemMode.OPEN))}
-                                toggleActive={itemId => this.props.dispatch<any>(setProjectItem(itemId, ItemMode.ACTIVE))}
+                                toggleActive={itemId => {
+                                    this.props.dispatch<any>(setProjectItem(itemId, ItemMode.ACTIVE));
+                                    this.props.dispatch<any>(loadDetails(itemId, ResourceKind.Project));
+                                }}
                             />
                         </SidePanel>
                     </Drawer>}
@@ -200,7 +204,7 @@ class Workbench extends React.Component<WorkbenchProps, WorkbenchState> {
                             <Route path="/projects/:id" render={this.renderProjectPanel} />
                         </Switch>
                     </div>
-                    <DetailsPanel/>
+                    <DetailsPanel />
                 </main>
             </div>
         );
@@ -208,11 +212,12 @@ class Workbench extends React.Component<WorkbenchProps, WorkbenchState> {
 
     renderProjectPanel = (props: RouteComponentProps<{ id: string }>) => <ProjectPanel
         onItemRouteChange={itemId => this.props.dispatch<any>(setProjectItem(itemId, ItemMode.ACTIVE))}
-        onItemClick={item =>  {
+        onItemClick={item => {
             this.props.dispatch<any>(loadDetails(item.uuid, item.kind as ResourceKind));
         }}
         onItemDoubleClick={item => {
             this.props.dispatch<any>(setProjectItem(item.uuid, ItemMode.ACTIVE));
+            this.props.dispatch<any>(loadDetails(item.uuid, ResourceKind.Project));
         }}
         {...props} />