Files
mechanic-pwa/mechanic-pwa/frontend/package.json
T
tremble7681andClaude Opus 4.8 2c02d15a10 repairs(pwa): восстановлены детали/правка/лента с деньгами + слияние со складом
Прод mechanic-pwa собирался с ветки feat/driver-pwa, а main отставал на 18
коммитов (24.05→10.06). Сборка от 29.07 ушла в прод с main — из приложения
пропали разделы. Вернул содержимое ветки и заново наложил работу 29.07.

Возвращено:
- лента: сумма за месяц, разделители по дням с итогом дня, цена в строке,
  бейдж «с улицы»;
- карточка ремонта /repairs/:id (ссылка из ленты вела в никуда);
- правка ремонта /repairs/:id/edit (окно 1 час);
- ремонт «с улицы» /repairs/new-external;
- блок «Механики» — делёж оплаты 1/N;
- vitest-харнесс и вынесенные в lib/ тестируемые хелперы.

Поверх наложено (работа 29.07): несколько замен масла за заезд, запчасти из
складского каталога вместо свободного текста.

Дополнительно:
- пикер деталей вынесен в общий PartsPickerModal (создание + правка). Без
  этого правка ремонта отправляла детали без part_id и сверка склада
  возвращала всё списанное на остаток;
- форма правки знает про 1:N масла — раньше схлопнула бы вторую запись;
- карточка ремонта показывает артикул детали и все замены масла.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-30 11:53:02 +10:00

56 lines
1.5 KiB
JSON

{
"name": "frontend",
"private": true,
"version": "0.0.0",
"type": "module",
"scripts": {
"dev": "vite",
"build": "tsc -b && vite build",
"lint": "eslint .",
"preview": "vite preview",
"test": "vitest run",
"test:watch": "vitest"
},
"dependencies": {
"@radix-ui/react-label": "^2.1.8",
"@radix-ui/react-slot": "^1.2.4",
"@tanstack/react-query": "^5.100.10",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"ky": "^1.14.3",
"lucide-react": "^0.400.0",
"react": "^19.2.6",
"react-dom": "^19.2.6",
"react-hook-form": "^7.76.0",
"react-router-dom": "^7.15.1",
"sonner": "^1.7.4",
"tailwind-merge": "^2.6.1",
"vite-plugin-pwa": "^1.3.0",
"zod": "^3.25.76",
"zustand": "^5.0.13"
},
"devDependencies": {
"@eslint/js": "^10.0.1",
"@testing-library/jest-dom": "^6.9.1",
"@testing-library/react": "^16.3.2",
"@testing-library/user-event": "^14.6.1",
"@types/node": "^24.12.4",
"@types/react": "^19.2.14",
"@types/react-dom": "^19.2.3",
"@vitejs/plugin-react": "^6.0.1",
"@vitest/coverage-v8": "^4.1.8",
"autoprefixer": "^10.5.0",
"eslint": "^10.3.0",
"eslint-plugin-react-hooks": "^7.1.1",
"eslint-plugin-react-refresh": "^0.5.2",
"globals": "^17.6.0",
"jsdom": "^29.1.1",
"postcss": "^8.5.14",
"tailwindcss": "^3.4.19",
"typescript": "~6.0.2",
"typescript-eslint": "^8.59.2",
"vite": "^8.0.12",
"vitest": "^4.1.8"
}
}