Что ж, похоже, что этот компонент в любом случае ещё не обновлён для списков тем Glimmer:
Я так редко пользуюсь телефоном, но я почти уверен, что это часть нашего обсуждения. Я обновился довольно поздно вчера, и пользователи начали жаловаться. Я применил ваше исправление несколько минут назад. Тема — стандартная для Discourse.
Я проверил здесь и почти уверен, что последний аватар тоже здесь не использовался.
Это просто выглядит не очень хорошо. Но это не только ваша проблема — оба похожих компонента теперь отображают и аватар, и миниатюру. Конечно, я знаю, как скрыть аватары, так что это простое решение.
Честно говоря, не знаю, есть ли здесь что-то большее, чем просто (моё) предпочтение. Но что-то изменилось, иначе мои пользователи не начали бы задавать вопросы. Я пока немного рано, потому что у меня сейчас всего 6 часов, и я ещё не получил никаких подтверждений, что именно пошло не так.
Это не предполагалось, и, на мой взгляд, это выглядит ужасно, но воспроизвести проблему мне не удалось.
Как видно на моем скриншоте, на моих экземплярах этого не происходит.
Пожалуйста, убедитесь, что нет других активных компонентов, влияющих на отображение списка тем. Сейчас это API, и другие компоненты могут вносить помехи, если они активны. Затем проверьте, сохраняется ли проблема. Если проблема сохраняется, поделитесь своими настройками.
Кстати, этот компонент темы никогда не проектировался для совместимости с другими компонентами, влияющими на список тем. Поэтому вы можете экспериментировать с различными комбинациями, но гарантий нет.
Конечно, я забыл об этом упомянуть, но я сразу же попробовал это как единственный компонент. Поскольку я уверен, что у вас установлена последняя версия Discourse, должен спросить: не думаете ли вы, что проблема может быть связана с каким-либо плагином?
Возможно, это случай, который я упустил. Можешь поделиться HTML одного элемента списка тем (всей строки)?
Или отправь мне в личку веб-ссылку.
Столько?
фрагмент html
<tr data-creator-name="Jagster" id="ember42" class="topic-list-item category-chattifoorumi tag-meemit has-excerpt liked visited ember-view">
<div class="hidden">
<div class="hidden">
<td class="topic-list-data">
<div class="pull-left">
<a href="/t/meemit-ja-muut-tuplavitsit/1263/549" aria-label="Профиль пользователя Jagster, последний автор" data-user-card="Jagster">
<img alt width="48" height="48" src="/user_avatar/foorumi.katiska.eu/jagster/96/6057_2.png" class="avatar" title="Jagster">
</a>
</div>
<div class="topic-item-metadata right">
<span id="_render_glimmer_25" class="hbr-ember-outlet">
<div class="topic-thumbnail">
<a>
<img class="thumbnail non-tiles-thumbnail" src="https://cdnfoorumi.katiska.eu/optimized/2X/b/b5fdeed33ad48a86cc12ecb1fb0acfc55f62247c_2_536x800.jpeg" loading="lazy">
</a>
</div>
</span>
<div class="main-link">
О боже… это выглядит плохо. Трудно читать.
Что ж, ссылка всё равно публичная, и я не думаю, что целый финский форум вызовет интерес — а в случае если кто-то посчитает ссылку спамом, её легко отредактировать позже.
https://foorumi.katiska.eu (давайте не будем будить автоматические системы) и прокрутите немного вниз. Вы найдёте его. И если хотите более чистый вид, тема test — хороший вариант.
Отлично.
Строка с проблемой выглядит так:
<tr data-creator-name="Jagster" id="ember42" class="topic-list-item category-chattifoorumi tag-meemit has-excerpt liked visited ember-view">
Этот класс должен содержать has-thumbnail, чтобы CSS мог скрыть аватар…
Давайте я перепроверю, что это исправление работает на самой последней версии Discourse.
По сути, это то же самое, но короче и условно. Я использовал это для мобильных устройств?
.topic-list td div.pull-left a {
display: none;
}
.topic-list td div.right {
margin-left: 0px;
}
Да:
По-прежнему не могу воспроизвести вашу проблему на самом последнем коммите — ни в разделе «Последние» дома, ни в категории. ![]()
Убедитесь, что настройка списка тем Glimmer включена, а не установлена в режим «Авто»?
Это в режиме авто
Я это изменю.
редактирование
О, черт — это было то самое.
Так вот, «авто», которое включает в себя «включено», не то же самое, что просто «включено». Есть ли какой-то механизм, который явно указывает Glimmer, что это допустимо, если только не происходит откат к старой системе?
Это очень полезная информация.
И удивительная! По крайней мере, мои инструкции по настройке были верны ![]()
Я уточню у Дэвида.
На данный момент есть следующее:
Похоже, система считает, что что-то несовместимо, поэтому происходит возврат к старой системе.
Да, точно. «Auto» будет работать так же, как «enabled», если все установленные вами темы и плагины совместимы с обновлениями.
Если они не совместимы, то режим будет вести себя как «disabled», и в консоль браузера будет выведено сообщение с объяснением, какую тему или плагин нужно обновить.
Для наших официальных тем и плагинов мы обеспечили их совместимость одновременно как со старыми, так и с новыми реализациями списков тем, чтобы пользователи могли обновлять другие темы и плагины по одному, не беспокоясь о настройке сайта. Переключение реализации произойдет автоматически, как только последний плагин или тема будут готовы.
Однако обеспечение обратной совместимости требует гораздо больше работы, особенно в сложных случаях. Поэтому я понимаю, почему это было пропущено для topic-list-previews ![]()
Один из вариантов, который вы можете реализовать здесь, @robert, — добавить четкое сообщение об ошибке для пользователей. Например, что-то вроде:
import { withSilencedDeprecations } from "discourse/lib/deprecated";
...
withSilencedDeprecations("discourse.hbr-topic-list-overrides", () => {
api.modifyClass("component:topic-list", {
init(){
alert("topic-list-previews нельзя запускать вместе с другими темами или плагинами, несовместимыми с глиммерным списком тем. Подробнее см. https://meta.discourse.org/t/209973/521");
return this._super(...arguments);
}
});
});
Это позволит изменить старый список тем так, чтобы он выводил ошибку, если он рендерится во время работы topic-list-previews.
Очень полезно, спасибо, я добавлю.
Да, мне нужно рационально подходить к тому, сколько времени я трачу
, поэтому обратная совместимость была убрана.
Однако обновление зафиксировано, так что это своего рода компромисс.
Спасибо, Дэвид. Я использовал этот вариант в компоненте своей темы. Но до того, как я нашёл это в репозитории решённых плагинов, я применял site.useGlimmerTopicList, который тоже, казалось, работал. Это тоже хороший вариант? Я использовал это в инициализаторах и шаблонах.
Сейчас это допустимо, но позже это свойство будет удалено (то есть станет undefined), когда список тем на Glimmer станет единственным вариантом. Поэтому обязательно используйте его так:
if(!site.useGlimmerTopicList){
// делаем старое
}
а не так:
if(site.useGlimmerTopicList){
// делаем новое
}
Кстати, добавлено:
Очень признателен.
@Jagster, если у тебя есть время, пожалуйста, обнови, установи режим «Авто» и проверь, появится ли это сообщение?
Кстати, @david, к сведению: мне кажется, нужно также подавление eslint? (и pluginId)
