Move sorting function to separate function
authorPawel Kromplewski <pawel.kromplewski@contractors.roche.com>
Tue, 13 Nov 2018 11:45:08 +0000 (12:45 +0100)
committerPawel Kromplewski <pawel.kromplewski@contractors.roche.com>
Tue, 13 Nov 2018 11:45:08 +0000 (12:45 +0100)
Feature #14421

Arvados-DCO-1.1-Signed-off-by: Pawel Kromplewski <pawel.kromplewski@contractors.roche.com>

src/store/data-explorer/data-explorer-reducer.ts
src/store/favorite-panel/favorite-panel-middleware-service.ts
src/store/project-panel/project-panel-middleware-service.ts
src/store/search-results-panel/search-results-middleware-service.ts
src/store/shared-with-me-panel/shared-with-me-middleware-service.ts
src/store/trash-panel/trash-panel-middleware-service.ts
src/store/workflow-panel/workflow-middleware-service.ts

index 141d1a9f20657e1a4a462dbe32b8dd583f817341..d3a4389193c73d4adb6b2c52f6c891ce089e8211 100644 (file)
@@ -2,7 +2,7 @@
 //
 // SPDX-License-Identifier: AGPL-3.0
 
-import { DataColumn, toggleSortDirection, resetSortDirection } from "~/components/data-table/data-column";
+import { DataColumn, toggleSortDirection, resetSortDirection, SortDirection } from "~/components/data-table/data-column";
 import { dataExplorerActions, DataExplorerAction } from "./data-explorer-action";
 import { DataTableFilterItem } from "~/components/data-table-filters/data-table-filters";
 import { DataColumns } from "~/components/data-table/data-table";
