Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

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

Rev Autor Línea Nro. Línea
1386 steven 1
import React from 'react';
2097 steven 2
import { useState } from 'react';
3
import styled from 'styled-components';
4
import { addNotification } from '../../../redux/notification/notification.actions';
5
import Spinner from '../../../shared/loading-spinner/Spinner';
2084 steven 6
import { axios } from '../../../utils';
1386 steven 7
import styles from './HomeSection.module.scss';
8
 
2097 steven 9
const StyledSpinnerContainer = styled.div`
10
  position: absolute;
11
  left: 0;
12
  top: 0;
13
  width: 100%;
14
  height: 100%;
15
  background: rgba(255, 255, 255, 0.4);
16
  display: flex;
17
  justify-content: center;
18
  align-items: center;
19
  z-index: 300;
20
`;
21
 
1386 steven 22
export default function SocialNetworks() {
2097 steven 23
    const [loading, setLoading] = useState(false);
2084 steven 24
    const handleOnRoom = async () => {
25
        try {
2097 steven 26
            setLoading(true)
2095 steven 27
            const response = await axios.post('/moodle');
28
            if(response.data.success) {
29
                let form = document.createElement('form');
30
                form.setAttribute('method', 'post');
31
                form.setAttribute('action', response.data.data.url);
32
                form.setAttribute('target', '_blank');
2096 steven 33
                Object.keys(response.data.data).forEach(key => {
2095 steven 34
                    if(key != 'url') {
2096 steven 35
                        const value = response.data.data[key];
2095 steven 36
                        let hiddenField = document.createElement('input');
37
                        hiddenField.setAttribute('type', 'hidden');
38
                        hiddenField.setAttribute('name', key);
39
                        hiddenField.setAttribute('value', value);
40
                        form.appendChild(hiddenField);
41
                    }
2096 steven 42
                })
2095 steven 43
                document.body.appendChild(form);
44
                form.submit();
45
            }
2084 steven 46
        } catch (error) {
47
            console.log('>>: error > ', error)
2097 steven 48
            addNotification({
49
                style: "danger",
50
                msg: "Ha ocurrido un error en la comunicacion con ON ROOM",
51
            });
2084 steven 52
        }finally{
2097 steven 53
            setLoading(false)
2084 steven 54
        }
55
    }
1386 steven 56
  return (
1539 steven 57
    <div className={styles.widget + ' border-gray'}>
1386 steven 58
        <div className={styles.widget__app}>
2098 steven 59
            <a href="#" onClick={() => handleOnRoom()}>
1386 steven 60
                <img
61
                    className={styles.widget__app__img}
62
                    src="/images/logo-onroom.png"
63
                    alt=""
64
                />
65
            </a>
2084 steven 66
            <a href="#" onClick={() => handleOnRoom()} className={styles.widget__app__title} title="">
1386 steven 67
                CESA ON ROOM
68
            </a>
69
        </div>
70
        <div className={styles.widget__app}>
71
            <a href="#">
72
                <img
73
                    className={styles.widget__app__img}
74
                    src="/images/logo-2getskills.jpeg"
75
                    alt=""
76
                />
77
            </a>
78
            <a href="#" className={styles.widget__app__title} title="">
79
                Microaprendizaje
80
            </a>
81
        </div>
2097 steven 82
        {loading && (
83
          <StyledSpinnerContainer>
84
            <Spinner />
85
          </StyledSpinnerContainer>
86
        )}
1386 steven 87
    </div>
88
  )
89
}