4.0 KiB
4.0 KiB
Обновление ReUI до последней версии
Ветка: chore/reui-latest (от feat/design-preview). План составлен по ReUI MCP
(get_agent_skill, get_component data-grid|filters, get_block data-grid-drag-drop-2,
get_project_context) и документации reui.io.
Было → стало
| Что | Было | Стало |
|---|---|---|
Skill ReUI (.claude/.agents/.cursor/.opencode) |
3bdbad788a (в AGENTS.md значилась 668fb463eb), 20 компонентов |
68f0e6fa91, 27 компонентов |
@tanstack/react-table |
8.21.3 (useReactTable) |
9.3.1 (useTable + dataGridFeatures) |
reui/data-grid/* |
v8-вариант | v9: DnD-строки и колонки, виртуализация, выбор ячеек, i18n, getRowStatus |
reui/filters |
один файл filters.tsx, плоский Filter[] |
каталог filters/, дерево FilterQuery (группы и правила) |
reui/{badge,frame,alert,icon-tile,icon-stack,timeline} |
прежние | обновлены из реестра |
Примитивы packages/ui (button, checkbox, dropdown-menu, input, popover, select, separator, skeleton, spinner, tooltip, scroll-area, button-group) |
прежние | обновлены (зависимости реестра) |
| Новые зависимости | — | @dnd-kit/{core,sortable,modifiers,utilities}, @tanstack/react-virtual, date-fns |
Решения
- Установка через
shadcn add @reui/<имя> --overwriteизapps/webс ключом изapps/web/.env.local(в Git не попадает). Блоки и компоненты ставились целиком: частичное обновление ломает связку data-grid ↔ TanStack v9. - Реестр прописывает зависимость
cnкак npm-пакет; в проектеcnживёт в@authportal/ui/lib/utils, поэтому импортыfrom "cn"заменены, пакетcnне добавлялся. - Код реестра использует
process.env.NODE_ENVи неиспользуемые параметры. Вtsconfig.app.jsonдобавлен типnodeи выключеныnoUnusedLocals/noUnusedParameters(контроль остаётся за ESLint). - Старый плоский API фильтров заменён деревом:
flattenFilterConditions(query)даёт{field, operator, values, negated}. Операторы:is_not_any_of→is_none_of. - Русские подписи DataGrid и Filters вынесены в
apps/web/src/lib/reui-ru.ts(DATA_GRID_RU,FILTERS_RU,FILTER_OPERATORS_RU) и передаются пропамиi18n/labels/operatorLabels.
Миграция потребителей
PreviewSectionGrid(design-preview/section-grid.tsx) —useTable,ColumnDef<DataGridFeatures, T>.AdminUsersGrid(reui-kit) —useTable,ColumnVisibilityState,FiltersнаFilterQuery.- Страница входов (
routes/_auth.admin.logins.tsx) —useTableдля истории и сессий. - «Ссылки приложений» (макет) — настоящее перетаскивание строк через
rowsDraggableи dnd-kit.
Проверка
pnpm --filter web build, pnpm --filter web lint, pnpm --filter @authportal/api test;
браузер: все разделы /design-preview, ширины 390/820/1180/1440, консоль без ошибок.
Боевые страницы (/, /apps, /account, /admin/*) проверяются сборкой и типами:
запуск API не требовался.
Как обновлять дальше
cd apps/web
pnpm dlx shadcn@latest add @reui/<имя> --overwrite --yes # REUI_LICENSE_KEY из .env.local
curl.exe -fsSL https://mcp.reui.io/install | node - # skill и правила для агентов (из корня)