Files
astuto/app/javascript/components/Post/LikeList.tsx

37 lines
1018 B
TypeScript
Raw Normal View History

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">
<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">
{ 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;