X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/ae85f32b449562726c0fd3d30447c799069a0bbb..f0d519637c997df11d5b1a1b32b3d9e4a2872325:/src/store/favorite-panel/favorite-panel-middleware-service.ts diff --git a/src/store/favorite-panel/favorite-panel-middleware-service.ts b/src/store/favorite-panel/favorite-panel-middleware-service.ts index dfbcfd2ecd..653184104c 100644 --- a/src/store/favorite-panel/favorite-panel-middleware-service.ts +++ b/src/store/favorite-panel/favorite-panel-middleware-service.ts @@ -3,38 +3,34 @@ // SPDX-License-Identifier: AGPL-3.0 import { DataExplorerMiddlewareService } from "../data-explorer/data-explorer-middleware-service"; -import { columns, FavoritePanelFilter, FavoritePanelColumnNames } from "../../views/favorite-panel/favorite-panel"; +import { FavoritePanelFilter, FavoritePanelColumnNames } from "~/views/favorite-panel/favorite-panel"; import { RootState } from "../store"; -import { DataColumns } from "../../components/data-table/data-table"; -import { FavoritePanelItem, resourceToDataItem } from "../../views/favorite-panel/favorite-panel-item"; -import { FavoriteOrderBuilder } from "../../services/favorite-service/favorite-order-builder"; -import { favoriteService, authService } from "../../services/services"; -import { SortDirection } from "../../components/data-table/data-column"; -import { FilterBuilder } from "../../common/api/filter-builder"; -import { LinkResource } from "../../models/link"; +import { DataColumns } from "~/components/data-table/data-table"; +import { FavoritePanelItem, resourceToDataItem } from "~/views/favorite-panel/favorite-panel-item"; +import { FavoriteOrderBuilder } from "~/services/favorite-service/favorite-order-builder"; +import { ServiceRepository } from "~/services/services"; +import { SortDirection } from "~/components/data-table/data-column"; +import { FilterBuilder } from "~/common/api/filter-builder"; import { checkPresenceInFavorites } from "../favorites/favorites-actions"; import { favoritePanelActions } from "./favorite-panel-action"; -import { MiddlewareAPI } from "../../../node_modules/redux"; +import { Dispatch, MiddlewareAPI } from "redux"; export class FavoritePanelMiddlewareService extends DataExplorerMiddlewareService { - constructor(id: string) { + constructor(private services: ServiceRepository, id: string) { super(id); } - getColumns() { - return columns; - } - - requestItems(api: MiddlewareAPI) { - const state = api.getState() as RootState; - const dataExplorer = this.getDataExplorer(api); + requestItems(api: MiddlewareAPI) { + const dataExplorer = api.getState().dataExplorer[this.getId()]; const columns = dataExplorer.columns as DataColumns; - const sortColumn = dataExplorer.columns.find(({ sortDirection }) => Boolean(sortDirection && sortDirection !== "none")); + const sortColumn = dataExplorer.columns.find( + ({ sortDirection }) => sortDirection !== undefined && sortDirection !== "none" + ); const typeFilters = getColumnFilters(columns, FavoritePanelColumnNames.TYPE); const order = FavoriteOrderBuilder.create(); if (typeFilters.length > 0) { - favoriteService - .list(authService.getUuid()!, { + this.services.favoriteService + .list(this.services.authService.getUuid()!, { limit: dataExplorer.rowsPerPage, offset: dataExplorer.page * dataExplorer.rowsPerPage, order: sortColumn!.name === FavoritePanelColumnNames.NAME @@ -43,7 +39,7 @@ export class FavoritePanelMiddlewareService extends DataExplorerMiddlewareServic : order.addAsc("name") : order, filters: FilterBuilder - .create() + .create() .addIsA("headUuid", typeFilters.map(filter => filter.type)) .addILike("name", dataExplorer.searchValue) })