2019-09-30 16:54:37 +02:00
|
|
|
import * as React from 'react';
|
2019-09-30 18:10:51 +02:00
|
|
|
import Gravatar from 'react-gravatar';
|
2019-09-30 16:54:37 +02:00
|
|
|
|
|
|
|
|
import ILike from '../../interfaces/ILike';
|
|
|
|
|
import Spinner from '../shared/Spinner';
|
2019-09-30 18:10:51 +02:00
|
|
|
import {
|
|
|
|
|
TitleText,
|
|
|
|
|
DangerText,
|
|
|
|
|
CenteredMutedText
|
|
|
|
|
} from '../shared/CustomTexts';
|
2019-09-30 16:54:37 +02:00
|
|
|
|
|
|
|
|
interface Props {
|
|
|
|
|
likes: Array<ILike>;
|
|
|
|
|
areLoading: boolean;
|
|
|
|
|
error: string;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const LikeList = ({ likes, areLoading, error}: Props) => (
|
2019-09-30 18:10:51 +02:00
|
|
|
<div className="likeListContainer">
|
2019-10-16 20:24:42 +02:00
|
|
|
<TitleText>People who liked</TitleText>
|
2019-09-30 16:54:37 +02:00
|
|
|
{ areLoading ? <Spinner /> : null }
|
|
|
|
|
{ error ? <DangerText>{error}</DangerText> : null }
|
2019-09-30 18:10:51 +02:00
|
|
|
<div className="likeList">
|
2019-10-16 20:24:42 +02:00
|
|
|
{ likes.length === 0 ? <CenteredMutedText>There are no likes yet.</CenteredMutedText> : null }
|
2019-09-30 18:10:51 +02:00
|
|
|
{
|
|
|
|
|
likes.map((like, i) => (
|
|
|
|
|
<div className="likeListItem" key={i}>
|
|
|
|
|
<Gravatar email={like.email} size={28} className="gravatar" />
|
|
|
|
|
<span className="likeListItemName">{like.fullName}</span>
|
|
|
|
|
</div>
|
|
|
|
|
))
|
|
|
|
|
}
|
|
|
|
|
</div>
|
2019-09-30 16:54:37 +02:00
|
|
|
</div>
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
export default LikeList;
|