68aa5787fa7ac637359467738b06283a8437ad67
[arvados-workbench2.git] / src / views-components / details-panel / details-data.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 { DetailsResource } from "~/models/details";
7
8 export abstract class DetailsData<T extends DetailsResource = DetailsResource> {
9     constructor(protected item: T) { }
10
11     getTitle(): string {
12         return this.item.name || 'Projects';
13     }
14
15     getTabLabels(): string[] {
16         return ['Details'];
17     }
18
19     abstract getIcon(className?: string): React.ReactElement<any>;
20     abstract getDetails(tabNr?: number): React.ReactElement<any>;
21 }