Proyectos de Subversion LeadersLinked - SPA

Rev

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

Rev Autor Línea Nro. Línea
1233 stevensc 1
import React, { useEffect } from 'react'
696 stevensc 2
import { openShareModal } from '../../../../redux/share-modal/shareModal.actions'
3
import { shareModalTypes } from '../../../../redux/share-modal/shareModal.types'
4
import { useDispatch, useSelector } from 'react-redux'
5
import styled from 'styled-components'
199 stevensc 6
 
696 stevensc 7
import Avatar from '@mui/material/Avatar'
8
import ImageIcon from '@mui/icons-material/Image'
9
import CreateIcon from '@mui/icons-material/Create'
10
import ArticleIcon from '@mui/icons-material/Article'
11
import PostAddIcon from '@mui/icons-material/PostAdd'
12
import SubscriptionsIcon from '@mui/icons-material/Subscriptions'
199 stevensc 13
 
696 stevensc 14
import Input from '../../../UI/Input'
15
import ShareOption from './ShareOption'
199 stevensc 16
 
696 stevensc 17
import styles from './ShareComponent.module.scss'
1233 stevensc 18
import InputForm from 'components/UI/form/InputForm'
19
import { useForm } from 'react-hook-form'
199 stevensc 20
 
21
const StyledInput = styled(Input)`
22
  border: 1px solid lightgray;
23
  background-color: #fff;
24
  border-radius: 30px;
25
  padding: 5px;
26
  padding-left: 1rem;
27
  flex: 1;
28
  cursor: pointer;
29
 
30
  &:hover {
31
    background-color: rgba(0, 0, 0, 0.08);
32
  }
696 stevensc 33
`
199 stevensc 34
 
696 stevensc 35
const ShareComponent = ({ feedType, postUrl = '', image = '' }) => {
36
  const labels = useSelector(({ intl }) => intl.labels)
37
  const dispatch = useDispatch()
199 stevensc 38
 
1234 stevensc 39
  const { control, watch } = useForm()
1233 stevensc 40
 
199 stevensc 41
  const onClickHandler = (postType) => {
696 stevensc 42
    dispatch(openShareModal(postUrl, postType, feedType))
43
  }
199 stevensc 44
 
1233 stevensc 45
  useEffect(() => {
1234 stevensc 46
    const subscription = watch((value, { name, type }) =>
47
      console.log(value, name, type)
48
    )
1233 stevensc 49
 
1234 stevensc 50
    return () => subscription.unsubscribe()
51
  }, [watch])
52
 
199 stevensc 53
  return (
54
    <div className={styles.share__container}>
55
      <div className={styles.input__container}>
332 stevensc 56
        <Avatar src={image} className={styles.user_image} />
199 stevensc 57
 
58
        <StyledInput
696 stevensc 59
          type='text'
199 stevensc 60
          readOnly
61
          icon={CreateIcon}
62
          placeholder={labels.what_are_you_thinking}
63
          onClick={() => onClickHandler(shareModalTypes.POST)}
64
        />
1233 stevensc 65
 
66
        <InputForm control={control} name='text' />
199 stevensc 67
      </div>
68
 
69
      <div className={styles.share__options}>
70
        <ShareOption
71
          icon={ImageIcon}
72
          title={labels.image}
696 stevensc 73
          color='#7405f9'
199 stevensc 74
          onClick={() => onClickHandler(shareModalTypes.IMAGE)}
75
        />
76
        <ShareOption
77
          icon={SubscriptionsIcon}
78
          title={labels.video}
696 stevensc 79
          color='#E7A33E'
199 stevensc 80
          onClick={() => onClickHandler(shareModalTypes.VIDEO)}
81
        />
82
        <ShareOption
83
          icon={ArticleIcon}
84
          title={labels.document}
696 stevensc 85
          color='#C0C8CD'
199 stevensc 86
          onClick={() => onClickHandler(shareModalTypes.FILE)}
87
        />
88
        <ShareOption
89
          icon={PostAddIcon}
90
          title={labels.write}
696 stevensc 91
          color='#7FC15E'
199 stevensc 92
          onClick={() => onClickHandler(shareModalTypes.POST)}
93
        />
94
      </div>
95
    </div>
696 stevensc 96
  )
97
}
199 stevensc 98
 
696 stevensc 99
export default ShareComponent