blob: 8934c7561a6d4c0eb13c6ceaa4d042bcbb04233e (
about) (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
|
import React from 'react';
import PropTypes from 'prop-types';
import './styles.css';
import moment from 'moment';
import Star from '../../icons/star';
import Fork from '../../icons/fork';
import Issue from "../../icons/issue";
class ListItem extends React.Component {
render() {
return (
<div className="col-12 list-item-container">
<div className="list-item-body">
<div className="repo-header">
<h3>
<a href={ this.props.repository.html_url } rel="noopener noreferrer" target="_blank">
<span className="text-normal">{ this.props.repository.owner.login } / </span>
{ this.props.repository.name }
</a>
</h3>
<p className="repo-meta text-muted small">Built by · <a href={ this.props.repository.owner.html_url } rel="noopener noreferrer" target="_blank">{ this.props.repository.owner.login }</a> · { moment(this.props.repository.created_at).format('MMMM D YYYY') }</p>
</div>
<div className="repo-body">
<p>{ this.props.repository.description || 'No description given.' }</p>
</div>
<div className="repo-footer">
{
this.props.repository.language && (
<span className="d-inline-block mr-3">
<span className="repo-language-color ml-0"></span>
<span itemProp="programmingLanguage">
{ this.props.repository.language }
</span>
</span>
)
}
<a className="muted-link d-inline-block mr-3"
href={ `${this.props.repository.html_url}/stargazers` }
rel="noopener noreferrer"
target="_blank">
<Star />
{ this.props.repository.stargazers_count.toLocaleString() }
</a>
<a className="muted-link d-inline-block mr-3"
href={ `${this.props.repository.html_url}/network/members` }
rel="noopener noreferrer"
target="_blank">
<Fork />
{ this.props.repository.forks.toLocaleString() }
</a>
<a className="muted-link d-inline-block mr-3"
href={ `${this.props.repository.html_url}/issues` }
rel="noopener noreferrer"
target="_blank">
<Issue />
{ this.props.repository.open_issues.toLocaleString() }
</a>
</div>
</div>
<a href={ this.props.repository.owner.html_url }
target="_blank"
rel="noopener noreferrer"
className="author-link d-none d-lg-block d-xl-block d-md-block">
<img className='author-img'
src={ this.props.repository.owner.avatar_url }
onError={ (e) => {
e.target.src = '/img/logo.svg';
} }
alt={ this.props.repository.owner.login } />
</a>
</div>
);
}
}
ListItem.propTypes = {
repository: PropTypes.object.isRequired
};
export default ListItem;
|