Proyectos de Subversion LeadersLinked - SPA

Rev

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

Rev Autor Línea Nro. Línea
968 stevensc 1
import React, { useMemo } from 'react'
966 stevensc 2
import { Link } from 'react-router-dom'
2864 stevensc 3
import { Avatar, Box, Typography } from '@mui/material'
966 stevensc 4
import { Visibility, Group, Share } from '@mui/icons-material'
5 stevensc 5
 
2864 stevensc 6
import { parse } from '@utils'
7
 
966 stevensc 8
import TagsList from '../UI/TagsList'
1507 stevensc 9
import WidgetWrapper from '../widgets/WidgetLayout'
5 stevensc 10
 
979 stevensc 11
const SearchItem = ({ entity = {} }) => {
12
  const {
13
    name,
14
    industry,
15
    description,
16
    skills,
17
    common_connection,
18
    views,
19
    image,
20
    company_name,
21
    title,
22
    url,
23
    followers,
24
    company_size,
25
    view_common_connection
26
  } = entity
27
 
974 stevensc 28
  const userSkills = useMemo(() => {
29
    if (!skills) {
30
      return []
31
    }
968 stevensc 32
 
974 stevensc 33
    return Object.entries(skills).map((skill) => {
34
      return { value: skill[0], name: skill[1] }
35
    })
36
  }, [skills])
37
 
5 stevensc 38
  return (
1507 stevensc 39
    <WidgetWrapper>
40
      <WidgetWrapper.Body>
968 stevensc 41
        <Box
42
          display='flex'
43
          justifyContent='space-between'
44
          alignItems='flex-start'
45
        >
46
          <Box display='inline-flex' alignItems='center' gap={1}>
967 stevensc 47
            <Avatar src={image} sx={{ width: 60, height: 60 }} />
5 stevensc 48
 
967 stevensc 49
            <Box display='flex' flexDirection='column'>
50
              <Link to={url}>
51
                <h2>{title || name}</h2>
52
              </Link>
53
              {company_name && <h4>{company_name}</h4>}
54
              {company_size && <p>Empresa {company_size}</p>}
55
              {industry && <p>{industry}</p>}
56
            </Box>
57
          </Box>
58
 
968 stevensc 59
          <Box display='inline-flex' alignItems='center' gap={1}>
967 stevensc 60
            {!company_name && view_common_connection && (
61
              <span>
62
                <Share />
63
                {common_connection} comunes
64
              </span>
65
            )}
66
 
67
            {followers ? (
68
              <span>
69
                <Group />
70
                {followers}
71
              </span>
72
            ) : null}
73
 
74
            {views ? (
75
              <span>
76
                <Visibility />
77
                {views}
78
              </span>
79
            ) : null}
80
          </Box>
81
        </Box>
82
 
2864 stevensc 83
        <Typography>{parse(description)}</Typography>
967 stevensc 84
 
968 stevensc 85
        <TagsList tags={userSkills} />
1507 stevensc 86
      </WidgetWrapper.Body>
87
    </WidgetWrapper>
5 stevensc 88
  )
89
}
90
 
91
export default SearchItem