Предварительный просмотр списков тем (TLP)

О, спешки нет. :+1: Проверьте, пожалуйста, когда у вас будет время, исходя из приоритетов. Тем временем я продолжу тестирование и сообщу, если возникнут какие-либо проблемы.

3 лайка

Кстати, я заметил наложение элементов списка тем на страницах категорий с отображением подкатегорий, это может повлиять на пользовательский опыт..

1 лайк

Скорее всего, это связано с ошибкой JavaScript либо в TLP TC, либо в чём-то другом.

Макет требует работающего JavaScript. Если что-то нарушает работу JS на странице, это может остановить «рендерер» TLP.

Что происходит при обновлении страницы?

Видите ли вы ошибку в консоли? Я пока не могу воспроизвести проблему, например: https://starzen.space/c/uncategorized/1

1 лайк

Мне удалось воспроизвести проблему (при этом плитки и сниппеты всё ещё включены).

И да, после обновления страницы макет на короткое время становился нормальным. Кстати, пустое пространство внизу плиток, похоже, не является нормальным явлением. В консоли я не увидел никаких ошибок, кроме напоминания «добавьте ключ pluginId в ваш вызов modifyClass».

После нескольких повторных обновлений макет снова сломался так, как показано на первом изображении.

Хм, похоже, в категории по вашей ссылке нет подкатегории. Сбой макета происходит только тогда, когда на странице категории есть список подкатегорий.

У меня тоже не воспроизводится: я только что создал подкатегорию, перешел к ней, и плитки отображаются корректно.

Попробуйте отключить все остальные TC и плагины и выяснить, не является ли что-то из них причиной сбоя.

3 лайка

Привет, Роберт

Нашёл ещё одну небольшую проблему: когда TLP tc активирован, даже без включения его в конкретном представлении, ширина div-элемента с классом category-and-tags в обычном списке тем сжимается. Мне, однако, не удалось точно определить, какой именно CSS вызывает эту проблему.

С включённым TLP

Без включённого TLP

1 лайк

Я внес это изменение в ответ на вашу предыдущую обратную связь. Это сделано намеренно для поддержки действий. Это компромисс. Когда контейнерные запросы будут доступны во всех основных браузерах, я смогу сделать это более умным решением. На данный момент Firefox является исключением.

Это действительно выглядит странно, потому что у вас не включены действия.

Вот пример с включенными действиями:

Если вас устраивает, что конец тегов не выравнивается по вертикали с действиями, можно спроектировать это иначе, но это будет расточительным способом.

Возможно, я смогу добавить небольшую доработку, чтобы уменьшить «колонку» действий, если их нет.

Честно говоря, плитки — это самый продвинутый вариант макета для мобильных устройств.

1 лайк

Привет, merefield. Спасибо за подробное объяснение.

В моём конкретном случае я включил TLP только для отображения выбора миниатюр темы (при этом все остальные настройки отключены).

Если бы существовал способ отображать выбор миниатюр без активного модуля TLP, я бы выбрал его. Поэтому я и отправил этот «отчёт об ошибке». Поскольку модуль TLP активен даже при отсутствии включённых настроек, я не ожидал этого.

Если эта «ошибка» не критична, я могу отправить запрос на добавление новой функции: возможность активировать выбор миниатюр через настройки плагина без необходимости включать модуль TLP. Реально ли это реализовать?

1 лайк

Я немного изменил это, чтобы дать вам (довольно много) больше места, если вы не используете действия:

Пожалуйста, обновите и попробуйте это.

4 лайка

Привет, Роберт!

Спасибо за быстрое исправление, очень ценим! Это уже ближе к ожидаемому поведению, но поскольку место на мобильных устройствах сильно ограничено, мы хотим его максимально использовать.

Продолжая эту тему. Такая функция устранила бы описанную выше проблему.

1 лайк

TC и плагин разделены только для того, чтобы пользователи без возможности использования плагина могли получить доступ к базовым функциям и обеспечивать очень быстрое развертывание изменений фронтенда.

В настоящее время я не планирую менять это разделение ответственности и намерен оставить весь код фронтенда в TC. Кроме того, мое время довольно ограничено.

3 лайка

В недавнем рефакторинге я сломал список тем, приношу извинения. Это уже исправлено FIX: refactor broke Like · merefield/discourse-tc-topic-list-previews@f41d9de · GitHub

3 лайка

@Kuro22, ты решил эту проблему? Удалось ли найти конфликты с другими компонентами или плагинами, или ты увидел ошибку?

1 лайк

Привет, после обновления компонента у меня возникла ошибка:

Ваш сайт может не работать, так как тема/компонент Topic List Previews содержит ошибки. Отключите его здесь..

Я попробовал отключить все остальные компоненты, а также переключиться на другие темы — ошибка не исчезает.
По крайней мере, она отображается только при входе в систему, и я не заметил никаких реальных проблем, кроме этого предупреждения.

Логи

Тема/компонент Topic List Previews вызывает ошибки:

