[ARVADOS-WORKBENCH2] updated: 1.1.4-449-g6d13a68

Git user git at public.curoverse.com
Mon Jul 30 02:45:07 EDT 2018


Summary of changes:
 src/store/data-explorer/data-explorer-action.ts    |  4 +-
 .../data-explorer-middleware-service.ts            | 27 +++++++-----
 .../data-explorer/data-explorer-middleware.test.ts | 49 ++++++++++------------
 .../data-explorer/data-explorer-middleware.ts      | 24 +++++------
 src/store/favorite-panel/favorite-panel-action.ts  |  4 +-
 .../favorite-panel-middleware-service.ts           | 22 ++--------
 .../favorite-panel/favorite-panel-middleware.ts    |  8 ----
 src/store/project-panel/project-panel-action.ts    |  4 +-
 .../project-panel-middleware-service.ts            | 24 +++--------
 .../project-panel/project-panel-middleware.ts      |  8 ----
 src/store/store.ts                                 | 15 +++++--
 src/views/favorite-panel/favorite-panel.tsx        |  4 +-
 src/views/project-panel/project-panel.tsx          |  6 +--
 13 files changed, 82 insertions(+), 117 deletions(-)
 delete mode 100644 src/store/favorite-panel/favorite-panel-middleware.ts
 delete mode 100644 src/store/project-panel/project-panel-middleware.ts

       via  6d13a683ff5ce887bfd4c20b0bdbd18298dd86b2 (commit)
      from  2b53e4a7bf1516c1b4fe9d42abd15cdc865cd87d (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.


commit 6d13a683ff5ce887bfd4c20b0bdbd18298dd86b2
Author: Daniel Kos <daniel.kos at contractors.roche.com>
Date:   Mon Jul 30 08:45:00 2018 +0200

    Remove middleware singletons, remove typescript getters/setters from explorer interface
    
    Feature #13887
    
    Arvados-DCO-1.1-Signed-off-by: Daniel Kos <daniel.kos at contractors.roche.com>

diff --git a/src/store/data-explorer/data-explorer-action.ts b/src/store/data-explorer/data-explorer-action.ts
index 4ce371c..6dd7af9 100644
--- a/src/store/data-explorer/data-explorer-action.ts
+++ b/src/store/data-explorer/data-explorer-action.ts
@@ -5,7 +5,6 @@
 import { default as unionize, ofType, UnionOf } from "unionize";
 import { DataTableFilterItem } from "../../components/data-table-filters/data-table-filters";
 import { DataColumns } from "../../components/data-table/data-table";
-import { DataExplorerMiddlewareService } from "./data-explorer-middleware-service";
 
 export const dataExplorerActions = unionize({
     RESET_PAGINATION: ofType<{ id: string }>(),
@@ -22,8 +21,7 @@ export const dataExplorerActions = unionize({
 
 export type DataExplorerAction = UnionOf<typeof dataExplorerActions>;
 
-export const bindDataExplorerActions = ({ Id: id }: DataExplorerMiddlewareService) => ({
-    ...dataExplorerActions,
+export const bindDataExplorerActions = (id: string) => ({
     RESET_PAGINATION: () =>
         dataExplorerActions.RESET_PAGINATION({ id }),
     REQUEST_ITEMS: () =>
diff --git a/src/store/data-explorer/data-explorer-middleware-service.ts b/src/store/data-explorer/data-explorer-middleware-service.ts
index acd15b3..18091f0 100644
--- a/src/store/data-explorer/data-explorer-middleware-service.ts
+++ b/src/store/data-explorer/data-explorer-middleware-service.ts
@@ -3,21 +3,28 @@
 // SPDX-License-Identifier: AGPL-3.0
 
 import { getDataExplorer } from "./data-explorer-reducer";
-import { MiddlewareAPI } from "../../../node_modules/redux";
+import { MiddlewareAPI } from "redux";
 import { DataColumns } from "../../components/data-table/data-table";
 
 export abstract class DataExplorerMiddlewareService {
+    protected api: MiddlewareAPI;
+    protected readonly id: string;
+
+    protected constructor(id: string) {
+        this.id = id;
+    }
 
-    abstract get Id(): string;
-    abstract get Columns(): DataColumns<any>;
+    public getId() {
+        return this.id;
+    }
+
+    abstract getColumns(): DataColumns<any>;
     abstract requestItems(api: MiddlewareAPI): void;
 
-    protected api: MiddlewareAPI;
-    set Api(value: MiddlewareAPI) {
-        this.api = value;
+    setApi(api: MiddlewareAPI) {
+        this.api = api;
     }
-    get DataExplorer() {
-        const { dataExplorer } = this.api.getState();
-        return getDataExplorer(dataExplorer, this.Id);
+    getDataExplorer() {
+        return getDataExplorer(this.api.getState(), this.id);
     }
-}
\ No newline at end of file
+}
diff --git a/src/store/data-explorer/data-explorer-middleware.test.ts b/src/store/data-explorer/data-explorer-middleware.test.ts
index 412e703..f66819f 100644
--- a/src/store/data-explorer/data-explorer-middleware.test.ts
+++ b/src/store/data-explorer/data-explorer-middleware.test.ts
@@ -45,7 +45,7 @@ describe("DataExplorerMiddleware", () => {
         const next = jest.fn();
         dataExplorerMiddleware(service)(api)(next);
         expect(next)
-            .toHaveBeenCalledWith(dataExplorerActions.SET_COLUMNS({ id: service.Id, columns: service.Columns }));
+            .toHaveBeenCalledWith(dataExplorerActions.SET_COLUMNS({ id: service.getId(), columns: service.getColumns() }));
     });
 
     it("handles only actions that are identified by service id", () => {
@@ -109,7 +109,7 @@ describe("DataExplorerMiddleware", () => {
         };
         const next = jest.fn();
         const middleware = dataExplorerMiddleware(service)(api)(next);
-        middleware(dataExplorerActions.SET_PAGE({ id: service.Id, page: 0 }));
+        middleware(dataExplorerActions.SET_PAGE({ id: service.getId(), page: 0 }));
         expect(api.dispatch).toHaveBeenCalledTimes(1);
     });
 
@@ -127,7 +127,7 @@ describe("DataExplorerMiddleware", () => {
         };
         const next = jest.fn();
         const middleware = dataExplorerMiddleware(service)(api)(next);
-        middleware(dataExplorerActions.SET_ROWS_PER_PAGE({ id: service.Id, rowsPerPage: 0 }));
+        middleware(dataExplorerActions.SET_ROWS_PER_PAGE({ id: service.getId(), rowsPerPage: 0 }));
         expect(api.dispatch).toHaveBeenCalledTimes(1);
     });
 
@@ -145,7 +145,7 @@ describe("DataExplorerMiddleware", () => {
         };
         const next = jest.fn();
         const middleware = dataExplorerMiddleware(service)(api)(next);
-        middleware(dataExplorerActions.SET_FILTERS({ id: service.Id, columnName: "", filters: [] }));
+        middleware(dataExplorerActions.SET_FILTERS({ id: service.getId(), columnName: "", filters: [] }));
         expect(api.dispatch).toHaveBeenCalledTimes(2);
     });
 
@@ -163,14 +163,14 @@ describe("DataExplorerMiddleware", () => {
         };
         const next = jest.fn();
         const middleware = dataExplorerMiddleware(service)(api)(next);
-        middleware(dataExplorerActions.SET_PAGE({ id: service.Id, page: 0 }));
-        middleware(dataExplorerActions.SET_ROWS_PER_PAGE({ id: service.Id, rowsPerPage: 0 }));
-        middleware(dataExplorerActions.SET_FILTERS({ id: service.Id, columnName: "", filters: [] }));
-        middleware(dataExplorerActions.TOGGLE_SORT({ id: service.Id, columnName: "" }));
-        middleware(dataExplorerActions.TOGGLE_COLUMN({ id: service.Id, columnName: "" }));
-        middleware(dataExplorerActions.REQUEST_ITEMS({ id: service.Id }));
-        middleware(dataExplorerActions.SET_SEARCH_VALUE({ id: service.Id, searchValue: "" }));
-        middleware(dataExplorerActions.RESET_PAGINATION({ id: service.Id }));
+        middleware(dataExplorerActions.SET_PAGE({ id: service.getId(), page: 0 }));
+        middleware(dataExplorerActions.SET_ROWS_PER_PAGE({ id: service.getId(), rowsPerPage: 0 }));
+        middleware(dataExplorerActions.SET_FILTERS({ id: service.getId(), columnName: "", filters: [] }));
+        middleware(dataExplorerActions.TOGGLE_SORT({ id: service.getId(), columnName: "" }));
+        middleware(dataExplorerActions.TOGGLE_COLUMN({ id: service.getId(), columnName: "" }));
+        middleware(dataExplorerActions.REQUEST_ITEMS({ id: service.getId() }));
+        middleware(dataExplorerActions.SET_SEARCH_VALUE({ id: service.getId(), searchValue: "" }));
+        middleware(dataExplorerActions.RESET_PAGINATION({ id: service.getId() }));
         expect(api.dispatch).toHaveBeenCalledTimes(7);
     });
 
@@ -188,7 +188,7 @@ describe("DataExplorerMiddleware", () => {
         };
         const next = jest.fn();
         const middleware = dataExplorerMiddleware(service)(api)(next);
-        middleware(dataExplorerActions.TOGGLE_SORT({ id: service.Id, columnName: "" }));
+        middleware(dataExplorerActions.TOGGLE_SORT({ id: service.getId(), columnName: "" }));
         expect(api.dispatch).toHaveBeenCalledTimes(1);
     });
 
@@ -206,7 +206,7 @@ describe("DataExplorerMiddleware", () => {
         };
         const next = jest.fn();
         const middleware = dataExplorerMiddleware(service)(api)(next);
-        middleware(dataExplorerActions.SET_SEARCH_VALUE({ id: service.Id, searchValue: "" }));
+        middleware(dataExplorerActions.SET_SEARCH_VALUE({ id: service.getId(), searchValue: "" }));
         expect(api.dispatch).toHaveBeenCalledTimes(2);
     });
 
@@ -224,9 +224,9 @@ describe("DataExplorerMiddleware", () => {
         };
         const next = jest.fn();
         const middleware = dataExplorerMiddleware(service)(api)(next);
-        middleware(dataExplorerActions.SET_COLUMNS({ id: service.Id, columns: [] }));
-        middleware(dataExplorerActions.SET_ITEMS({ id: service.Id, items: [], rowsPerPage: 0, itemsAvailable: 0, page: 0 }));
-        middleware(dataExplorerActions.TOGGLE_COLUMN({ id: service.Id, columnName: "" }));
+        middleware(dataExplorerActions.SET_COLUMNS({ id: service.getId(), columns: [] }));
+        middleware(dataExplorerActions.SET_ITEMS({ id: service.getId(), items: [], rowsPerPage: 0, itemsAvailable: 0, page: 0 }));
+        middleware(dataExplorerActions.TOGGLE_COLUMN({ id: service.getId(), columnName: "" }));
         expect(api.dispatch).toHaveBeenCalledTimes(0);
         expect(next).toHaveBeenCalledTimes(4);
     });
@@ -240,14 +240,10 @@ class ServiceMock extends DataExplorerMiddlewareService {
         requestItems: (api: MiddlewareAPI) => void;
         setApi: () => void;
     }) {
-        super();
+        super(config.id);
     }
 
-    get Id() {
-        return this.config.id;
-    }
-
-    get Columns() {
+    getColumns() {
         return this.config.columns;
     }
 
@@ -255,9 +251,8 @@ class ServiceMock extends DataExplorerMiddlewareService {
         this.config.requestItems(this.api);
     }
 
-    set Api(value: MiddlewareAPI) {
+    setApi(api: MiddlewareAPI) {
         this.config.setApi();
-        this.api = value;
+        this.api = api;
     }
-
-}
\ No newline at end of file
+}
diff --git a/src/store/data-explorer/data-explorer-middleware.ts b/src/store/data-explorer/data-explorer-middleware.ts
index 80a6d17..f299ea1 100644
--- a/src/store/data-explorer/data-explorer-middleware.ts
+++ b/src/store/data-explorer/data-explorer-middleware.ts
@@ -7,37 +7,37 @@ import { Middleware } from "../../../node_modules/redux";
 import { dataExplorerActions } from "./data-explorer-action";
 import { DataExplorerMiddlewareService } from "./data-explorer-middleware-service";
 
-export const dataExplorerMiddleware = (service: DataExplorerMiddlewareService): Middleware => api => next => {
-    service.Api = api;
-    next(dataExplorerActions.SET_COLUMNS({ id: service.Id, columns: service.Columns }));
+export const dataExplorerMiddleware = (dataExplorerService: DataExplorerMiddlewareService): Middleware => api => next => {
+    dataExplorerService.setApi(api);
+    next(dataExplorerActions.SET_COLUMNS({ id: dataExplorerService.getId(), columns: dataExplorerService.getColumns() }));
     return action => {
         const handleAction = <T extends { id: string }>(handler: (data: T) => void) =>
             (data: T) => {
                 next(action);
-                if (data.id === service.Id) {
+                if (data.id === dataExplorerService.getId()) {
                     handler(data);
                 }
             };
         dataExplorerActions.match(action, {
             SET_PAGE: handleAction(() => {
-                api.dispatch(dataExplorerActions.REQUEST_ITEMS({ id: service.Id }));
+                api.dispatch(dataExplorerActions.REQUEST_ITEMS({ id: dataExplorerService.getId() }));
             }),
             SET_ROWS_PER_PAGE: handleAction(() => {
-                api.dispatch(dataExplorerActions.REQUEST_ITEMS({ id: service.Id }));
+                api.dispatch(dataExplorerActions.REQUEST_ITEMS({ id: dataExplorerService.getId() }));
             }),
             SET_FILTERS: handleAction(() => {
-                api.dispatch(dataExplorerActions.RESET_PAGINATION({ id: service.Id }));
-                api.dispatch(dataExplorerActions.REQUEST_ITEMS({ id: service.Id }));
+                api.dispatch(dataExplorerActions.RESET_PAGINATION({ id: dataExplorerService.getId() }));
+                api.dispatch(dataExplorerActions.REQUEST_ITEMS({ id: dataExplorerService.getId() }));
             }),
             TOGGLE_SORT: handleAction(() => {
-                api.dispatch(dataExplorerActions.REQUEST_ITEMS({ id: service.Id }));
+                api.dispatch(dataExplorerActions.REQUEST_ITEMS({ id: dataExplorerService.getId() }));
             }),
             SET_SEARCH_VALUE: handleAction(() => {
-                api.dispatch(dataExplorerActions.RESET_PAGINATION({ id: service.Id }));
-                api.dispatch(dataExplorerActions.REQUEST_ITEMS({ id: service.Id }));
+                api.dispatch(dataExplorerActions.RESET_PAGINATION({ id: dataExplorerService.getId() }));
+                api.dispatch(dataExplorerActions.REQUEST_ITEMS({ id: dataExplorerService.getId() }));
             }),
             REQUEST_ITEMS: handleAction(() => {
-                service.requestItems(api);
+                dataExplorerService.requestItems(api);
             }),
             default: () => next(action)
         });
diff --git a/src/store/favorite-panel/favorite-panel-action.ts b/src/store/favorite-panel/favorite-panel-action.ts
index 48dd19c..aa1ec8d 100644
--- a/src/store/favorite-panel/favorite-panel-action.ts
+++ b/src/store/favorite-panel/favorite-panel-action.ts
@@ -3,6 +3,6 @@
 // SPDX-License-Identifier: AGPL-3.0
 
 import { bindDataExplorerActions } from "../data-explorer/data-explorer-action";
-import { FavoritePanelMiddlewareService } from "./favorite-panel-middleware-service";
 
-export const favoritePanelActions = bindDataExplorerActions(FavoritePanelMiddlewareService.getInstance());
+export const FAVORITE_PANEL_ID = "favoritePanel";
+export const favoritePanelActions = bindDataExplorerActions(FAVORITE_PANEL_ID);
diff --git a/src/store/favorite-panel/favorite-panel-middleware-service.ts b/src/store/favorite-panel/favorite-panel-middleware-service.ts
index a6d0e63..f688d41 100644
--- a/src/store/favorite-panel/favorite-panel-middleware-service.ts
+++ b/src/store/favorite-panel/favorite-panel-middleware-service.ts
@@ -4,7 +4,6 @@
 
 import { DataExplorerMiddlewareService } from "../data-explorer/data-explorer-middleware-service";
 import { columns, FavoritePanelFilter, FavoritePanelColumnNames } from "../../views/favorite-panel/favorite-panel";
-import { getDataExplorer } from "../data-explorer/data-explorer-reducer";
 import { RootState } from "../store";
 import { DataColumns } from "../../components/data-table/data-table";
 import { FavoritePanelItem, resourceToDataItem } from "../../views/favorite-panel/favorite-panel-item";
@@ -17,30 +16,17 @@ import { checkPresenceInFavorites } from "../favorites/favorites-actions";
 import { favoritePanelActions } from "./favorite-panel-action";
 
 export class FavoritePanelMiddlewareService extends DataExplorerMiddlewareService {
-
-    private static instance: FavoritePanelMiddlewareService;
-
-    static getInstance() {
-        return FavoritePanelMiddlewareService.instance
-            ? FavoritePanelMiddlewareService.instance
-            : new FavoritePanelMiddlewareService();
-    }
-
-    private constructor() {
-        super();
-    }
-
-    get Id() {
-        return "favoritePanel";
+    constructor(id: string) {
+        super(id);
     }
 
-    get Columns() {
+    getColumns() {
         return columns;
     }
 
     requestItems() {
         const state = this.api.getState() as RootState;
-        const dataExplorer = this.DataExplorer;
+        const dataExplorer = this.getDataExplorer();
         const columns = dataExplorer.columns as DataColumns<FavoritePanelItem, FavoritePanelFilter>;
         const sortColumn = dataExplorer.columns.find(({ sortDirection }) => Boolean(sortDirection && sortDirection !== "none"));
         const typeFilters = getColumnFilters(columns, FavoritePanelColumnNames.TYPE);
diff --git a/src/store/favorite-panel/favorite-panel-middleware.ts b/src/store/favorite-panel/favorite-panel-middleware.ts
deleted file mode 100644
index f54cc72..0000000
--- a/src/store/favorite-panel/favorite-panel-middleware.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-// Copyright (C) The Arvados Authors. All rights reserved.
-//
-// SPDX-License-Identifier: AGPL-3.0
-
-import { dataExplorerMiddleware } from "../data-explorer/data-explorer-middleware";
-import { FavoritePanelMiddlewareService } from "./favorite-panel-middleware-service";
-
-export const favoritePanelMiddleware = dataExplorerMiddleware(FavoritePanelMiddlewareService.getInstance());
\ No newline at end of file
diff --git a/src/store/project-panel/project-panel-action.ts b/src/store/project-panel/project-panel-action.ts
index e0d5824..33cedd7 100644
--- a/src/store/project-panel/project-panel-action.ts
+++ b/src/store/project-panel/project-panel-action.ts
@@ -3,6 +3,6 @@
 // SPDX-License-Identifier: AGPL-3.0
 
 import { bindDataExplorerActions } from "../data-explorer/data-explorer-action";
-import { ProjectPanelMiddlewareService } from "./project-panel-middleware-service";
 
-export const projectPanelActions = bindDataExplorerActions(ProjectPanelMiddlewareService.getInstance());
+export const PROJECT_PANEL_ID = "projectPanel";
+export const projectPanelActions = bindDataExplorerActions(PROJECT_PANEL_ID);
diff --git a/src/store/project-panel/project-panel-middleware-service.ts b/src/store/project-panel/project-panel-middleware-service.ts
index 2cbc810..fd3009e 100644
--- a/src/store/project-panel/project-panel-middleware-service.ts
+++ b/src/store/project-panel/project-panel-middleware-service.ts
@@ -4,7 +4,6 @@
 
 import { DataExplorerMiddlewareService } from "../data-explorer/data-explorer-middleware-service";
 import { columns, ProjectPanelColumnNames, ProjectPanelFilter } from "../../views/project-panel/project-panel";
-import { getDataExplorer } from "../data-explorer/data-explorer-reducer";
 import { RootState } from "../store";
 import { DataColumns } from "../../components/data-table/data-table";
 import { groupsService } from "../../services/services";
@@ -18,30 +17,17 @@ import { checkPresenceInFavorites } from "../favorites/favorites-actions";
 import { projectPanelActions } from "./project-panel-action";
 
 export class ProjectPanelMiddlewareService extends DataExplorerMiddlewareService {
-
-    private static instance: ProjectPanelMiddlewareService;
-
-    static getInstance() {
-        return ProjectPanelMiddlewareService.instance
-            ? ProjectPanelMiddlewareService.instance
-            : new ProjectPanelMiddlewareService();
-    }
-
-    private constructor() {
-        super();
-    }
-
-    get Id() {
-        return "projectPanel";
+    constructor(id: string) {
+        super(id);
     }
 
-    get Columns() {
+    getColumns() {
         return columns;
     }
 
     requestItems() {
         const state = this.api.getState() as RootState;
-        const dataExplorer = this.DataExplorer;
+        const dataExplorer = this.getDataExplorer();
         const columns = dataExplorer.columns as DataColumns<ProjectPanelItem, ProjectPanelFilter>;
         const typeFilters = getColumnFilters(columns, ProjectPanelColumnNames.TYPE);
         const statusFilters = getColumnFilters(columns, ProjectPanelColumnNames.STATUS);
@@ -110,4 +96,4 @@ const getSearchFilter = (searchValue: string) =>
             FilterBuilder.create<GroupContentsResource>(GroupContentsResourcePrefix.PROJECT)]
             .reduce((acc, b) =>
                 acc.concat(b.addILike("name", searchValue)), FilterBuilder.create())
-        : FilterBuilder.create();
\ No newline at end of file
+        : FilterBuilder.create();
diff --git a/src/store/project-panel/project-panel-middleware.ts b/src/store/project-panel/project-panel-middleware.ts
deleted file mode 100644
index 4417d15..0000000
--- a/src/store/project-panel/project-panel-middleware.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-// Copyright (C) The Arvados Authors. All rights reserved.
-//
-// SPDX-License-Identifier: AGPL-3.0
-
-import { dataExplorerMiddleware } from "../data-explorer/data-explorer-middleware";
-import { ProjectPanelMiddlewareService } from "./project-panel-middleware-service";
-
-export const projectPanelMiddleware = dataExplorerMiddleware(ProjectPanelMiddlewareService.getInstance());
diff --git a/src/store/store.ts b/src/store/store.ts
index ae07744..e84c17f 100644
--- a/src/store/store.ts
+++ b/src/store/store.ts
@@ -11,13 +11,16 @@ import { projectsReducer, ProjectState } from "./project/project-reducer";
 import { sidePanelReducer, SidePanelState } from './side-panel/side-panel-reducer';
 import { authReducer, AuthState } from "./auth/auth-reducer";
 import { dataExplorerReducer, DataExplorerState } from './data-explorer/data-explorer-reducer';
-import { projectPanelMiddleware } from './project-panel/project-panel-middleware';
 import { detailsPanelReducer, DetailsPanelState } from './details-panel/details-panel-reducer';
 import { contextMenuReducer, ContextMenuState } from './context-menu/context-menu-reducer';
-import { favoritePanelMiddleware } from "./favorite-panel/favorite-panel-middleware";
 import { reducer as formReducer } from 'redux-form';
 import { FavoritesState, favoritesReducer } from './favorites/favorites-reducer';
 import { snackbarReducer, SnackbarState } from './snackbar/snackbar-reducer';
+import { dataExplorerMiddleware } from "./data-explorer/data-explorer-middleware";
+import { FAVORITE_PANEL_ID } from "./favorite-panel/favorite-panel-action";
+import { PROJECT_PANEL_ID } from "./project-panel/project-panel-action";
+import { ProjectPanelMiddlewareService } from "./project-panel/project-panel-middleware-service";
+import { FavoritePanelMiddlewareService } from "./favorite-panel/favorite-panel-middleware-service";
 
 const composeEnhancers =
     (process.env.NODE_ENV === 'development' &&
@@ -49,8 +52,14 @@ const rootReducer = combineReducers({
     snackbar: snackbarReducer,
 });
 
-
 export function configureStore(history: History) {
+    const projectPanelMiddleware = dataExplorerMiddleware(
+        new ProjectPanelMiddlewareService(PROJECT_PANEL_ID)
+    );
+    const favoritePanelMiddleware = dataExplorerMiddleware(
+        new FavoritePanelMiddlewareService(FAVORITE_PANEL_ID)
+    );
+
     const middlewares: Middleware[] = [
         routerMiddleware(history),
         thunkMiddleware,
diff --git a/src/views/favorite-panel/favorite-panel.tsx b/src/views/favorite-panel/favorite-panel.tsx
index e126de3..00985e8 100644
--- a/src/views/favorite-panel/favorite-panel.tsx
+++ b/src/views/favorite-panel/favorite-panel.tsx
@@ -17,7 +17,7 @@ import { ResourceKind } from '../../models/resource';
 import { resourceLabel } from '../../common/labels';
 import { ArvadosTheme } from '../../common/custom-theme';
 import { renderName, renderStatus, renderType, renderOwner, renderFileSize, renderDate } from '../../views-components/data-explorer/renderers';
-import { FavoritePanelMiddlewareService } from '../../store/favorite-panel/favorite-panel-middleware-service';
+import { FAVORITE_PANEL_ID } from "../../store/favorite-panel/favorite-panel-action";
 
 type CssRules = "toolbar" | "button";
 
@@ -139,7 +139,7 @@ export const FavoritePanel = withStyles(styles)(
         class extends React.Component<FavoritePanelProps> {
             render() {
                 return <DataExplorer
-                    id={FavoritePanelMiddlewareService.getInstance().Id}
+                    id={FAVORITE_PANEL_ID}
                     onRowClick={this.props.onItemClick}
                     onRowDoubleClick={this.props.onItemDoubleClick}
                     onContextMenu={this.props.onContextMenu}
diff --git a/src/views/project-panel/project-panel.tsx b/src/views/project-panel/project-panel.tsx
index 2654dd1..13cc67e 100644
--- a/src/views/project-panel/project-panel.tsx
+++ b/src/views/project-panel/project-panel.tsx
@@ -17,7 +17,7 @@ import { ResourceKind } from '../../models/resource';
 import { resourceLabel } from '../../common/labels';
 import { ArvadosTheme } from '../../common/custom-theme';
 import { renderName, renderStatus, renderType, renderOwner, renderFileSize, renderDate } from '../../views-components/data-explorer/renderers';
-import { ProjectPanelMiddlewareService } from '../../store/project-panel/project-panel-middleware-service';
+import { PROJECT_PANEL_ID } from "../../store/project-panel/project-panel-action";
 
 type CssRules = "toolbar" | "button";
 
@@ -152,7 +152,7 @@ export const ProjectPanel = withStyles(styles)(
                         </Button>
                     </div>
                     <DataExplorer
-                        id={ProjectPanelMiddlewareService.getInstance().Id}
+                        id={PROJECT_PANEL_ID}
                         onRowClick={this.props.onItemClick}
                         onRowDoubleClick={this.props.onItemDoubleClick}
                         onContextMenu={this.props.onContextMenu}
@@ -170,4 +170,4 @@ export const ProjectPanel = withStyles(styles)(
             }
         }
     )
-);
\ No newline at end of file
+);

-----------------------------------------------------------------------


hooks/post-receive
-- 




More information about the arvados-commits mailing list