Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 2641 | Rev 2849 | 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
 
1580 stevensc 15
import Input from '@app/components/UI/Input'
2642 stevensc 16
import Widget from '@app/components/UI/Widget'
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>
51
        <Box display='flex' alignItems='center' gap={1} mb={1}>
52
          <Avatar
53
            src={image}
54
            sx={{
55
              width: { xs: 40, sm: 50 },
56
              height: { xs: 40, sm: 50 }
57
            }}
58
          />
199 stevensc 59
 
2642 stevensc 60
          <Input
61
            type='text'
62
            readOnly
63
            icon={Create}
64
            placeholder={labels.what_are_you_thinking}
65
            onClick={() => onClickHandler(shareModalTypes.POST)}
66
            sx={{ width: '100%' }}
67
            primary={false}
68
          />
69
        </Box>
199 stevensc 70
 
2642 stevensc 71
        <Box display='flex' gap={1} justifyContent='space-between'>
72
          <Option onClick={() => onClickHandler(shareModalTypes.IMAGE)}>
73
            <Image sx={{ color: '#7405f9 !important' }} />
74
            <Typography variant='body2'>{labels.image}</Typography>
75
          </Option>
1580 stevensc 76
 
2642 stevensc 77
          <Option onClick={() => onClickHandler(shareModalTypes.VIDEO)}>
78
            <Subscriptions sx={{ color: '#E7A33E !important' }} />
79
            <Typography variant='body2'>{labels.video}</Typography>
80
          </Option>
1580 stevensc 81
 
2642 stevensc 82
          <Option onClick={() => onClickHandler(shareModalTypes.FILE)}>
83
            <Article sx={{ color: '#C0C8CD !important' }} />
84
            <Typography variant='body2'>{labels.document}</Typography>
85
          </Option>
1580 stevensc 86
 
2642 stevensc 87
          <Option onClick={() => onClickHandler(shareModalTypes.POST)}>
88
            <PostAdd sx={{ color: '#7FC15E !important' }} />
89
            <Typography variant='body2'>{labels.write}</Typography>
90
          </Option>
91
        </Box>
92
      </Widget.Body>
93
    </Widget>
696 stevensc 94
  )
95
}
199 stevensc 96
 
696 stevensc 97
export default ShareComponent