d5e46a26ebec246f8dd50a1266775b218e2284d7
[arvados-workbench2.git] / src / components / details-panel-factory / items / abstract-item.tsx
1 // Copyright (C) The Arvados Authors. All rights reserved.
2 //
3 // SPDX-License-Identifier: AGPL-3.0
4
5 import * as React from 'react';
6 import { DetailsPanelResource } from '../../../views-components/details-panel/details-panel';
7
8 export default abstract class AbstractItem<T extends DetailsPanelResource = DetailsPanelResource> {
9
10     constructor(protected item: T) {}
11
12     getTitle(): string {
13         return this.item.name;
14     }
15   
16     abstract getIcon(className?: string): React.ReactElement<any>;
17     abstract buildDetails(): React.ReactElement<any>;
18     
19     buildActivity(): React.ReactElement<any> {
20         return <div/>;
21     }
22 }