docbrown/app/javascript/sidebar-widget/sidebarUser.jsx
ludwiczakpawel 6d2c63026c
Homepage Improvements, round II (#6202) [deploy]
* remove border from ad and fix cut-off

* improving ellipsis for tags

* improving ellipsis for tags

* fixing underline between each tag on hover

* user avatars alignment in left sidebar

* test commit

* reverting test

* test commit

* reverting test

* index unassigned

* user suggestions in right sidebar on tag page, fixes

* improving widgets a little

* line height for category

* Update tests

Co-authored-by: Ben Halpern <bendhalpern@gmail.com>
2020-02-20 17:12:56 -05:00

50 lines
1.3 KiB
JavaScript

import { h, Component } from 'preact';
import PropTypes from 'prop-types';
import { userPropTypes } from '../src/components/common-prop-types';
class SidebarUser extends Component {
constructor(props) {
super(props);
this.onClick = this.onClick.bind(this);
}
onClick() {
const { followUser, user } = this.props;
followUser(user);
}
render() {
const { user } = this.props;
return (
<div className="widget-list-item__suggestions">
<a href={`/${user.username}`} className="widget-list-item__avatar">
<img
src={user.profile_image_url}
alt={user.name}
className="widget-list-item__profile-pic"
/>
</a>
<div className="widget-list-item__content">
<h5>
<a href={`/${user.username}`}>{user.name}</a>
</h5>
<button
className="widget-list-item__follow-button"
type="button"
onClick={this.onClick}
id={`widget-list-item__follow-button-${user.username}`}
>
{user.following ? '✓ FOLLOWING' : '+ FOLLOW'}
</button>
</div>
</div>
);
}
}
SidebarUser.propTypes = {
followUser: PropTypes.func.isRequired,
user: PropTypes.objectOf(userPropTypes).isRequired,
};
export default SidebarUser;