Архитектура TC/Plugin: нужно ли нам больше контроля над классами?

Недавно я перенёс небольшой компонент в формат .gjs для плагина Locations. Он добавляет альтернативный вид локации на сайт и в блок локаций на странице профиля пользователя. Одновременно с этим он скрывает избыточную информацию о локациях, которая теперь дублируется кодом плагина.

Я переоценил ценность ранее написанного кода с точки зрения современных стандартов.

Теперь, хотя использование плагинов (outlets) — это хорошо, не стоит ли также добавить возможность влиять на родительский класс обёрточного div над outlet?

Поскольку в данном случае мне приходится манипулировать DOM, чтобы скрыть избыточную информацию у соседнего элемента:

Я бы предпочёл внести это изменение через явное модифицирование компонента, а не через манипуляции с DOM.

Возможно, я упустил какой-то трюк.

Можете набросать, как, по вашему мнению, должен работать такой API на стороне ядра и плагинов/тем?

У нас есть похожий хелпер {{body-class "blah"}}. Если разместить его в любом outlet, он добавит класс “blah” к тегу <body>.

Ещё одна идея — использовать более сложный селектор CSS. Например, все целевые браузеры Discourse теперь поддерживают :has()

(но важно учитывать производительность при его использовании)

Ах, значит, я упустил важный момент :sweat_smile:

Да, я предпочитаю это варианту с опцией has.

О, это может сработать в моём случае, очень полезно, давайте попробую!

К сведению, похоже, всё сработало отлично:

Большое спасибо, Дэвид!