2019-10-19 16:38:07 +02:00
|
|
|
import React from 'react';
|
|
|
|
|
import { Changeset } from '@scm-manager/ui-types';
|
|
|
|
|
import { ExtensionPoint } from '@scm-manager/ui-extensions';
|
|
|
|
|
import { translate } from 'react-i18next';
|
2018-09-19 16:47:21 +02:00
|
|
|
|
|
|
|
|
type Props = {
|
2019-10-19 16:38:07 +02:00
|
|
|
changeset: Changeset;
|
2019-02-07 10:27:11 +01:00
|
|
|
|
|
|
|
|
// context props
|
2019-10-19 16:38:07 +02:00
|
|
|
t: (p: string) => string;
|
2018-09-19 16:47:21 +02:00
|
|
|
};
|
|
|
|
|
|
2018-12-10 08:45:59 +01:00
|
|
|
class ChangesetAuthor extends React.Component<Props> {
|
2018-09-19 16:47:21 +02:00
|
|
|
render() {
|
2018-10-17 14:11:28 +02:00
|
|
|
const { changeset } = this.props;
|
|
|
|
|
if (!changeset.author) {
|
|
|
|
|
return null;
|
|
|
|
|
}
|
2018-10-08 17:34:11 +02:00
|
|
|
|
2019-02-07 10:27:11 +01:00
|
|
|
const { name, mail } = changeset.author;
|
|
|
|
|
if (mail) {
|
|
|
|
|
return this.withExtensionPoint(this.renderWithMail(name, mail));
|
|
|
|
|
}
|
|
|
|
|
return this.withExtensionPoint(<>{name}</>);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
renderWithMail(name: string, mail: string) {
|
|
|
|
|
const { t } = this.props;
|
2018-09-19 16:47:21 +02:00
|
|
|
return (
|
2019-04-05 14:44:33 +02:00
|
|
|
<a
|
2019-10-19 16:38:07 +02:00
|
|
|
href={'mailto:' + mail}
|
|
|
|
|
title={t('changeset.author.mailto') + ' ' + mail}
|
2019-04-05 14:44:33 +02:00
|
|
|
>
|
2019-02-07 10:27:11 +01:00
|
|
|
{name}
|
|
|
|
|
</a>
|
2018-10-08 17:34:11 +02:00
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
2019-02-07 10:27:11 +01:00
|
|
|
withExtensionPoint(child: any) {
|
|
|
|
|
const { t } = this.props;
|
2019-02-05 18:36:26 +01:00
|
|
|
return (
|
2019-02-07 10:27:11 +01:00
|
|
|
<>
|
2019-10-19 16:38:07 +02:00
|
|
|
{t('changeset.author.prefix')} {child}
|
2019-02-07 10:27:11 +01:00
|
|
|
<ExtensionPoint
|
|
|
|
|
name="changesets.author.suffix"
|
2019-10-19 16:38:07 +02:00
|
|
|
props={{
|
|
|
|
|
changeset: this.props.changeset,
|
|
|
|
|
}}
|
2019-02-07 10:27:11 +01:00
|
|
|
renderAll={true}
|
|
|
|
|
/>
|
2019-04-05 14:44:33 +02:00
|
|
|
</>
|
2019-02-05 18:36:26 +01:00
|
|
|
);
|
2018-09-19 16:47:21 +02:00
|
|
|
}
|
|
|
|
|
}
|
2018-12-10 08:45:59 +01:00
|
|
|
|
2019-10-19 16:38:07 +02:00
|
|
|
export default translate('repos')(ChangesetAuthor);
|