chore(docs): обновить skill ReUI до 68f0e6fa91 и описать миграцию
Установщик ReUI обновил skill для Claude/Codex/Cursor/OpenCode, правила в AGENTS.md и MCP-конфиги (ключ только ссылкой на REUI_LICENSE_KEY). План и решения — docs/reui-upgrade.md. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
7c4430d240
commit
4f5026980a
77 files changed
+3278
-941
No files matched your search
@@ -0,0 +1,53 @@
|
||||
# Обновление 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`.
|
||||
|
||||
## Миграция потребителей
|
||||
|
||||
1. `PreviewSectionGrid` (`design-preview/section-grid.tsx`) — `useTable`, `ColumnDef<DataGridFeatures, T>`.
|
||||
2. `AdminUsersGrid` (`reui-kit`) — `useTable`, `ColumnVisibilityState`, `Filters` на `FilterQuery`.
|
||||
3. Страница входов (`routes/_auth.admin.logins.tsx`) — `useTable` для истории и сессий.
|
||||
4. «Ссылки приложений» (макет) — настоящее перетаскивание строк через `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 не требовался.
|
||||
|
||||
## Как обновлять дальше
|
||||
|
||||
```bash
|
||||
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 и правила для агентов (из корня)
|
||||
```
|
||||
Reference in new issue
Block a user