Creation dialog with redux-form validation
[arvados-workbench2.git] / src / components / details-panel-factory / details-panel-factory.tsx
1 // Copyright (C) The Arvados Authors. All rights reserved.
2 //
3 // SPDX-License-Identifier: AGPL-3.0
4
5 import ProjectItem from './items/project-item';
6 import CollectionItem from './items/collection-item';
7 import ProcessItem from './items/process-item';
8 import AbstractItem from './items/abstract-item';
9 import EmptyItem from './items/empty-item';
10 import { DetailsPanelResource } from '../../views-components/details-panel/details-panel';
11 import { EmptyResource } from '../../models/empty';
12 import { ResourceKind } from '../../models/resource';
13
14 export default class DetailsPanelFactory {
15     static createItem(res: DetailsPanelResource): AbstractItem {
16         switch (res.kind) {
17             case ResourceKind.Project:
18                 return new ProjectItem(res);
19             case ResourceKind.Collection:
20                 return new CollectionItem(res);
21             case ResourceKind.Process:
22                 return new ProcessItem(res);
23             default:
24                 return new EmptyItem(res as EmptyResource);
25         }
26     }
27 }