aboutsummaryrefslogtreecommitdiff
path: root/src/components/ReviewCard/ReviewCard.tsx
blob: ccf051c39122aa964dfe37da23ea8ce79f69f052 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
import React from 'react';
import { makeStyles } from '@material-ui/core/styles';
import {
  Card,
  CardContent,
  Typography,
  Divider,
  Chip
} from '@material-ui/core/';
import { Rating } from '@material-ui/lab';
import { Feedback } from 'which-types';

import UserStrip from '../UserStrip/UserStrip';

interface PropTypes {
  feedback: Feedback;
}

const useStyles = makeStyles(theme => ({
  root: {
    margin: theme.spacing(4, 0, 1, 0),
    position: 'relative'
  },
  versionChip: {
    position: 'absolute',
    right: theme.spacing(2),
    top: theme.spacing(2)
  }
}));

const ReviewCard: React.FC<PropTypes> = ({ feedback }) => {
  const classes = useStyles();

  return (
    <Card className={classes.root} elevation={2}>
      <UserStrip
        user={feedback.author}
        info={<Rating value={feedback.score} readOnly size="small" />}
      />
      <Chip
        size="small"
        variant="outlined"
        label={feedback.version}
        className={classes.versionChip}
      />
      {feedback.contents && (
        <>
          <Divider />
          <CardContent>
            <Typography>
              {feedback.contents}
            </Typography>
          </CardContent>
        </>
      )}
    </Card>
  );
};

export default ReviewCard;