Как настроить панель администратора в Keystone JS? (Или: как работают пользовательские страницы администратора в демо-проекте / блоге Keystone JS?) - PullRequest
0 голосов
/ 19 февраля 2020

Мы собираемся использовать Keystone JS в большом проекте, и мы хотим иметь возможность настроить панель администратора. Вот хороший пример того, как это сделать здесь , и я рассматривал этот PR для проекта . Хотя пример выглядит так, как будто он будет работать для нас, я не понимаю логику c, стоящую за ним, то есть то, что нам нужно реализовать, чтобы заставить его работать, каковы возможности и ограничения.

Это тот случай, когда при использовании приложения Keystone Next JS (что хорошо для нас), если вы добавите папку /admin/pages, приложение Keystone будет искать там и вместо этого использовать эти пользовательские страницы администратора из обычных? Я предполагаю, что у нас есть полный доступ к остальной части приложения, контроллерам и БД с этих страниц ....

Я также заметил, что JedWatson отмечает в https://github.com/keystonejs/keystone/pull/1019 что

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

Отсутствует ли поддержка SSR только для части администратора, или добавление пользовательских страниц администратора как-то влияет на поддержку SSR в остальной части приложения? (По этой причине мы используем SSR)

Спасибо за любую информацию.

1 Ответ

1 голос
/ 19 февраля 2020

Существует два API для пользовательских страниц, один из них pages в конструкторе приложения admin-ui, а второй - часть hooks API в конструкторе keystone.

  1. pages: эта версия унаследована и добавляет только пользовательские страницы, она не перезаписывает существующие страницы списка в admin-ui, а только скрывает их, если не настроена должным образом. обычно Dashboard виден и все списки перечислены там.
  2. hooks: это новое и ожидается добавление дополнительных опций настройки, к сожалению, мои PR устарели, и они не являются основной командой spe c keystone. это также не удаляет любые страницы.

Администраторский интерфейс запускается как приложение реакции, созданное или загруженное с помощью конфигурации веб-пакета. Вот почему нет поддержки ssr. хотя в примере используется пользовательский каталог администратора, но не загруженный компонентом nextjs, он загружается динамически с помощью сервера веб-пакетов, монтирующего приложение реакции администратора-*

, если вы действительно хотите использовать ssr, вы можете использовать некоторое обучение на закрытых PR, которые использовались как PO C long a go. но это было бы излишним, так как после этого администраторский интерфейс получил гораздо больше обновлений.

хуки / страницы имеют доступ к основному ограниченному набору доступа, есть некоторый доступ, основанный на контексте React, хуках провайдера и потребителя. Вы можете использовать перехватчики Reaction-Apollo, так как уже есть провайдер в root контекста реакции вы также можете использовать реагирующие перехватчики маршрутизатора, они обновлены до последней версии. он не имеет доступа к контексту или контроллеру на стороне сервера. (не уверен, что вы имели в виду под контроллером)

...