Przegląd rozwoju panelu administracyjnego
Dowiedz się, jak rozszerzać panel administracyjny Deenruv o niestandardowe pluginy za pomocą @deenruv/react-ui-devkit
Pakiet @deenruv/react-ui-devkit to oficjalny zestaw narzędzi do tworzenia pluginów UI dla panelu administracyjnego Deenruv. Zapewnia wszystko, czego potrzebujesz do budowania typowo-bezpiecznych pluginów rozszerzających panel administracyjny o niestandardowe strony, komponenty, nawigację, widgety, powiadomienia i wiele więcej.
Co zapewnia react-ui-devkit?
System pluginów
Typowo-bezpieczny system definiowania pluginów z 15 punktami rozszerzeń, które pozwalają wstrzykiwać niestandardową funkcjonalność w każdą część panelu administracyjnego — strony, tabele, zakładki, akcje, paski boczne, nawigację, widgety dashboardu, powiadomienia i więcej.
Wstrzykiwanie oparte na lokalizacji
Kompleksowy zestaw lokalizacji wstrzykiwania w panelu administracyjnym:
- 21 lokalizacji list — rozszerzanie widoków list dla produktów, zamówień, klientów i więcej
- 20 lokalizacji szczegółów — rozszerzanie widoków szczegółów/edycji o zakładki, komponenty paska bocznego i akcje
- Lokalizacje modali — wstrzykiwanie do modali panelu administracyjnego
Biblioteka komponentów
Ponad 70 komponentów zorganizowanych według złożoności:
| Kategoria | Liczba | Opis |
|---|---|---|
| Atom | 42 | Prymitywy oparte na shadcn/ui (Button, Input, Table, Dialog, itp.) |
| Molecule | 13 | Złożone komponenty (SearchInput, SortButton, ListTable, itp.) |
| Universal | 15 | Komponenty z logiką biznesową (RichTextEditor, AssetPicker, itp.) |
| Template | 2 | Pełne układy stron (DetailList, DetailView) |
| Core | 4 | Markery wstrzykiwania i renderery |
Hooki
Dedykowane hooki do rozwoju panelu administracyjnego:
useDeenruvForm— Zarządzanie stanem formularza z React Hook Form + walidacją ZoduseList— Zarządzanie paginowanymi listami z sortowaniem, filtrowaniem i parametrami URLuseTranslation— Hook i18n powiązany z instancją i18n DeenruvuseAssets— Zarządzanie zasobami z paginacją i wyszukiwaniem- Oraz:
useZodValidators,createFormSchema,useDebounce,useLocalStorage,useErrorHandler
Klient GraphQL
Klient GraphQL oparty na Zeus Thunder z automatycznym wstrzykiwaniem customFields:
apiClient— Standardowe zapytania i mutacjeapiUploadClient— Mutacje przesyłania plikówuseQuery/useLazyQuery/useMutation— Hooki React do deklaratywnego pobierania danych
Zarządzanie stanem
Globalne magazyny oparte na Zustand:
useSettings— Język, motyw, token autoryzacji, wybrany kanałuseServer— Konfiguracja serwera, kanały, uprawnieniauseOrder— Stan widoku szczegółów zamówieniauseGlobalSearch— Stan globalnego wyszukiwania
Nawigacja i routing
Typowo-bezpieczne helpery tras i konfigurowalna nawigacja panelu administracyjnego z identyfikatorami grup.
i18n
Wbudowany system tłumaczeń z przestrzeniami nazw per plugin.
Widgety dashboardu
Skalowalne, konfigurowalne widgety dashboardu, które pluginy mogą rejestrować.
Powiadomienia
System powiadomień oparty na odpytywaniu z konfigurowalnymi miejscami wyświetlania.
Przegląd architektury
Typowy plugin Deenruv z UI składa się z dwóch części:
plugins/my-plugin/
src/
my-plugin.plugin.ts # Plugin po stronie serwera (dekorator @DeenruvPlugin)
plugin-ui/
index.tsx # Definicja pluginu UI (createDeenruvUIPlugin)
components/ # Komponenty React
pages/ # Komponenty stron dla tras
locales/ # Pliki tłumaczeń
graphql/ # Zapytania, mutacje, selektoryPlugin serwerowy obsługuje logikę backendu (encje, serwisy, resolvery), natomiast plugin UI definiuje sposób rozszerzania panelu administracyjnego (strony, nawigacja, komponenty).
Strony pluginów UI są automatycznie prefiksowane ścieżką admin-ui/extensions/{plugin-name}/, więc wystarczy zdefiniować ścieżki względne w ramach pluginu.
Następne kroki
- Pierwsze kroki — Stwórz swój pierwszy plugin UI panelu administracyjnego
- System pluginów — Szczegółowe omówienie wszystkich punktów rozszerzeń
- Hooki — Hooki formularzy, list i tłumaczeń
- Komponenty — Pełny katalog komponentów
- Szablony — Układy stron DetailList i DetailView
- Klient GraphQL — Pobieranie danych i mutacje
- Zarządzanie stanem — Magazyny Zustand