После обновления до версии 2.6.0.beta6 (3e1b94c227) карточка пользователя не открывается на мобильных устройствах. Я протестировал на Meta, и там проблем не возникло. Возможно, эта проблема связана с тем, что наш Discourse настроен для правостороннего написания (RTL).
На компьютере проблем нет, но на мобильном телефоне при нажатии на изображение пользователя карточка не открывается; однако при повторном нажатии происходит переход на страницу профиля.
Ошибок в логах нет…
Я проводил тестирование с шаблоном по умолчанию без каких-либо компонентов.
Мне удалось воспроизвести эту проблему. Похоже, это ошибка в R2.
Если компилятору передан опция :rtl, он прогоняет CSS через R2, и тот выполняет магические преобразования для RTL.
Это работает отлично, но по какой-то причине мы, кажется, попадаем в пограничный случай, когда R2 возвращает искажённый CSS. Мы используем паттерн для создания эффекта плавного появления (fade) для мобильных навигационных меню, и он выглядит так.
Это не единственное место, где мы его используем; это просто пример.
Кажется, этот паттерн слишком сложен для R2. Мы вызываем функцию RGBA и передаём ей CSS-переменную, а также добавляем стоп-точки (stops).
Когда этот код проходит через R2, он возвращает что-то вроде этого.
Когда эта опция отключена (даже в локальной сборке с RTL), мы получаем следующее:
Искажённый CSS сбивает компилятор с толку, и он сворачивает любой CSS, идущий после этого правила, в бесполезный код, который никогда не применяется.
Таким образом, несколько таблиц стилей после этой никогда не загружаются на мобильных устройствах в режиме RTL. Одна из них — таблица стилей карточки пользователя.
Я попробовал упростить этот паттерн, убрав стоп-точки, и, кажется, это сработало. То есть мы переходим от этого: