X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/7622261116e685cad4af9cf6a4d1dd9c58cd1605..6d5feaa5d8ab29f14efd5d6d60154248a1c14c73:/src/store/details-panel/details-panel-action.ts diff --git a/src/store/details-panel/details-panel-action.ts b/src/store/details-panel/details-panel-action.ts index e2d2479b..ba330f2e 100644 --- a/src/store/details-panel/details-panel-action.ts +++ b/src/store/details-panel/details-panel-action.ts @@ -3,33 +3,39 @@ // SPDX-License-Identifier: AGPL-3.0 import { unionize, ofType, UnionOf } from "unionize"; -import { Resource } from "../../common/api/common-resource-service"; -import { ResourceKind } from "../../models/kinds"; +import { CommonResourceService } from "../../common/api/common-resource-service"; import { Dispatch } from "redux"; -import { groupsService } from "../../services/services"; +import { serverApi } from "../../common/api/server-api"; +import { Resource, ResourceKind } from "../../models/resource"; -const actions = unionize({ +export const detailsPanelActions = unionize({ TOGGLE_DETAILS_PANEL: ofType<{}>(), LOAD_DETAILS: ofType<{ uuid: string, kind: ResourceKind }>(), LOAD_DETAILS_SUCCESS: ofType<{ item: Resource }>(), }, { tag: 'type', value: 'payload' }); -export default actions; - -export type DetailsPanelAction = UnionOf; +export type DetailsPanelAction = UnionOf; export const loadDetails = (uuid: string, kind: ResourceKind) => (dispatch: Dispatch) => { - dispatch(actions.LOAD_DETAILS({ uuid, kind })); - if (kind === ResourceKind.Project) { - groupsService - .get(uuid) - .then(project => { - dispatch(actions.LOAD_DETAILS_SUCCESS({ item: project })); - }); - } - + dispatch(detailsPanelActions.LOAD_DETAILS({ uuid, kind })); + getService(kind) + .get(uuid) + .then(project => { + dispatch(detailsPanelActions.LOAD_DETAILS_SUCCESS({ item: project })); + }); }; +const getService = (kind: ResourceKind) => { + switch (kind) { + case ResourceKind.Project: + return new CommonResourceService(serverApi, "groups"); + case ResourceKind.Collection: + return new CommonResourceService(serverApi, "collections"); + default: + return new CommonResourceService(serverApi, ""); + } +}; +