Skip to content

PROD: обновить карточки проектов - #363

Merged
TThanos3000 merged 1 commit into
masterfrom
release/prod-project-card-redesign
Sep 21, 2026
Merged

TThanos3000 merged 1 commit into
masterfrom
release/prod-project-card-redesign

Conversation

@TThanos3000

Copy link
Copy Markdown
Contributor

Переносит на PROD финальную проверенную реализацию карточек DEV #357#362: единый дизайн Dashboard/полных списков, независимые lifecycle и роль, безопасный текст доступа и CTA «Открыть» → detail. Это выборочный перенос конечного состояния, без DEV merge commits и промежуточных вариантов.

Точные ревизии

  • PROD base: 3890ee6ccb84bf92d215ea32b4316e3f52f1d404.
  • Release head: b8b1fcee375d9ac97edcf268a6671649d2f4cd50.
  • Итоговый DEV source: 683da4b9b30334bab4bd6c7a1afea3ddc91fe9ad.
DEV PR Merge SHA
#357 918e30d54b3240078f8dda43c0fbc5761c011ae6
#358 1b92bf0e8e05f1edd906195770ca8fa46ab8d95a
#359 ec822d13b4f55b0718335ac7f0f9e64d69ed05da
#360 358e818c7ebd8b7d5916e56167a402e2848177d6
#361 69b37d12000b22fd09b77b5a35d95812bf6fbda5
#362 683da4b9b30334bab4bd6c7a1afea3ddc91fe9ad

Поведение и контракт

  • Карточки 156 × 180 px, аватар 70 px; название/описание по центру, максимум две строки.
  • Lifecycle: submitted > draft > program > published, независимо от роли. Program и submitted визуально различаются.
  • Роль: Project.leader относительно ProfileInfoService.profile()?.id. Участник и лидер сданного проекта видят «только просмотр»; неизвестный isSubmitted также не обещает редактирование.
  • Все project cards: «Открыть» → AppRoutes.projects.detail(id), без прямой ссылки в edit, вложенных интерактивных элементов и двойной навигации.
  • Dashboard и полные my/subscriptions/all используют общий InfoCard с соответствующим appearance. Подписки/витрина сохраняют industry и не получают my-role/lifecycle. Подписки и приглашения сохраняют действия.
  • Старые фиктивные счётчики, иконки и подсказки карточки удалены.

Нужен связанный backend Draft PR #749, port DEV #748: partner_program: {id, name, program_link_id, program_id, is_submitted} либо null. Реальный CamelcaseInterceptor преобразует его в partnerProgram.isSubmitted. HTTP contract test проводит сокращённый ответ через interceptor, API, adapter, repository и use case до настоящей карточки; сданный проект получает «Сдан в программу / Лидер / только просмотр». PROD detail и его правила доступа сохранены. При будущей поставке backend-контракт разворачивается первым после отдельного согласования.

20 выбранных файлов кода/тестов побайтово совпадают с финальным DEV source. Перед переносом сравнены с PROD: исходное отличие в этих файлах ограничивалось порядком двух SCSS-свойств. Остальные различия DEV/PROD не переносятся. Изменённые области: InfoCard, Dashboard/DashboardItem, ProjectsList, сетка проектов и контейнер карточек ProgramList; дополнительно документация, два скриншота и JSON замеров (24 файла всего).

React, DEV, editor/detail runtime, зависимости, lockfile, test harness и workflows не изменены. pool: forks уже находится в PROD master и этим PR не меняется.

Реальные проверки

Среда: Node 20.20.2, npm 10.8.2, чистый npm ci — exit 0.

  • Targeted: 62/62, 8 файлов, exit 0. Команда: npm run test:ci -- projects/social_platform/src/app/ui/widgets/info-card projects/social_platform/src/app/ui/pages/projects/list projects/social_platform/src/app/ui/pages/projects/dashboard projects/social_platform/src/app/ui/pages/program/detail/list/list.component.spec.ts projects/core/src/lib/interceptors/camelcase.interceptor.spec.ts.
  • Полный npm run test:ci: 1806/1806, 379 файлов, exit 0; NG0401 и unhandled errors в этом запуске нет.
  • npm run format:check: exit 0.
  • npm run lint:ts: exit 0, 6 существующих warnings вне diff.
  • Scoped Stylelint: npx stylelint projects/social_platform/src/app/ui/widgets/info-card/info-card.component.scss projects/social_platform/src/app/ui/pages/projects/**/*.scss — exit 0.
  • npm run build:prod: exit 0, существующие Angular/Sass/CommonJS warnings вне diff.
  • git diff --check: exit 0.

Браузерный smoke настоящих компонентов с локальными фикстурами: восемь lifecycle/role состояний, Dashboard, полные my/subscriptions/all, длинные строки при 1440/390/320 px. Все карточки 156 × 180, аватары 70 × 70, горизонтального overflow нет. Tab показывает рамку 2 px, Enter открывает detail-placeholder проекта. Console: 0 ошибок; есть NG0912 в preview из-за двух IconComponent. Подписки/приглашения дополнительно проверены DOM-тестами.

Это локальный TestBed preview, без пользовательских данных и обращений к DEV/PROD. Авторизованная live-проверка остаётся для отдельно согласованного deploy.

Скриншоты и точные замеры находятся в docs/prod-project-cards/; описание порта — docs/prod-project-card-port.md.

Восемь состояний

Длинные строки, мобильный viewport

Это Draft PR. Merge/deploy не выполнялись.

@TThanos3000
TThanos3000 marked this pull request as ready for review September 21, 2026 22:25
@TThanos3000
TThanos3000 merged commit 26ef957 into master Sep 21, 2026
@TThanos3000
TThanos3000 deleted the release/prod-project-card-redesign branch September 21, 2026 22:25
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.

2 participants