Proyectos de Subversion LeadersLinked - SPA

Rev

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

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