aboutsummaryrefslogtreecommitdiff
path: root/src/components
diff options
context:
space:
mode:
Diffstat (limited to 'src/components')
-rw-r--r--src/components/Image/BackgroundImage.tsx35
-rw-r--r--src/components/Image/Image.tsx14
-rw-r--r--src/components/PollCard/PollCard.tsx29
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>