Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 2864 | Rev 3694 | 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'
3070 stevensc 2
import { useNavigate } from 'react-router-dom'
3
import { 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
 
3070 stevensc 8
import Widget from '@components/UI/Widget'
9
import TagsList from '@components/UI/TagsList'
5 stevensc 10
 
3070 stevensc 11
export default function SearchItem({
12
  item: {
979 stevensc 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
3070 stevensc 26
  }
27
}) {
28
  const navigate = useNavigate()
974 stevensc 29
  const userSkills = useMemo(() => {
30
    if (!skills) {
31
      return []
32
    }
968 stevensc 33
 
974 stevensc 34
    return Object.entries(skills).map((skill) => {
35
      return { value: skill[0], name: skill[1] }
36
    })
37
  }, [skills])
38
 
5 stevensc 39
  return (
3070 stevensc 40
    <Widget>
41
      <Widget.Header
42
        avatar={image}
43
        title={title || name}
44
        onClick={() => navigate(url)}
45
        renderAction={() => {
46
          return (
47
            <Box display='inline-flex' alignItems='center' gap={1}>
48
              {!company_name && view_common_connection && (
49
                <Typography variant='overline'>
50
                  <Share />
51
                  {common_connection} comunes
52
                </Typography>
53
              )}
5 stevensc 54
 
3070 stevensc 55
              {followers ? (
56
                <Typography variant='overline'>
57
                  <Group />
58
                  {followers}
59
                </Typography>
60
              ) : null}
61
 
62
              {views ? (
63
                <Typography variant='overline'>
64
                  <Visibility />
65
                  {views}
66
                </Typography>
67
              ) : null}
967 stevensc 68
            </Box>
3070 stevensc 69
          )
70
        }}
71
      />
967 stevensc 72
 
3070 stevensc 73
      <Widget.Body>
74
        {company_name && <Typography variant='h4'>{company_name}</Typography>}
75
        {company_size && <Typography>Empresa {company_size}</Typography>}
76
        {industry && <Typography>{industry}</Typography>}
2864 stevensc 77
        <Typography>{parse(description)}</Typography>
3070 stevensc 78
        {userSkills.length > 0 && <TagsList tags={userSkills} />}
79
      </Widget.Body>
80
    </Widget>
5 stevensc 81
  )
82
}