diff --git a/extensions/mentions/js/src/forum/addMentionedByList.js b/extensions/mentions/js/src/forum/addMentionedByList.js index 45b54023d..48fe082f6 100644 --- a/extensions/mentions/js/src/forum/addMentionedByList.js +++ b/extensions/mentions/js/src/forum/addMentionedByList.js @@ -118,7 +118,7 @@ export default function addMentionedByList() { }); const limit = 4; - const overLimit = repliers.length > limit; + const overLimit = post.mentionedByCount() > limit; // Create a list of unique users who have replied. So even if a user has // replied twice, they will only be in this array once. @@ -136,7 +136,7 @@ export default function addMentionedByList() { // others" name to the end of the list. Clicking on it will display a modal // with a full list of names. if (overLimit) { - const count = repliers.length - names.length; + const count = post.mentionedByCount() - names.length; names.push(app.translator.trans('flarum-mentions.forum.post.others_text', { count })); } diff --git a/extensions/mentions/src/Api/LoadMentionedByRelationship.php b/extensions/mentions/src/Api/LoadMentionedByRelationship.php index 209e3be6b..14fc82430 100644 --- a/extensions/mentions/src/Api/LoadMentionedByRelationship.php +++ b/extensions/mentions/src/Api/LoadMentionedByRelationship.php @@ -50,6 +50,16 @@ class LoadMentionedByRelationship $loadable = $data->newCollection($data->posts)->filter(function ($post) { return $post instanceof Post; }); + + // firstPost and lastPost might have been included in the API response, + // so we have to make sure counts are also loaded for them. + if ($data->firstPost) { + $loadable->push($data->firstPost); + } + + if ($data->lastPost) { + $loadable->push($data->lastPost); + } } elseif ($data instanceof Collection) { $loadable = $data; } elseif ($data instanceof Post) {