Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 2917 | Ir a la última revisión | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
3694 stevensc 1
import React from 'react';
2
import { useDispatch, useSelector } from 'react-redux';
3
import { Avatar, Box, Button, Typography, styled } from '@mui/material';
4
import Image from '@mui/icons-material/Image';
5
import Create from '@mui/icons-material/Create';
6
import Article from '@mui/icons-material/Article';
7
import PostAdd from '@mui/icons-material/PostAdd';
8
import Subscriptions from '@mui/icons-material/Subscriptions';
199 stevensc 9
 
3694 stevensc 10
import { openShareModal } from '@app/redux/share-modal/shareModal.actions';
11
import { shareModalTypes } from '@app/redux/share-modal/shareModal.types';
199 stevensc 12
 
3694 stevensc 13
import Widget from '@app/components/UI/Widget';
14
import Input from '@components/UI/inputs/Input';
199 stevensc 15
 
1581 stevensc 16
const Option = styled(Button)(({ theme }) => ({
1580 stevensc 17
  borderRadius: '50%',
18
  cursor: 'pointer',
19
  padding: 5,
1585 stevensc 20
  minWidth: 'auto',
1582 stevensc 21
  span: {
1580 stevensc 22
    display: 'none'
23
  },
24
  '&:hover': {
25
    backgroundColor: 'whitesmoke'
26
  },
27
  [theme.breakpoints.up('md')]: {
28
    alignItems: 'center',
29
    borderRadius: theme.shape.borderRadius,
30
    display: 'inline-flex',
31
    gap: 1,
32
    flex: 1,
1582 stevensc 33
    span: {
1580 stevensc 34
      display: 'initial'
35
    }
199 stevensc 36
  }
3694 stevensc 37
}));
199 stevensc 38
 
696 stevensc 39
const ShareComponent = ({ feedType, postUrl = '', image = '' }) => {
3694 stevensc 40
  const labels = useSelector(({ intl }) => intl.labels);
41
  const dispatch = useDispatch();
199 stevensc 42
 
3694 stevensc 43
  const onClickHandler = (postType) => dispatch(openShareModal(postUrl, postType, feedType));
199 stevensc 44
 
45
  return (
2642 stevensc 46
    <Widget>
47
      <Widget.Body>
2849 stevensc 48
        <Box
49
          sx={{
50
            display: 'flex',
51
            alignItems: 'center',
2850 stevensc 52
            marginBottom: 0.5,
2849 stevensc 53
            gap: 0.5
54
          }}
55
        >
2642 stevensc 56
          <Avatar
57
            src={image}
58
            sx={{
59
              width: { xs: 40, sm: 50 },
60
              height: { xs: 40, sm: 50 }
61
            }}
62
          />
199 stevensc 63
 
2642 stevensc 64
          <Input
65
            type='text'
66
            placeholder={labels.what_are_you_thinking}
67
            onClick={() => onClickHandler(shareModalTypes.POST)}
2864 stevensc 68
            icon={<Create />}
2867 stevensc 69
            variant='search'
2864 stevensc 70
            readOnly
2642 stevensc 71
          />
72
        </Box>
199 stevensc 73
 
2849 stevensc 74
        <Box
75
          sx={{
76
            display: 'flex',
77
            justifyContent: 'space-between',
78
            gap: 0.5
79
          }}
80
        >
2642 stevensc 81
          <Option onClick={() => onClickHandler(shareModalTypes.IMAGE)}>
82
            <Image sx={{ color: '#7405f9 !important' }} />
2917 stevensc 83
            <Typography variant='overline'>{labels.image}</Typography>
2642 stevensc 84
          </Option>
1580 stevensc 85
 
2642 stevensc 86
          <Option onClick={() => onClickHandler(shareModalTypes.VIDEO)}>
87
            <Subscriptions sx={{ color: '#E7A33E !important' }} />
2917 stevensc 88
            <Typography variant='overline'>{labels.video}</Typography>
2642 stevensc 89
          </Option>
1580 stevensc 90
 
2642 stevensc 91
          <Option onClick={() => onClickHandler(shareModalTypes.FILE)}>
92
            <Article sx={{ color: '#C0C8CD !important' }} />
2917 stevensc 93
            <Typography variant='overline'>{labels.document}</Typography>
2642 stevensc 94
          </Option>
1580 stevensc 95
 
2642 stevensc 96
          <Option onClick={() => onClickHandler(shareModalTypes.POST)}>
97
            <PostAdd sx={{ color: '#7FC15E !important' }} />
2917 stevensc 98
            <Typography variant='overline'>{labels.write}</Typography>
2642 stevensc 99
          </Option>
100
        </Box>
101
      </Widget.Body>
102
    </Widget>
3694 stevensc 103
  );
104
};
199 stevensc 105
 
3694 stevensc 106
export default ShareComponent;