diff options
Diffstat (limited to 'src/components')
-rw-r--r-- | src/components/Image/BackgroundImage.tsx | 35 | ||||
-rw-r--r-- | src/components/Image/Image.tsx | 14 | ||||
-rw-r--r-- | src/components/PollCard/PollCard.tsx | 29 |
3 files changed, 58 insertions, 20 deletions
diff --git a/src/components/Image/BackgroundImage.tsx b/src/components/Image/BackgroundImage.tsx new file mode 100644 index 0000000..824f667 --- /dev/null +++ b/src/components/Image/BackgroundImage.tsx @@ -0,0 +1,35 @@ +import React from 'react'; +import { makeStyles } from '@material-ui/core/styles'; +import Image from './Image'; + +interface PropTypes { + src?: string; + alt?: string; +} + +const useStyles = makeStyles(theme => ({ + root: { + position: 'absolute', + width: '100%', + height: '100%' + }, + image: { + objectFit: 'cover', + pointerEvents: 'none', + width: '100%', + height: '100%' + } +})); + +const BackgroundImage: React.FC<PropTypes> = ({ src, alt }) => { + const classes = useStyles(); + + return ( + <picture className={classes.root}> + <Image src={src} alt={alt} className={classes.image} /> + </picture> + ) +} + +export default BackgroundImage; + diff --git a/src/components/Image/Image.tsx b/src/components/Image/Image.tsx new file mode 100644 index 0000000..de67c6a --- /dev/null +++ b/src/components/Image/Image.tsx @@ -0,0 +1,14 @@ +import React from 'react'; + +interface PropTypes { + src?: string; + alt?: string; + className?: string; +} + +const Image: React.FC<PropTypes> = ({ src, alt, className }) => { + return <img src={src} alt={alt} className={className} />; +}; + +export default Image; + diff --git a/src/components/PollCard/PollCard.tsx b/src/components/PollCard/PollCard.tsx index 689e872..a4c2144 100644 --- a/src/components/PollCard/PollCard.tsx +++ b/src/components/PollCard/PollCard.tsx @@ -1,15 +1,12 @@ import React from 'react'; import { makeStyles } from '@material-ui/core/styles'; -import { - Card, - CardActionArea, - CardMedia -} from '@material-ui/core/'; +import { Card, CardActionArea } from '@material-ui/core/'; import { Which, Poll } from 'which-types'; import { useSnackbar } from 'notistack'; import PercentageBar from './PercentageBar'; import UserStrip from '../UserStrip/UserStrip'; +import BackgroundImage from '../Image/BackgroundImage'; import { post } from '../../requests'; import { useAuth } from '../../hooks/useAuth'; @@ -27,12 +24,10 @@ const DATE_FORMAT = { }; const useStyles = makeStyles(theme => ({ - images: { + media: { + display: 'flex', height: theme.spacing(50) }, - imagesBlock: { - display: 'flex' - }, rateLine: { position: 'relative', width: '100%', @@ -101,19 +96,13 @@ const PollCard: React.FC<PropTypes> = ({ poll, setPoll }) => { return ( <Card> <UserStrip user={author} info={date} /> - <div className={classes.imagesBlock}> - <CardActionArea onDoubleClick={handleLeft}> - <CardMedia - className={classes.images} - image={left.url} - /> + <div className={classes.media}> + <CardActionArea onDoubleClick={handleLeft} className={classes.media}> + <BackgroundImage src={left.url} /> <PercentageBar value={leftPercentage} which="left" like={vote?.which === 'left'} /> </CardActionArea> - <CardActionArea onDoubleClick={handleRight}> - <CardMedia - className={classes.images} - image={right.url} - /> + <CardActionArea onDoubleClick={handleRight} className={classes.media}> + <BackgroundImage src={right.url} /> <PercentageBar value={rightPercentage} which="right" like={vote?.which === 'right'} /> </CardActionArea> </div> |