food-market/docs/sprint7-progress.md
nns c201625b2b
Some checks are pending
CI / Backend (.NET 8) (push) Waiting to run
CI / Web (React + Vite) (push) Waiting to run
CI / POS (WPF, Windows) (push) Waiting to run
docs(sprint7): пункт 2 ✓ + screenshot script
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-30 10:46:52 +05:00

3.9 KiB
Raw Blame History

Sprint 7 — UX-полировка stage + демо-данные

Цель: https://test.admin.food-market.kz открывается → наполненные модули видны сразу, UI удобен (confirm на destructive, toast'ы, скелеты, empty-states, breadcrumbs, shortcuts).

Старт: 2026-05-29. Исполнитель: Claude Opus 4.7 (автономный режим).

Принципы

  • Каждый пункт: build + тесты + ~/deploy-stage.sh + Playwright-скриншот retest на стенде + коммит + [x] в этом доке.
  • НЕ трогать: global.json, прод-стек (admin.food-market.kz), POS WPF.
  • Команды для теста UI на стенде: cd src/food-market.web && pnpm dev локально к API; либо Playwright против https://test.admin.food-market.kz после деплоя.

Чек-лист

  • 1. Demo-data seeder для stage — POST /api/admin/seed-demo + admin-кнопка «Заполнить демо-данными». 50 товаров / 5 групп / 10 контрагентов / 5 приёмок / 30 продаж / 1 опт / 1 списание / 1 перемещение / 1 инвентаризация. Идемпотентно (маркер DEMO-). E2E 5/5 ✓ на стейдже.
  • 2. ConfirmDialog на destructive actions — общий <ConfirmDialog> + хук useConfirm(). Применён к 17 страницам + ProductImageGallery. Esc=cancel, focus-on-Cancel, tone='danger'|'warning'. Org-archive уже использует Modal с confirmation-name (не трогали). 2FA UI ещё не существует в web — пропущено. Скриншот стейджа: tests/e2e/reports/confirm-dialog-1780119970286.png.
  • 3. Toast-система ошибок — замена console.error в src/lib/api.ts. 4xx/5xx → error toast c message из API; мутации 2xx → success. Top-right, 5s autoclose.
  • 4. Loading skeletons — на DataTable и edit-pages вместо «Загрузка…» — shimmer-скелет. Reusable <Skeleton>.
  • 5. Empty states с CTA — list-страницы при items.length === 0 показывают центрированный блок с иконкой, текстом и кнопкой «Создать первый …».
  • 6. Breadcrumbs — на edit-страницах Reusable <Breadcrumbs items={...}>.
  • 7. Keyboard shortcuts — edit: Ctrl+S = save, Esc = cancel/back; list: / = focus search, n = create. Hint в footer / ? overlay.

Журнал

2026-05-29 — старт

  • Stage-testing спринта 6 закрыт (docs/stage-testing-progress.md, 13 сценариев / 94/94 шага ✓).
  • Создан этот файл, перехожу к пункту 1.

2026-05-30 — пункт 1 ✓

  • DemoTenantSeeder + DemoSeedController + UI-секция «Демо-данные» в OrganizationSettingsPage.
  • Идемпотентность через маркер Article startsWith "DEMO-".
  • E2E stage-demo-seed (5 шагов) — green локально + на test.admin.food-market.kz (после deploy-stage.sh).
  • Коммит: ad09b56 feat(stage): demo-data seeder для test.admin.food-market.kz.

2026-05-30 — пункт 2 ✓

  • <ConfirmDialog> + хук useConfirm(). Button переведён на forwardRef.
  • Применил к ProductEdit + 6 doc-edit + RetailSaleEdit + 8 list-pages + EmployeesPage + ProductImageGallery (всего 18 файлов).
  • Esc=cancel, фокус на Cancel (Enter не подтверждает). Tone='danger'/'warning'.
  • Скриншот стейджа: tests/e2e/reports/confirm-dialog-*.png — диалог рендерится, Esc-закрытие работает.
  • Коммит: 17a6da2 feat(web): ConfirmDialog компонент + useConfirm hook.