Розробка кастомних Views KeystoneJS

Наша компанія займається розробкою, підтримкою та обслуговуванням сайтів будь-якої складності. Від простих односторінкових сайтів до масштабних кластерних систем, побудованих на мікро сервісах. Досвід розробників підтверджено сертифікатами від вендорів.

Розробка та обслуговування будь-яких видів сайтів:

Інформаційні сайти або веб-програми
Сайти візитки, landing page, корпоративні сайти, онлайн каталоги, квіз, промо-сайти, блоги, ресурси новин, інформаційні портали, форуми, агрегатори
Сайти або веб-програми електронної комерції
Інтернет-магазини, B2B-портали, маркетплейси, онлайн-обмінники, кешбек-сайти, біржі, дропшиппінг-платформи, парсери товарів
Веб-програми для управління бізнес-процесами
CRM-системи, ERP-системи, корпоративні портали, системи управління виробництвом, парсери інформації
Сайти або веб-програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, конструктори сайтів, портали надання електронних послуг, відеохостинги, тематичні портали

Це лише деякі з технічних типів сайтів, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Пропоновані послуги
Показано 1 з 1 послугУсі 2065 послуг
Розробка кастомних Views KeystoneJS
Середня
~2-3 робочих дні
Часті питання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1171
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    874
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1094
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    831
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851

Розробка кастомних Views KeystoneJS

KeystoneJS Admin UI побудований на React і дозволяє повністю замінювати або розширювати інтерфейс через кастомні Views. Це не просто тема — можна переопредліти компоненти для конкретних Lists, додати власні сторінки, змінити навігацію та дашборд.

Типи View-розширень

1. Custom Pages — повністю кастомні сторінки в Admin UI на произвільних шляхах.

2. Custom Navigation — заміна стандартного меню.

3. List Views — переопередління компонентів для конкретного List.

4. Field Views — компоненти для полів (розглядаються в розділі Custom Fields).

Custom Navigation

// keystone.ts
ui: {
  getAdditionalFiles: async () => [
    {
      mode: 'write',
      src: `
        export { default } from '../admin/navigation';
      `,
      outputPath: 'admin/config.js',
    },
  ],
},
// admin/navigation.tsx
import { NavigationContainer, NavItem, ListNavItems } from '@keystone-6/core/admin-ui/components';
import type { NavigationProps } from '@keystone-6/core/admin-ui/components';

export default function CustomNavigation({ authenticatedItem, lists }: NavigationProps) {
  return (
    <NavigationContainer authenticatedItem={authenticatedItem}>
      <NavItem href="/">Дашборд</NavItem>

      {/* Групування по разділах */}
      <div className="mt-4 mb-1 px-3 text-xs font-semibold text-gray-400 uppercase">
        Контент
      </div>
      <ListNavItems lists={lists} include={['Post', 'Category', 'Tag']} />

      <div className="mt-4 mb-1 px-3 text-xs font-semibold text-gray-400 uppercase">
        Користувачі
      </div>
      <ListNavItems lists={lists} include={['User', 'Role']} />

      <NavItem href="/admin/analytics">Аналітика</NavItem>
    </NavigationContainer>
  );
}

Custom Dashboard

// admin/pages/index.tsx — переопередління стандартного дашборду
import { PageContainer } from '@keystone-6/core/admin-ui/components';
import { useQuery, gql } from '@keystone-6/core/admin-ui/apollo';

const STATS_QUERY = gql`
  query AdminStats {
    postsCount(where: { status: { equals: "published" } })
    draftsCount: postsCount(where: { status: { equals: "draft" } })
    usersCount
  }
`;

export default function CustomDashboard() {
  const { data, loading } = useQuery(STATS_QUERY);

  return (
    <PageContainer header="Панель управління">
      <div className="grid grid-cols-3 gap-4 mb-8">
        <StatCard label="Опублікованих постів" value={data?.postsCount} loading={loading} />
        <StatCard label="Чернеток" value={data?.draftsCount} loading={loading} />
        <StatCard label="Користувачів" value={data?.usersCount} loading={loading} />
      </div>

      <RecentPostsTable />
    </PageContainer>
  );
}

Custom Pages з произвільними маршрутами

// admin/pages/analytics.tsx
import { PageContainer } from '@keystone-6/core/admin-ui/components';

export default function AnalyticsPage() {
  return (
    <PageContainer header="Аналітика">
      {/* Встраиваємо Recharts, Chart.js або iframe Metabase */}
      <SalesChart />
      <TopContentTable />
    </PageContainer>
  );
}

Маршрут буде доступен по /admin/analytics автоматично — Next.js файлова маршрутизація працює в Admin UI.

Терміни розробки

Завдання Час
Custom Navigation 0.5 дня
Custom Dashboard зі статистикою 1–2 дні
Custom Page (аналітика, імпорт, etc.) 1–3 дні
Повний редизайн Admin UI 1–2 тижні