initialize@https://mydomain.com/theme-javascripts/b44a9c3c1aecf9da1fde6508abfa890657ed08b0.js?__ws=mydomain.com:953:21
_prepareInitializer/init.initialize@https://mydomain.com/assets/application-b796ecb1e6cc40160bed7938dadcbb11fb359f74cf8e1065c0d7c2a0c69b2e82.js:9:12432
runInstanceInitializers/<@https://mydomain.com/assets/vendor-e356674b67559130cbeca4530a0a5a00e71144f5e7556902f8a5efc8ac3f2282.js:21:22368
Vertices</Vertices.prototype.each@https://mydomain.com/assets/vendor-e356674b67559130cbeca4530a0a5a00e71144f5e7556902f8a5efc8ac3f2282.js:30:11271
Vertices</Vertices.prototype.walk@https://mydomain.com/assets/vendor-e356674b67559130cbeca4530a0a5a00e71144f5e7556902f8a5efc8ac3f2282.js:30:10019
DAG</DAG.prototype.each@https://mydomain.com/assets/vendor-e356674b67559130cbeca4530a0a5a00e71144f5e7556902f8a5efc8ac3f2282.js:30:9174
DAG</DAG.prototype.topsort@https://mydomain.com/assets/vendor-e356674b67559130cbeca4530a0a5a00e71144f5e7556902f8a5efc8ac3f2282.js:30:9236
_runInitializer@https://mydomain.com/assets/vendor-e356674b67559130cbeca4530a0a5a00e71144f5e7556902f8a5efc8ac3f2282.js:21:22761
runInstanceInitializers@https://mydomain.com/assets/vendor-e356674b67559130cbeca4530a0a5a00e71144f5e7556902f8a5efc8ac3f2282.js:21:22177
_bootSync@https://mydomain.com/assets/vendor-e356674b67559130cbeca4530a0a5a00e71144f5e7556902f8a5efc8ac3f2282.js:20:24938
didBecomeReady@https://mydomain.com/assets/vendor-e356674b67559130cbeca4530a0a5a00e71144f5e7556902f8a5efc8ac3f2282.js:21:241
invoke@https://mydomain.com/assets/vendor-e356674b67559130cbeca4530a0a5a00e71144f5e7556902f8a5efc8ac3f2282.js:29:24903
flush@https://mydomain.com/assets/vendor-e356674b67559130cbeca4530a0a5a00e71144f5e7556902f8a5efc8ac3f2282.js:29:23174
flush@https://mydomain.com/assets/vendor-e356674b67559130cbeca4530a0a5a00e71144f5e7556902f8a5efc8ac3f2282.js:29:26603
_end@https://mydomain.com/assets/vendor-e356674b67559130cbeca4530a0a5a00e71144f5e7556902f8a5efc8ac3f2282.js:30:3918
end@https://mydomain.com/assets/vendor-e356674b67559130cbeca4530a0a5a00e71144f5e7556902f8a5efc8ac3f2282.js:29:30629
_run@https://mydomain.com/assets/vendor-e356674b67559130cbeca4530a0a5a00e71144f5e7556902f8a5efc8ac3f2282.js:30:4816
_join@https://mydomain.com/assets/vendor-e356674b67559130cbeca4530a0a5a00e71144f5e7556902f8a5efc8ac3f2282.js:30:4445
join@https://mydomain.com/assets/vendor-e356674b67559130cbeca4530a0a5a00e71144f5e7556902f8a5efc8ac3f2282.js:29:31756
join@https://mydomain.com/assets/vendor-e356674b67559130cbeca4530a0a5a00e71144f5e7556902f8a5efc8ac3f2282.js:23:2782
bind/<@https://mydomain.com/assets/vendor-e356674b67559130cbeca4530a0a5a00e71144f5e7556902f8a5efc8ac3f2282.js:23:3839
mightThrow@https://mydomain.com/assets/vendor-e356674b67559130cbeca4530a0a5a00e71144f5e7556902f8a5efc8ac3f2282.js:2:15381
resolve/</process<@https://mydomain.com/assets/vendor-e356674b67559130cbeca4530a0a5a00e71144f5e7556902f8a5efc8ac3f2282.js:2:16035

Используется Discourse 2.8.8 (версия 2.8.9 пока недоступна через YunoHost).

1 лайк

Скорее всего, проблема именно в этом.

TLP поддерживает только последнюю версию tests-passed (на данный момент это 2.9.0.beta10).

Я обновлялся буквально два дня назад без каких-либо проблем. (Обновление: только что выполнил обновление на другом сайте, и там тоже всё в порядке).

Боюсь, вам придётся обновиться до последней версии, чтобы это снова заработало. Проблема в том, что ядро Discourse очень быстро меняет версии Ember, поэтому TLP вынужден делать то же самое и успевать за ними. Похоже, что современный код TLP больше не работает с Discourse 2.8.8.

Если вы сможете найти коммит, вызвавший ошибку, и захотите отправить pull request, я рассмотрю возможность фиксации версии: Introducing .discourse-compatibility: pinned plugin/theme versions for older Discourse versions

2 лайка

Спасибо за ответ!
Можно ли пока откатить TLP?

1 лайк

Смотрите моё обновление выше. Я приму закрепление в PR, но вам придётся провести исследование, чтобы найти коммит, вызвавший проблему.

1 лайк

Это скорее «нет» с моими навыками :slight_smile:
Стоит ли ожидать каких-либо реальных проблем, если оставить всё так до выхода обновлений?

1 лайк

Я не могу дать вам никаких гарантий, но компонент затронет только фронтенд, так что это относительно безопасно. Вам придется тщательно его протестировать — из этого сообщения ясно, что что-то сломалось, но я не знаю, что именно! Вероятно, есть основной код, в котором можно разобраться, чтобы понять, что может вызвать это сообщение.

В любом случае вам действительно нужно найти способ попасть на ветку test-passed, иначе вы будете сталкиваться с этим снова и снова.

1 лайк

Кажется, в плагине #plugin есть небольшая ошибка.

Если вы посмотрите это видео, то, возможно, заметите, что превью тем немного сдвигаются вправо при нажатии кнопок «лайк» или «ссылка».

1 лайк