datlechin / flarum-discussion-count

Display discussion count against tags

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Not working show number V1.8.5

Litalino opened this issue · comments

extend(TagsPage.prototype, ['oncreate'], function () {
    const tags = this.tags;
    const tagsItem = document.querySelectorAll('.TagTile-info');

    tagsItem.forEach(function (item) {
      const tagName = item.querySelector('.TagTile-name').innerText;
      const tag = tags.find((tag) => tag.name() === tagName);
      const children = sortTags(tag.children() || []);
      const discussionCount = tag.discussionCount();

      const childrenLinks = item.querySelectorAll('.TagTile-children a');

      childrenLinks.forEach(function (link) {
        const childTagName = link.innerText;
        const childTag = children.find((tag) => tag.name() === childTagName);
        const childDiscussionCount = childTag.discussionCount();
        link.innerText = `${childTagName} (${childDiscussionCount})`;
      });

      item.querySelector('.TagTile-name').innerText += ` (${discussionCount})`;
    });
  });

fixed it as follows

extend(TagsPage.prototype, ['oncreate'], function () {
  let in_setInterval = setInterval(()=> {
    const tags = this.tags;
    const tagsItem = document.querySelectorAll('.TagTile-info');

    tagsItem.forEach(function (item) {
      const tagName = item.querySelector('.TagTile-name').innerText;
      const tag = tags.find((tag) => tag.name() === tagName);
      const children = sortTags(tag.children() || []);
      const discussionCount = tag.discussionCount();

      const childrenLinks = item.querySelectorAll('.TagTile-children a');

      childrenLinks.forEach(function (link) {
        const childTagName = link.innerText;
        const childTag = children.find((tag) => tag.name() === childTagName);
        const childDiscussionCount = childTag.discussionCount();
        link.innerText = `${childTagName} (${childDiscussionCount})`;
      });

      item.querySelector('.TagTile-name').innerText += ` (${discussionCount})`;
    });
  }, 1000);

  setTimeout(() => { clearInterval(in_setInterval); }, 1000);
});