Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 7007 | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
7002 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'
7005 stevensc 6
import VisibilityIcon from '@mui/icons-material/Visibility'
7
import GroupIcon from '@mui/icons-material/Group'
8
import ShareIcon from '@mui/icons-material/Share'
7002 stevensc 9
 
10
const StyledEntity = styled.article`
7004 stevensc 11
  background-color: var(--bg-color);
12
  border-radius: var(--border-radius);
13
  box-shadow: var(--light-shadow);
7002 stevensc 14
  display: flex;
15
  flex-direction: column;
7004 stevensc 16
  gap: 0.5rem;
7002 stevensc 17
  padding: 1rem;
7004 stevensc 18
  position: relative;
7002 stevensc 19
  width: 100%;
7004 stevensc 20
`
21
 
22
const EntityHeader = styled.div`
23
  align-items: center;
24
  display: flex;
7002 stevensc 25
  gap: 0.5rem;
26
`
27
 
7004 stevensc 28
const EntityInfo = styled.div`
29
  align-items: center;
30
  display: flex;
31
  flex-direction: column;
32
`
33
 
7014 stevensc 34
const EntityStats = styled.ul`
7004 stevensc 35
  align-items: center;
36
  display: flex;
37
  gap: 0.5rem;
38
  position: absolute;
39
  right: 0.5rem;
40
  top: 0.5rem;
41
`
42
 
7002 stevensc 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,
56
  view_common_connection,
57
}) => {
58
  return (
59
    <StyledEntity>
7004 stevensc 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>
7002 stevensc 71
 
7004 stevensc 72
      <EntityStats>
7014 stevensc 73
        {!company_name && !!common_connection && (
74
          <li>
75
            <p>
76
              <ShareIcon />
77
              {view_common_connection && (
78
                <small className="ml-2">{common_connection} comunes</small>
79
              )}
80
            </p>
81
          </li>
82
        )}
83
        {!!followers && (
84
          <li>
85
            <p>
86
              <GroupIcon />
87
              <small className="ml-2">{followers}</small>
88
            </p>
89
          </li>
90
        )}
91
        {!!views && (
92
          <li>
93
            <p>
94
              <VisibilityIcon />
95
              <small className="ml-2">{views}</small>
96
            </p>
97
          </li>
98
        )}
7004 stevensc 99
      </EntityStats>
100
      {description && parse(description)}
101
      {skills && (
102
        <ul className="skill-tags">
103
          {Object.values(skills).map((skill, id) => (
104
            <li key={id}>
105
              <button title={skill} className="btn btn-tertiary">
106
                {skill}
107
              </button>
108
            </li>
109
          ))}
110
        </ul>
111
      )}
7002 stevensc 112
    </StyledEntity>
113
  )
114
}
115
 
116
export default SearchItem