mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-07 14:05:44 +01:00
53 lines
1.2 KiB
JavaScript
53 lines
1.2 KiB
JavaScript
//@flow
|
|
import React from "react";
|
|
import type { Changeset } from "@scm-manager/ui-types";
|
|
import { ExtensionPoint } from "@scm-manager/ui-extensions";
|
|
import {translate} from "react-i18next";
|
|
|
|
type Props = {
|
|
changeset: Changeset,
|
|
|
|
// context props
|
|
t: (string) => string
|
|
};
|
|
|
|
class ChangesetAuthor extends React.Component<Props> {
|
|
render() {
|
|
const { changeset } = this.props;
|
|
if (!changeset.author) {
|
|
return null;
|
|
}
|
|
|
|
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;
|
|
return (
|
|
<a href={"mailto: " + mail} title={t("changesets.author.mailto") + " " + mail}>
|
|
{name}
|
|
</a>
|
|
);
|
|
}
|
|
|
|
withExtensionPoint(child: any) {
|
|
const { t } = this.props;
|
|
return (
|
|
<>
|
|
{t("changesets.author.prefix")} {child}
|
|
<ExtensionPoint
|
|
name="changesets.author.suffix"
|
|
props={{ changeset: this.props.changeset }}
|
|
renderAll={true}
|
|
/>
|
|
</>
|
|
);
|
|
}
|
|
}
|
|
|
|
export default translate("repos")(ChangesetAuthor);
|