Proyectos de Subversion LeadersLinked - SPA

Rev

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

Rev Autor Línea Nro. Línea
5 stevensc 1
import React from 'react'
2
import parse from 'html-react-parser'
3
import { styled } from 'styled-components'
4
import { Avatar } from '@mui/material'
5
import { Link } from 'react-router-dom'
6
import VisibilityIcon from '@mui/icons-material/Visibility'
7
import GroupIcon from '@mui/icons-material/Group'
8
import ShareIcon from '@mui/icons-material/Share'
9
 
10
const StyledEntity = styled.article`
11
  background-color: var(--bg-color);
12
  border-radius: var(--border-radius);
892 stevensc 13
  box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.08);
5 stevensc 14
  display: flex;
15
  flex-direction: column;
16
  gap: 0.5rem;
17
  padding: 1rem;
18
  position: relative;
19
  width: 100%;
20
`
21
 
22
const EntityHeader = styled.div`
23
  align-items: center;
24
  display: flex;
25
  gap: 0.5rem;
26
`
27
 
28
const EntityInfo = styled.div`
29
  align-items: center;
30
  display: flex;
31
  flex-direction: column;
32
`
33
 
34
const EntityStats = styled.ul`
35
  align-items: center;
36
  display: flex;
37
  gap: 0.5rem;
38
  position: absolute;
39
  right: 0.5rem;
40
  top: 0.5rem;
41
`
42
 
43
const SearchItem = ({
44
  name,
45
  industry,
46
  description,
47
  skills,
48
  common_connection,
49
  views,
50
  image,
51
  company_name,
52
  title,
53
  url,
54
  followers,
55
  company_size,
892 stevensc 56
  view_common_connection
5 stevensc 57
}) => {
58
  return (
59
    <StyledEntity>
60
      <EntityHeader>
61
        <Avatar src={image} sx={{ width: '80px', height: '80px' }} />
62
        <EntityInfo>
63
          <Link to={url}>
64
            <h3>{title || name}</h3>
65
          </Link>
66
          {company_name && <h4>{company_name}</h4>}
67
          {company_size && <p>Empresa {company_size} </p>}
68
          {industry && <p>{industry}</p>}
69
        </EntityInfo>
70
      </EntityHeader>
71
 
72
      <EntityStats>
73
        {!company_name && !!common_connection && (
74
          <li>
75
            <p>
76
              <ShareIcon />
77
              {view_common_connection && (
892 stevensc 78
                <small className='ml-2'>{common_connection} comunes</small>
5 stevensc 79
              )}
80
            </p>
81
          </li>
82
        )}
83
        {!!followers && (
84
          <li>
85
            <p>
86
              <GroupIcon />
892 stevensc 87
              <small className='ml-2'>{followers}</small>
5 stevensc 88
            </p>
89
          </li>
90
        )}
91
        {!!views && (
92
          <li>
93
            <p>
94
              <VisibilityIcon />
892 stevensc 95
              <small className='ml-2'>{views}</small>
5 stevensc 96
            </p>
97
          </li>
98
        )}
99
      </EntityStats>
100
      {description && parse(description)}
101
      {skills && (
892 stevensc 102
        <ul className='skill-tags'>
5 stevensc 103
          {Object.values(skills).map((skill, id) => (
104
            <li key={id}>
892 stevensc 105
              <button title={skill} className='btn btn-tertiary'>
5 stevensc 106
                {skill}
107
              </button>
108
            </li>
109
          ))}
110
        </ul>
111
      )}
112
    </StyledEntity>
113
  )
114
}
115
 
116
export default SearchItem