Files
SCM-Manager/scm-ui/ui-webapp/src/groups/components/table/GroupMember.tsx

42 lines
955 B
TypeScript
Raw Normal View History

import React from "react";
import { Link } from "react-router-dom";
2019-10-29 16:41:35 +01:00
import styled from "styled-components";
import { Member } from "@scm-manager/ui-types";
2019-10-29 16:44:35 +01:00
import { Icon } from "@scm-manager/ui-components";
2018-07-31 15:09:45 +02:00
type Props = {
member: Member;
2018-07-31 15:09:45 +02:00
};
2019-10-29 16:41:35 +01:00
const StyledMember = styled.li`
display: inline-block;
margin-right: 0.25rem;
padding: 0.25rem 0.75rem;
border: 1px solid #eee;
border-radius: 4px;
`;
2018-07-31 15:09:45 +02:00
export default class GroupMember extends React.Component<Props> {
renderLink(to: string, label: string) {
2019-10-29 16:44:35 +01:00
return (
<Link to={to}>
<Icon name="user" color="inherit" /> {label}
</Link>
);
2018-07-31 15:09:45 +02:00
}
showName(to: any, member: Member) {
if (member._links.self) {
return this.renderLink(to, member.name);
} else {
return member.name;
}
}
2018-07-31 15:09:45 +02:00
render() {
const { member } = this.props;
const to = `/user/${member.name}`;
2019-10-29 16:41:35 +01:00
return <StyledMember>{this.showName(to, member)}</StyledMember>;
2018-07-31 15:09:45 +02:00
}
}