Proyectos de Subversion LeadersLinked - SPA

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
851 stevensc 1
import { styled } from 'styled-components'
5 stevensc 2
import React, { useState } from 'react'
3
import { axios } from '../../../utils'
4
import { useSelector } from 'react-redux'
5
 
6
import { addNotification } from '../../../redux/notification/notification.actions'
7
 
8
import Spinner from '../../UI/EmptySection'
1507 stevensc 9
import WidgetWrapper from '../WidgetLayout'
5 stevensc 10
 
1507 stevensc 11
const StyledSocialNetworks = styled(WidgetWrapper)`
852 stevensc 12
  padding: 10px;
851 stevensc 13
  picture {
14
    width: 50px;
15
    height: 50px;
16
    overflow: hidden;
17
    border-radius: 50%;
852 stevensc 18
    display: flex;
851 stevensc 19
    img {
20
      width: 100%;
21
      height: 100%;
22
      object-fit: contain;
23
    }
24
  }
25
`
26
 
5 stevensc 27
const SocialNetworks = ({ moodle, microlearning }) => {
28
  const [loading, setLoading] = useState(false)
29
  const labels = useSelector(({ intl }) => intl.labels)
30
 
31
  const handleOnRoom = async () => {
32
    try {
33
      setLoading(true)
34
      const response = await axios.post('/moodle')
852 stevensc 35
 
5 stevensc 36
      if (response.data.success) {
37
        const form = document.createElement('form')
38
        form.setAttribute('method', 'post')
39
        form.setAttribute('action', response.data.data.url)
40
        form.setAttribute('target', '_blank')
41
        Object.keys(response.data.data).forEach((key) => {
42
          if (key !== 'url') {
43
            const value = response.data.data[key]
44
            const hiddenField = document.createElement('input')
45
            hiddenField.setAttribute('type', 'hidden')
46
            hiddenField.setAttribute('name', key)
47
            hiddenField.setAttribute('value', value)
48
            form.appendChild(hiddenField)
49
          }
50
        })
51
        document.body.appendChild(form)
52
        form.submit()
53
      }
54
    } catch (error) {
55
      console.log('>>: error > ', error)
56
      addNotification({
57
        style: 'danger',
849 stevensc 58
        msg: 'Ha ocurrido un error en la comunicacion con ON ROOM'
5 stevensc 59
      })
60
    } finally {
61
      setLoading(false)
62
    }
63
  }
64
 
65
  return (
851 stevensc 66
    <StyledSocialNetworks>
5 stevensc 67
      {loading && <Spinner />}
852 stevensc 68
      <div className='d-flex flex-column align-items-center gap-2'>
69
        <picture className='cursor-pointer' onClick={() => handleOnRoom()}>
70
          <img src={moodle.image} alt={moodle.name} />
71
        </picture>
72
        <span>{moodle.name}</span>
73
      </div>
849 stevensc 74
      <div className='d-flex align-items-center justify-content-center gap-2'>
75
        <a href={microlearning.playStore} target='_blank' rel='noreferrer'>
851 stevensc 76
          <picture>
77
            <img src='/images/logo-2getskillsa-apple.jpeg' alt='' />
78
          </picture>
5 stevensc 79
        </a>
849 stevensc 80
        <a href={microlearning.appStore} target='_blank' rel='noreferrer'>
851 stevensc 81
          <picture>
82
            <img src='/images/logo-2getskills-android.jpeg' alt='' />
83
          </picture>
5 stevensc 84
        </a>
85
      </div>
86
      <span>{labels.micro_learning}</span>
851 stevensc 87
    </StyledSocialNetworks>
5 stevensc 88
  )
89
}
90
 
91
export default SocialNetworks