fix(topic-events): repeated invocations of Posts.addTopicEvents caused dupes to be added to DOM

v1.18.x
Julian Lam 4 years ago
parent 9559fad8ac
commit df2fdd56ba

@ -285,6 +285,10 @@ define('forum/topic/posts', [
return;
}
// Filter out events already in DOM
const eventIdsInDOM = Array.from(document.querySelectorAll('[component="topic/event"]')).map(el => parseInt(el.getAttribute('data-topic-event-id'), 10));
events = events.filter(event => !eventIdsInDOM.includes(event.id));
let postTimestamps = ajaxify.data.posts.map(post => post.timestamp);
const reverse = config.topicPostSort === 'newest_to_oldest';

@ -126,6 +126,6 @@ Events.log = async (tid, payload) => {
events: [payload],
});
({ events } = plugins.hooks.fire('filter:topic.events.log', { events }));
({ events } = await plugins.hooks.fire('filter:topic.events.log', { events }));
return events;
};

Loading…
Cancel
Save