Proyectos de Subversion LeadersLinked - SPA

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
5 stevensc 1
import React, { useState } from 'react'
1577 stevensc 2
import { Avatar, Box, Typography } from '@mui/material'
5 stevensc 3
 
1577 stevensc 4
import { getOnRoom } from '@app/services/onRoom'
5
import { addNotification } from '@app/redux/notification/notification.actions'
5 stevensc 6
 
1577 stevensc 7
import Spinner from '@app/components/UI/Spinner'
1507 stevensc 8
import WidgetWrapper from '../WidgetLayout'
5 stevensc 9
 
1578 stevensc 10
const AppsWidget = ({ moodle, microlearning }) => {
5 stevensc 11
  const [loading, setLoading] = useState(false)
12
 
13
  const handleOnRoom = async () => {
14
    try {
15
      setLoading(true)
1577 stevensc 16
      const response = await getOnRoom()
1881 stevensc 17
      const onRoomUrl = new URL(response.url)
18
      Object.keys(response).forEach((key) => {
19
        if (key === 'url') return
20
        onRoomUrl.searchParams.set(key, response[key])
21
      })
1883 stevensc 22
 
23
      setTimeout(() => {
24
        window.open(onRoomUrl.toString(), '_blank')
25
      }, 0)
5 stevensc 26
    } catch (error) {
27
      console.log('>>: error > ', error)
1577 stevensc 28
      addNotification({ style: 'danger', msg: error.message })
5 stevensc 29
    } finally {
30
      setLoading(false)
31
    }
32
  }
33
 
34
  return (
1579 stevensc 35
    <WidgetWrapper
36
      sx={{
37
        padding: 2,
38
        display: 'flex',
39
        flexDirection: 'column',
40
        alignItems: 'center'
41
      }}
42
    >
1870 stevensc 43
      {loading && (
44
        <Box
45
          sx={{
46
            position: 'absolute',
47
            width: '100%',
48
            height: '100%',
49
            display: 'grid',
1871 stevensc 50
            placeItems: 'center',
51
            zIndex: 50
1870 stevensc 52
          }}
53
        >
54
          <Spinner />
55
        </Box>
56
      )}
1577 stevensc 57
 
1579 stevensc 58
      <Avatar
59
        sx={{ cursor: 'pointer' }}
60
        src={moodle.image}
61
        alt={moodle.name}
62
        onClick={() => handleOnRoom()}
63
      />
64
      <Typography variant='body2'>{moodle.name}</Typography>
1577 stevensc 65
 
66
      <Box
67
        sx={{
68
          display: 'flex',
69
          alignItems: 'center',
1579 stevensc 70
          justifyContent: 'center',
71
          gap: 1,
72
          mt: 1
1577 stevensc 73
        }}
74
      >
849 stevensc 75
        <a href={microlearning.playStore} target='_blank' rel='noreferrer'>
1935 stevensc 76
          <Avatar
1979 stevensc 77
            src='/images/logo-leaderslinked-apple.png'
1935 stevensc 78
            sx={{ borderRadius: '0' }}
79
          />
5 stevensc 80
        </a>
1577 stevensc 81
 
849 stevensc 82
        <a href={microlearning.appStore} target='_blank' rel='noreferrer'>
1935 stevensc 83
          <Avatar
1979 stevensc 84
            src='/images/logo-leaderslinked-android.png'
1935 stevensc 85
            sx={{ borderRadius: '0' }}
86
          />
5 stevensc 87
        </a>
1577 stevensc 88
      </Box>
89
 
1936 stevensc 90
      <Typography variant='body2' sx={{ textAlign: 'center' }}>
1980 stevensc 91
        {microlearning.name}
1936 stevensc 92
      </Typography>
1577 stevensc 93
    </WidgetWrapper>
5 stevensc 94
  )
95
}
96
 
1578 stevensc 97
export default AppsWidget