Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 2864 | Rev 3694 | Ir a la última revisión | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

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