@@ -65,6 +65,9 @@ export const dataExplorerReducer = (state: DataExplorerState = {}, action: DataE
 export const getDataExplorer = (state: DataExplorerState, id: string) =>
     state[id] || initialDataExplorer;
 
+export const getSortColumns = (dataExplorer: DataExplorer) => dataExplorer.columns.find((c: any) =>
+    !!c.sortDirection && c.sortDirection !== SortDirection.NONE);
+
 const update = (state: DataExplorerState, id: string, updateFn: (dataExplorer: DataExplorer) => DataExplorer) =>
     ({ ...state, [id]: updateFn(getDataExplorer(state, id)) });
 
index 76b65de2aa3afc770da01cf024309cb669172706..6a83a200aaf62e30feaa39528981d4fc86630d13 100644 (file)
@@ -20,6 +20,7 @@ import { snackbarActions, SnackbarKind } from '~/store/snackbar/snackbar-actions
 import { progressIndicatorActions } from '~/store/progress-indicator/progress-indicator-actions.ts';
 import { getDataExplorer } from "~/store/data-explorer/data-explorer-reducer";
 import { loadMissingProcessesInformation } from "~/store/project-panel/project-panel-middleware-service";
+import { getSortColumns } from "~/store/data-explorer/data-explorer-reducer";
 
 export class FavoritePanelMiddlewareService extends DataExplorerMiddlewareService {
     constructor(private services: ServiceRepository, id: string) {
@@ -32,7 +33,7 @@ export class FavoritePanelMiddlewareService extends DataExplorerMiddlewareServic
             api.dispatch(favoritesPanelDataExplorerIsNotSet());
         } else {
             const columns = dataExplorer.columns as DataColumns<string, FavoritePanelFilter>;
-            const sortColumn = dataExplorer.columns.find(c => !!c.sortDirection && c.sortDirection !== SortDirection.NONE);
+            const sortColumn = getSortColumns(dataExplorer);
             const typeFilters = this.getColumnFilters(columns, FavoritePanelColumnNames.TYPE);
 
             const linkOrder = new OrderBuilder<LinkResource>();
index c34045aa74c1a2f3644a3184c9d7b88d798d9735..14e7f80b88fa8a0b197578e0a8c6b3190c52bde3 100644 (file)
@@ -31,6 +31,7 @@ import { ResourceKind } from '~/models/resource';
 import { getResource } from "~/store/resources/resources";
 import { CollectionResource } from "~/models/collection";
 import { resourcesDataActions } from "~/store/resources-data/resources-data-actions";
+import { getSortColumns } from "~/store/data-explorer/data-explorer-reducer";
 
 export class ProjectPanelMiddlewareService extends DataExplorerMiddlewareService {
     constructor(private services: ServiceRepository, id: string) {
@@ -126,7 +127,7 @@ export const getFilters = (dataExplorer: DataExplorer) => {
 };
 
 export const getOrder = (dataExplorer: DataExplorer) => {
-    const sortColumn = dataExplorer.columns.find(c => !!c.sortDirection && c.sortDirection !== SortDirection.NONE);
+    const sortColumn = getSortColumns(dataExplorer);
     const order = new OrderBuilder<ProjectResource>();
     if (sortColumn) {
         const sortDirection = sortColumn && sortColumn.sortDirection === SortDirection.ASC
index d64ebd01f9c093917bc7ded30a759b9d06712209..1300ffb87e3128384305d76fce1c9dfd30803952 100644 (file)
@@ -16,6 +16,7 @@ import { GroupContentsResource, GroupContentsResourcePrefix } from "~/services/g
 import { ListResults } from '~/services/common-service/common-resource-service';
 import { searchResultsPanelActions } from '~/store/search-results-panel/search-results-panel-actions';
 import { getFilters } from '~/store/search-bar/search-bar-actions';
+import { getSortColumns } from "~/store/data-explorer/data-explorer-reducer";
 
 export class SearchResultsMiddlewareService extends DataExplorerMiddlewareService {
     constructor(private services: ServiceRepository, id: string) {
@@ -44,7 +45,7 @@ export const getParams = (dataExplorer: DataExplorer, searchValue: string) => ({
 });
 
 const getOrder = (dataExplorer: DataExplorer) => {
-    const sortColumn = dataExplorer.columns.find(c => !!c.sortDirection && c.sortDirection !== SortDirection.NONE);
+    const sortColumn = getSortColumns(dataExplorer);
     const order = new OrderBuilder<GroupContentsResource>();
     if (sortColumn) {
         const sortDirection = sortColumn && sortColumn.sortDirection === SortDirection.ASC
index ad9bbd939dd9e08e95092c3ea7472b67a467e562..1ad1a4ddf5d7c6f357f48e4fed5fd4cee406a62b 100644 (file)
@@ -19,6 +19,7 @@ import { OrderBuilder, OrderDirection } from '~/services/api/order-builder';
 import { ProjectResource } from '~/models/project';
 import { ProjectPanelColumnNames } from '~/views/project-panel/project-panel';
 import { FilterBuilder } from '~/services/api/filter-builder';
+import { getSortColumns } from "~/store/data-explorer/data-explorer-reducer";
 
 export class SharedWithMeMiddlewareService extends DataExplorerMiddlewareService {
     constructor(private services: ServiceRepository, id: string) {
@@ -59,7 +60,7 @@ export const getFilters = (dataExplorer: DataExplorer) => {
 };
 
 export const getOrder = (dataExplorer: DataExplorer) => {
-    const sortColumn = dataExplorer.columns.find(c => !!c.sortDirection && c.sortDirection !== SortDirection.NONE);
+    const sortColumn = getSortColumns(dataExplorer);
     const order = new OrderBuilder<ProjectResource>();
     if (sortColumn) {
         const sortDirection = sortColumn && sortColumn.sortDirection === SortDirection.ASC
index 5166f6192057b4b42b1c413122c6791b991c1077..fba4adf680df8993350c508b548fba7a8b0b9d57 100644 (file)
@@ -22,6 +22,7 @@ import { updateFavorites } from "~/store/favorites/favorites-actions";
 import { snackbarActions, SnackbarKind } from "~/store/snackbar/snackbar-actions";
 import { updateResources } from "~/store/resources/resources-actions";
 import { progressIndicatorActions } from "~/store/progress-indicator/progress-indicator-actions";
+import { getSortColumns } from "~/store/data-explorer/data-explorer-reducer";
 
 export class TrashPanelMiddlewareService extends DataExplorerMiddlewareService {
     constructor(private services: ServiceRepository, id: string) {
@@ -31,7 +32,7 @@ export class TrashPanelMiddlewareService extends DataExplorerMiddlewareService {
     async requestItems(api: MiddlewareAPI<Dispatch, RootState>) {
         const dataExplorer = api.getState().dataExplorer[this.getId()];
         const columns = dataExplorer.columns as DataColumns<string, TrashPanelFilter>;
-        const sortColumn = dataExplorer.columns.find(c => !!c.sortDirection && c.sortDirection !== SortDirection.NONE);
+        const sortColumn = getSortColumns(dataExplorer);
         const typeFilters = this.getColumnFilters(columns, TrashPanelColumnNames.TYPE);
 
         const order = new OrderBuilder<ProjectResource>();
index 0aa1d515134215fcf0bc8b98132f5ff507928d44..687700fd5ff32282c7eaaf1497bc417ecb95a7d8 100644 (file)
@@ -16,6 +16,7 @@ import { OrderDirection, OrderBuilder } from '~/services/api/order-builder';
 import { WorkflowResource } from '~/models/workflow';
 import { ListResults } from '~/services/common-service/common-resource-service';
 import { workflowPanelActions } from './workflow-panel-actions';
+import { getSortColumns } from "~/store/data-explorer/data-explorer-reducer";
 
 export class WorkflowMiddlewareService extends DataExplorerMiddlewareService {
     constructor(private services: ServiceRepository, id: string) {
@@ -49,7 +50,7 @@ export const getFilters = (dataExplorer: DataExplorer) => {
 };
 
 export const getOrder = (dataExplorer: DataExplorer) => {
-    const sortColumn = dataExplorer.columns.find(c => !!c.sortDirection && c.sortDirection !== SortDirection.NONE);
+    const sortColumn = getSortColumns(dataExplorer);
     const order = new OrderBuilder<WorkflowResource>();
     if (sortColumn) {
         const sortDirection = sortColumn && sortColumn.sortDirection === SortDirection.ASC