Files
auth-portal/docs/reui-upgrade.md
T
DenozordecandClaude Sonnet 5.5 4f5026980a 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 <[email protected]>
2026-10-18 01:58:41 +07:00

54 lines
4.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Обновление 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 и правила для агентов (из корня)
```