Fix PostEdited tooltip not updating

This commit is contained in:
Toby Zerner 2016-05-27 12:38:28 +09:30
parent dc21bbb743
commit 4c3ebe2538
2 changed files with 27 additions and 6 deletions

View File

@ -24355,11 +24355,21 @@ System.register('flarum/components/PostEdited', ['flarum/Component', 'flarum/uti
} }
babelHelpers.createClass(PostEdited, [{ babelHelpers.createClass(PostEdited, [{
key: 'init',
value: function init() {
this.shouldUpdateTooltip = false;
this.oldEditedInfo = null;
}
}, {
key: 'view', key: 'view',
value: function view() { value: function view() {
var post = this.props.post; var post = this.props.post;
var editUser = post.editUser(); var editUser = post.editUser();
var editedInfo = extractText(app.translator.trans('core.forum.post.edited_tooltip', { user: editUser, ago: humanTime(post.editTime()) })); var editedInfo = extractText(app.translator.trans('core.forum.post.edited_tooltip', { user: editUser, ago: humanTime(post.editTime()) }));
if (editedInfo !== this.oldEditedInfo) {
this.shouldUpdateTooltip = true;
this.oldEditedInfo = editedInfo;
}
return m( return m(
'span', 'span',
@ -24370,9 +24380,10 @@ System.register('flarum/components/PostEdited', ['flarum/Component', 'flarum/uti
}, { }, {
key: 'config', key: 'config',
value: function config(isInitialized) { value: function config(isInitialized) {
if (isInitialized) return; if (this.shouldUpdateTooltip) {
this.$().tooltip('destroy').tooltip();
this.$().tooltip(); this.shouldUpdateTooltip = false;
}
} }
}]); }]);
return PostEdited; return PostEdited;

View File

@ -11,6 +11,11 @@ import extractText from 'flarum/utils/extractText';
* - `post` * - `post`
*/ */
export default class PostEdited extends Component { export default class PostEdited extends Component {
init() {
this.shouldUpdateTooltip = false;
this.oldEditedInfo = null;
}
view() { view() {
const post = this.props.post; const post = this.props.post;
const editUser = post.editUser(); const editUser = post.editUser();
@ -18,6 +23,10 @@ export default class PostEdited extends Component {
'core.forum.post.edited_tooltip', 'core.forum.post.edited_tooltip',
{user: editUser, ago: humanTime(post.editTime())} {user: editUser, ago: humanTime(post.editTime())}
)); ));
if (editedInfo !== this.oldEditedInfo) {
this.shouldUpdateTooltip = true;
this.oldEditedInfo = editedInfo;
}
return ( return (
<span className="PostEdited" title={editedInfo}> <span className="PostEdited" title={editedInfo}>
@ -27,8 +36,9 @@ export default class PostEdited extends Component {
} }
config(isInitialized) { config(isInitialized) {
if (isInitialized) return; if (this.shouldUpdateTooltip) {
this.$().tooltip('destroy').tooltip();
this.$().tooltip(); this.shouldUpdateTooltip = false;
}
} }
} }