Proyectos de Subversion LeadersLinked - SPA

Rev

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