X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/d8c787ee061c3953628362f5eb6c37123f5ca0f5..10ce16c28de952f6533ca3cc9df909269e3d2a53:/src/store/details-panel/details-panel-action.ts?ds=inline diff --git a/src/store/details-panel/details-panel-action.ts b/src/store/details-panel/details-panel-action.ts index e2d2479b35..ba330f2e41 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, ""); + } +}; +