# Переключение видимости в соединителе темы

**URL:** <https://meta.discourse.org/t/toggling-visibility-within-a-topic-connector/367898>\
**Category:** Development\
**Created:** [28.Май.2025 07:43:08 UTC](https://meta.discourse.org/t/toggling-visibility-within-a-topic-connector/367898 "2025-05-28T07:43:08Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)\
**Post date:** [28.Май.2025 07:43:08 UTC](https://meta.discourse.org/t/toggling-visibility-within-a-topic-connector/367898/1 "2025-05-28T07:43:08Z")

</div>

Я хотел бы получить доступ к действию `toggleVisibility` контроллера темы из компонента через коннектор.

Я вижу, что для этого есть прецедент.

Будет ли принят следующий PR?

> <https://github.com/discourse/discourse/blob/f4d4f371e682c6ed0707cc09f7e6aa15406ee4cc/app/assets/javascripts/discourse/app/templates/topic.gjs#L90>

в

```plaintext
      
        <PluginOutlet
          @name="topic-above-post-stream"
          @connectorTagName="div"
          @outletArgs={{lazyHash
            model=@controller.model
            editFirstPost=@controller.editFirstPost
            toggleVisibility=@controller.toggleVisibility
          }}
        />
      </span>

```

Если да, я создам запрос.

Спасибо!

---

<div class="post-metadata">

**Author:** ![david](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/david/32/157490_2.png) [@david](https://meta.discourse.org/u/david)\
**Post date:** [28.Май.2025 07:49:44 UTC](https://meta.discourse.org/t/toggling-visibility-within-a-topic-connector/367898/2 "2025-05-28T07:49:44Z")

</div>

Мне кажется, это разумно.

Хотя, не глядя, я не уверен, что делает toggleVisibility. Может, стоит дать ему более описательное имя? 😅

---

<div class="post-metadata">

**Author:** ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)\
**Post date:** [28.Май.2025 07:50:55 UTC](https://meta.discourse.org/t/toggling-visibility-within-a-topic-connector/367898/3 "2025-05-28T07:50:55Z")

</div>

Отлично!

Это текущее соглашение об именовании для этого действия во всём Discourse.

Так называется операция для отображения и скрытия темы.

---

<div class="post-metadata">

**Author:** ![david](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/david/32/157490_2.png) [@david](https://meta.discourse.org/u/david)\
**Post date:** [28.Май.2025 07:52:00 UTC](https://meta.discourse.org/t/toggling-visibility-within-a-topic-connector/367898/4 "2025-05-28T07:52:00Z")

</div>

Ага, понятно, тогда лучше оставить название как есть, чтобы не пришлось переименовывать его везде 👍

---

<div class="post-metadata">

**Author:** ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)\
**Post date:** [28.Май.2025 07:52:48 UTC](https://meta.discourse.org/t/toggling-visibility-within-a-topic-connector/367898/5 "2025-05-28T07:52:48Z")

</div>

Да, я так и подумал 😅

~~Я повышу ставку! 🚀~~

---

<div class="post-metadata">

**Author:** ![david](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/david/32/157490_2.png) [@david](https://meta.discourse.org/u/david)\
**Post date:** [28.Май.2025 07:53:39 UTC](https://meta.discourse.org/t/toggling-visibility-within-a-topic-connector/367898/6 "2025-05-28T07:53:39Z")

</div>

Просто взглянув на реализацию:

> <https://github.com/discourse/discourse/blob/435088f62cf4281e5f1cdfac5495c01688d29805/app/assets/javascripts/discourse/app/controllers/topic.js#L1114C3-L1118C1>

У вас уже есть доступ к `model` в коннекторе, так что имеет ли смысл просто выполнить `this.args.model.toggleStatus("visible")` прямо из вашего коннектора?

---

<div class="post-metadata">

**Author:** ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)\
**Post date:** [28.Май.2025 07:55:44 UTC](https://meta.discourse.org/t/toggling-visibility-within-a-topic-connector/367898/7 "2025-05-28T07:55:44Z")

</div>

> [@david](#):
>
> `this.args.model.toggleStatus("visible")`

Вау, спасибо, это здорово!

Это, безусловно, звучит гораздо логичнее. Я не знал, что такая возможность существует, попробую!

---

<div class="post-metadata">

**Author:** ![system](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/system/32/443519_2.png) [@system](https://meta.discourse.org/u/system)\
**Post date:** [27.Июнь.2025 07:56:13 UTC](https://meta.discourse.org/t/toggling-visibility-within-a-topic-connector/367898/8 "2025-06-27T07:56:13Z")

</div>

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
