Модальное окно предварительного просмотра темы

Привет, @Jagster, спасибо за отчет! Вот исправление: FIX: Replace visibility:hidden to allow MathJax rendering · VaperinaDEV/discourse-topic-preview-modal@f9eb70f · GitHub


Спасибо, @RGJ, я добавил для этого настройку.


Отличный вопрос.

PostList/PostListItem предназначены для списков краткого содержания на основе отрывков (черновики, закладки, ленты активности), а не для отображения фактического интерактивного потока сообщений темы.

Они выводят @post.excerpt/expandedExcerpt через DDecoratedHtml, а также заголовок с аватаром и кнопку разворачивания отрывка. Здесь нет действий «лайк», «цитата», «ответ», «редактирование» или «жалоба» — то есть всего интерактивного функционала сообщений, который нужен модальному окну.

Пагинация в PostList также однонаправлена (fetchMorePosts только добавляет записи вниз), тогда как модальное окно должно открываться на последнем прочитанном сообщении и загружать как более ранние, так и более поздние сообщения вокруг него — для этого требуется двунаправленная подгрузка сервиса postStream, а не простой обратный вызов fetch-more.

Так что повторное использование PostList потребовало бы переписывания большей части интерактивного поведения Post и двунаправленной подгрузки postStream поверх компонента, созданного для другой задачи. Использование реального компонента Post из ядра и сервиса postStream напрямую гарантирует, что модальное окно будет вести себя идентично настоящей странице темы.

3 лайка