Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 2995 | Rev 2997 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |

import React from 'react'
import { useNavigate } from 'react-router-dom'
import { useDispatch } from 'react-redux'
import { Avatar, styled, Typography } from '@mui/material'
import {
  VisibilityOutlined,
  MapOutlined,
  ShareOutlined
} from '@mui/icons-material'

import { axios } from '@utils'
import { addNotification } from '@store/notification/notification.actions'

import Widget from '@components/UI/Widget'
import Options from '@components/UI/Option'

const Row = styled('div')(() => ({
  display: 'flex',
  justifyContent: 'space-around',
  alignItems: 'center'
}))

export default function ProfileInfo({
  image,
  fullName,
  visits,
  country,
  connections,
  linkAdmin,
  linkImpersonate
}) {
  const navigate = useNavigate()
  const dispatch = useDispatch()

  const getAdminUrl = async () => {
    try {
      const response = await axios.get('/backend/signin-admin')
      const { data, success } = response.data
      if (!success) throw new Error(data)
      window.open(data)
    } catch (error) {
      dispatch(addNotification({ style: 'danger', msg: error.message }))
    }
  }

  return (
    <Widget>
      <Widget.Body>
        <Avatar
          src={image}
          alt={`${fullName} profile-image`}
          sx={{ margin: '0 auto', width: 100, height: 100 }}
        />
        <Typography variant='h2'>{fullName}</Typography>

        <Row>
          <Typography variant='overline'>
            <VisibilityOutlined />
            {visits}
          </Typography>

          <Typography variant='overline'>
            <MapOutlined />
            {country}
          </Typography>

          <Typography variant='overline'>
            <ShareOutlined />
            {connections}
          </Typography>

          {/* <Options>
            {linkAdmin ? (
              <Options.Item onClick={getAdminUrl}>Administración</Options.Item>
            ) : null}

            {linkImpersonate ? (
              <Options.Item onClick={() => navigate('/impersonate')}>
                Personificar otro usuario
              </Options.Item>
            ) : null}

            <Options.Item onClick={() => navigate('/account-settings')}>
              Configuración de la cuenta
            </Options.Item>
            <Options.Item onClick={() => navigate('/privacy-policy')}>
              Política de privacidad
            </Options.Item>
            <Options.Item onClick={() => navigate('/cookies')}>
              Política de cookies
            </Options.Item>
            <Options.Item onClick={() => navigate('/signout')}>
              Cerrar sesión
            </Options.Item>
          </Options> */}
        </Row>
      </Widget.Body>
    </Widget>
  )
}