Featured Badges ломает страницу профиля пользователя

Здравствуйте,

Я заметил, что страница профиля пользователя обрывается сразу после заголовка «Рекомендуемые значки». Ниже ничего нет (особенно кнопки «Сохранить»), только подвал сайта.

В консоли разработчика обнаружил следующее:

Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'split')
    at l.<anonymous> (user-featured-badges.js:12:1)
    at getter (index.js:444:104)
    at l.a [as featuredBadges] (cache-BESCGvbE.js:1878:17)
    at eM (cache-BESCGvbE.js:1647:18)
    at index.js:95:32
    at index.js:75:37
    at Z (index.js:418:5)
    at T (index.js:74:16)
    at eU (index-Cx6axmzR.js:1786:17)
    at eK.create (index-Cx6axmzR.js:1961:17)
    at Object.evaluate (index.js:1393:23)
    at Object.evaluate (index.js:770:198)
    at tq.evaluateSyscall (index.js:3353:20)
    at tq.evaluateInner (index.js:3332:60)
    at tq.evaluateOuter (index.js:3329:10)
    at t1.next (index.js:3990:46)
    at t1._execute (index.js:3979:21)
    at t1.execute (index.js:3955:41)
    at tW.handleException (index.js:3447:19)
    at tJ.handleException (index.js:3595:52)
    at t$.throw (index.js:3400:16)
    at ek.evaluate (index.js:964:42)
    at t$._execute (index.js:3387:34)
    at t$.execute (index.js:3379:17)
    at tQ.rerender (index.js:3613:8)
    at t5.render (index-Cx6axmzR.js:5114:55)
    at index-Cx6axmzR.js:5390:16
    at tD (index.js:2893:7)
    at io._renderRoots (index-Cx6axmzR.js:5370:7)
    at io._renderRootsTransaction (index-Cx6axmzR.js:5418:12)
    at io._revalidate (index-Cx6axmzR.js:5451:10)
    at invoke (index.js:262:14)
    at m.flush (index.js:180:11)
    at g.flush (index.js:334:19)
    at q._end (index.js:762:32)
    at index.js:499:12
2 лайка

Есть какие-то идеи по этой проблеме? Какую информацию я могу предоставить для более детального её изучения?

1 лайк

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

1 лайк

Вы пробовали безопасный режим?

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

Возможно, @Arkshine знает об этом больше.

2 лайка

Спасибо за сообщение, @Roi, и спасибо, @Moin, что обратили на это моё внимание. Я смог воспроизвести проблему. Она возникает, когда у пользователя нет никаких значков. Я как можно скорее создам PR.

3 лайка

Спасибо! :slight_smile:

Кстати, я запускаю это как плагин. Это правильно, или мне следует запускать это как компонент темы?

1 лайк

Поехали:

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

4 лайка

Правильно ли я понимаю, что версия плагина лучше?

Спасибо за PR! :slight_smile: Это относится к обеим версиям?

Это зависит от того, хотите ли вы предоставить пользователям возможность контролировать, какие значки они хотят отображать (плагин), или хотите, чтобы администраторы управляли тем, какие значки разрешено отображать, исходя из значков текущего пользователя (TC).

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

2 лайка

PR уже слит, и всё снова работает. Ещё раз спасибо! :slight_smile:

1 лайк

Примечание: отслеживание ошибок для сторонних тем, компонентов или плагинов должно осуществляться исключительно в соответствующей теме, посвященной плагину/теме/компоненту, либо в специализированном трекере ошибок сторонних разработчиков.

3 лайка

@Arkshine, не могли бы вы поделиться ссылкой на тему в Meta по поводу затронутого компонента темы? Я перенесу всё туда и уберу эти посты административного характера.

Это плагин, и насколько мне известно, отдельной темы нет. Изначально Энгус опубликовал его в официальной теме TC: Post Badges - #121 by angus. :thinking:

2 лайка