mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-10-26 16:46:12 +01:00
fix(topic-events): repeated invocations of Posts.addTopicEvents caused dupes to be added to DOM
This commit is contained in:
@@ -285,6 +285,10 @@ define('forum/topic/posts', [
|
|||||||
return;
|
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);
|
let postTimestamps = ajaxify.data.posts.map(post => post.timestamp);
|
||||||
|
|
||||||
const reverse = config.topicPostSort === 'newest_to_oldest';
|
const reverse = config.topicPostSort === 'newest_to_oldest';
|
||||||
|
|||||||
@@ -126,6 +126,6 @@ Events.log = async (tid, payload) => {
|
|||||||
events: [payload],
|
events: [payload],
|
||||||
});
|
});
|
||||||
|
|
||||||
({ events } = plugins.hooks.fire('filter:topic.events.log', { events }));
|
({ events } = await plugins.hooks.fire('filter:topic.events.log', { events }));
|
||||||
return events;
|
return events;
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user