5455d5c5975915f6c00651087684a05983b1a182
[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 abstract class AbstractItem<T extends DetailsPanelResource = DetailsPanelResource> {
9     constructor(protected item: T) {}
10
11     getTitle(): string {
12         return this.item.name;
13     }
14
15     abstract getIcon(className?: string): React.ReactElement<any>;
16     abstract buildDetails(): React.ReactElement<any>;
17
18     buildActivity(): React.ReactElement<any> {
19         return <div/>;
20     }
21 }