Proyectos de Subversion LeadersLinked - SPA

Rev

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

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