argo-cd
64 строки · 2.6 Кб
1import {DataLoader, Tooltip} from 'argo-ui';
2import * as React from 'react';
3import {Timestamp} from '../../../shared/components/timestamp';
4import {services} from '../../../shared/services';
5
6export const RevisionMetadataPanel = (props: {appName: string; appNamespace: string; type: string; revision: string}) => {
7if (props.type === 'helm') {
8return <React.Fragment />;
9}
10return (
11<DataLoader load={() => services.applications.revisionMetadata(props.appName, props.appNamespace, props.revision)} errorRenderer={() => <div />}>
12{m => (
13<Tooltip
14popperOptions={{
15modifiers: {
16preventOverflow: {
17enabled: false
18},
19hide: {
20enabled: false
21},
22flip: {
23enabled: false
24}
25}
26}}
27content={
28<span>
29{m.author && <React.Fragment>Authored by {m.author}</React.Fragment>}
30<br />
31{m.date && <Timestamp date={m.date} />}
32<br />
33{m.tags && (
34<span>
35Tags: {m.tags}
36<br />
37</span>
38)}
39{m.signatureInfo}
40<br />
41{m.message}
42</span>
43}
44placement='bottom'
45allowHTML={true}>
46<div className='application-status-panel__item-name'>
47{m.author && (
48<div className='application-status-panel__item__row'>
49<div>Author:</div>
50<div>
51{m.author} - {m.signatureInfo}
52</div>
53</div>
54)}
55<div className='application-status-panel__item__row'>
56<div>Comment:</div>
57<div>{m.message?.split('\n')[0].slice(0, 64)}</div>
58</div>
59</div>
60</Tooltip>
61)}
62</DataLoader>
63);
64};
65