Remove middleware singletons, remove typescript getters/setters from explorer interface
[arvados-workbench2.git] / src / store / data-explorer / data-explorer-middleware.ts
index 80a6d17e38b77cce8bba72c82c8045440719a91d..f299ea130f4a99723749a24130c1aa94a737db7d 100644 (file)
@@ -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)
         });