Skip to content

feat: перевести приложение на Vite и Mantine - #18

Merged
mokevnin merged 3 commits into
mainfrom
feat/mantine
Aug 24, 2026
Merged

feat: перевести приложение на Vite и Mantine#18
mokevnin merged 3 commits into
mainfrom
feat/mantine

Conversation

@mokevnin

Copy link
Copy Markdown
Contributor

Кампания «Bootstrap → Tailwind и Mantine», волна Mantine по репозиториям
hexlet-components. Регламент и срез: docs/css-frameworks-migration.md,
раздел «Компоненты».

Целевой стек кампании это Vite и Mantine, а репозиторий оставался на Create React
App с react-bootstrap. Оба заменены одним заходом, потому что react-scripts
тянул свою сборку и свой eslint, и снять только Bootstrap было нельзя.

  • AppShell вместо разметки на классах, Card с Container вместо сетки,
    TextInput и PasswordInput вместо Form.Control с form-floating;
  • уведомления @mantine/notifications вместо react-toastify;
  • валидация переехала с formik и yup на @mantine/form. Побочный эффект:
    сообщения стали обычными вызовами t(), поэтому preservePatterns в
    i18next.config.js больше не нужен;
  • React поднят до 19, его требует Mantine 9 в peerDependencies;
  • ушли sass с application.scss, index.css, reportWebVitals, setupTests,
    logo.svg и eslintConfig от Create React App;
  • сборка теперь в dist, как принято у Vite; путь в корневом start поправлен.

Тесты стали проверять то, что в них написано. В __tests__/example.spec.js
двенадцать expect(locator).toBeVisible() стояли без await, то есть это были
висячие промисы: проверка не выполнялась и упасть не могла. await добавлен, и
после этого прогон остался зелёным, то есть миграция ничего не сломала.

Браузерные тесты и сборка добавлены в CI: юнит-тестов в репозитории нет, и
интерфейс иначе не проверяется ничем.

Проверено: npx playwright test 2 из 2, make build, make lint и
make -C frontend lint чисты, страницы входа и регистрации просмотрены глазами.

🤖 Generated with Claude Code

mokevnin and others added 3 commits August 24, 2026 12:47
Целевой стек кампании это Vite и Mantine, а репозиторий оставался на
Create React App с react-bootstrap. Оба заменены вместе, потому что
react-scripts тянул свою сборку и свой eslint.

Компоненты: AppShell вместо разметки на классах, TextInput с
PasswordInput вместо Form.Control с form-floating, Card с Container
вместо сетки, уведомления @mantine/notifications вместо react-toastify.
Валидация переехала с formik и yup на @mantine/form, и сообщения теперь
видны extract'у как обычные ключи, поэтому preservePatterns больше не
нужен.

React поднят до 19, его требует Mantine 9 в peerDependencies. Ушли sass с
application.scss, index.css, reportWebVitals, setupTests, logo.svg и
конфиг eslint от Create React App. Сборка теперь в dist, как принято у
Vite.

В CI добавлены сборка и браузерные тесты: интерфейс в репозитории больше
ничем не проверяется.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
playwright.config.js пишет в tmp/artifacts, и .last-run.json уехал в
предыдущий коммит.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
После переезда на Vite сборка лежит в dist, а в .gitignore значился build
от Create React App, поэтому dist уехал в коммит.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@mokevnin
mokevnin merged commit fc14f02 into main Aug 24, 2026
2 checks passed
@mokevnin
mokevnin deleted the feat/mantine branch August 24, 2026 16:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant