# Ocultar subcategorias sem ocultar seus tópicos na lista de tópicos?

**URL:** <https://meta.discourse.org/t/hide-subcategories-without-hiding-their-topics-in-topic-list/195502>\
**Category:** Support\
**Created:** [Junho 30, 2021, 3:05pm UTC](https://meta.discourse.org/t/hide-subcategories-without-hiding-their-topics-in-topic-list/195502 "2021-06-30T15:05:43Z")\
**Posts on this page:** 1\
**Showing post:** 6

<div class="post-metadata">

**Author:** ![Johani](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/johani/32/176920_2.png) [@Johani](https://meta.discourse.org/u/Johani)\
**Post date:** [Julho 1, 2021, 1:38pm UTC](https://meta.discourse.org/t/hide-subcategories-without-hiding-their-topics-in-topic-list/195502/6 "2021-07-01T13:38:13Z")

</div>

Em geral, você deve evitar substituições completas de modelos, pois elas exigem manutenção: se uma atualização do Discourse quebrar seu tema, você precisará executar um diff e verificar o que mudou.

O que você pode fazer é dar um passo para trás e modificar os dados que são passados para o modelo.

O `topic-list-item` é um componente Ember, então você pode usar `api.modifyClass` para fazer as alterações desejadas.

Por exemplo, aqui está um trecho que exibirá o emblema da categoria pai em tópicos de subcategorias abaixo do título. Se o tópico estiver na categoria principal, o código não terá efeito.

```javascript
<script type="text/discourse-plugin" version="0.8">
  const { on } = require("discourse-common/utils/decorators");

  // IDs das categorias pai
  const targetCategoryIds = [9, 15, 50];

  const useParentCategory = function () {
    const parentCategory = this.attrs.topic.category.parentCategory;
    const switchToParent = parentCategory && targetCategoryIds.includes(parentCategory.id)

    if (switchToParent) {
      this.attrs.topic.set("category", parentCategory);
    }
  };

  api.modifyClass("component:topic-list-item", {
    @on("didReceiveAttrs")
    setCategory() {
      useParentCategory.call(this);
    }
  });

  api.modifyClass("component:latest-topic-list-item", {
    @on("didReceiveAttrs")
    setCategory() {
      useParentCategory.call(this);
    }
  });
</script>

```

---

_[View the full topic](https://meta.discourse.org/t/hide-subcategories-without-hiding-their-topics-in-topic-list/195502)._
