From 4c3ebe2538b736794b6007fec966172913eb43ba Mon Sep 17 00:00:00 2001 From: Toby Zerner Date: Fri, 27 May 2016 12:38:28 +0930 Subject: [PATCH] Fix PostEdited tooltip not updating --- framework/core/js/forum/dist/app.js | 17 ++++++++++++++--- .../core/js/forum/src/components/PostEdited.js | 16 +++++++++++++--- 2 files changed, 27 insertions(+), 6 deletions(-) diff --git a/framework/core/js/forum/dist/app.js b/framework/core/js/forum/dist/app.js index b2aa69779..9fd2bd127 100644 --- a/framework/core/js/forum/dist/app.js +++ b/framework/core/js/forum/dist/app.js @@ -24355,11 +24355,21 @@ System.register('flarum/components/PostEdited', ['flarum/Component', 'flarum/uti } babelHelpers.createClass(PostEdited, [{ + key: 'init', + value: function init() { + this.shouldUpdateTooltip = false; + this.oldEditedInfo = null; + } + }, { key: 'view', value: function view() { var post = this.props.post; var editUser = post.editUser(); 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( 'span', @@ -24370,9 +24380,10 @@ System.register('flarum/components/PostEdited', ['flarum/Component', 'flarum/uti }, { key: 'config', value: function config(isInitialized) { - if (isInitialized) return; - - this.$().tooltip(); + if (this.shouldUpdateTooltip) { + this.$().tooltip('destroy').tooltip(); + this.shouldUpdateTooltip = false; + } } }]); return PostEdited; diff --git a/framework/core/js/forum/src/components/PostEdited.js b/framework/core/js/forum/src/components/PostEdited.js index 7671fdf09..1dde12c17 100644 --- a/framework/core/js/forum/src/components/PostEdited.js +++ b/framework/core/js/forum/src/components/PostEdited.js @@ -11,6 +11,11 @@ import extractText from 'flarum/utils/extractText'; * - `post` */ export default class PostEdited extends Component { + init() { + this.shouldUpdateTooltip = false; + this.oldEditedInfo = null; + } + view() { const post = this.props.post; const editUser = post.editUser(); @@ -18,6 +23,10 @@ export default class PostEdited extends Component { 'core.forum.post.edited_tooltip', {user: editUser, ago: humanTime(post.editTime())} )); + if (editedInfo !== this.oldEditedInfo) { + this.shouldUpdateTooltip = true; + this.oldEditedInfo = editedInfo; + } return ( @@ -27,8 +36,9 @@ export default class PostEdited extends Component { } config(isInitialized) { - if (isInitialized) return; - - this.$().tooltip(); + if (this.shouldUpdateTooltip) { + this.$().tooltip('destroy').tooltip(); + this.shouldUpdateTooltip = false; + } } }