1
0
mirror of https://github.com/flarum/core.git synced 2025-10-13 07:54:25 +02:00
Files
php-flarum/js/forum/src/components/post-header-user.js
Toby Zerner dc7d1fdefa Tweak user card hover trigger
So that it doesn’t appear when hovering over badges
2015-05-06 12:23:48 +09:30

65 lines
1.9 KiB
JavaScript

import Component from 'flarum/component';
import UserCard from 'flarum/components/user-card';
import avatar from 'flarum/helpers/avatar';
import username from 'flarum/helpers/username';
import listItems from 'flarum/helpers/list-items';
/**
Component for the username/avatar in a post header.
*/
export default class PostHeaderUser extends Component {
constructor(props) {
super(props);
this.showCard = m.prop(false);
}
view() {
var post = this.props.post;
var user = post.user();
return m('div.post-user', {config: this.onload.bind(this)}, [
m('h3',
user ? [
m('a', {href: app.route('user', {username: user.username()}), config: m.route}, [
avatar(user),
username(user)
]),
m('ul.badges', listItems(user.badges().toArray().reverse()))
] : [
avatar(),
username()
]
),
user && !post.isHidden() && this.showCard()
? UserCard.component({user, className: 'user-card-popover fade', controlsButtonClass: 'btn btn-default btn-icon btn-sm btn-naked'})
: ''
]);
}
onload(element, isInitialized) {
if (isInitialized) { return; }
this.element(element);
var component = this;
var timeout;
this.$().on('mouseover', 'h3 a, .user-card', function() {
clearTimeout(timeout);
timeout = setTimeout(function() {
component.showCard(true);
m.redraw();
setTimeout(() => component.$('.user-card').addClass('in'));
}, 500);
}).on('mouseout', 'h3 a, .user-card', function() {
clearTimeout(timeout);
timeout = setTimeout(function() {
component.$('.user-card').removeClass('in').one('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd', function() {
component.showCard(false);
m.redraw();
});
}, 250);
});
}
}