Skip to content

ui(intents): свернуть пустую секцию «Карточки» в одну строку#244

Merged
gently-whitesnow merged 2 commits into
masterfrom
feat/compact-card-attachments-empty
Jul 10, 2026
Merged

ui(intents): свернуть пустую секцию «Карточки» в одну строку#244
gently-whitesnow merged 2 commits into
masterfrom
feat/compact-card-attachments-empty

Conversation

@gently-whitesnow

Copy link
Copy Markdown
Owner

Цель

Секция «Карточки» на детальной странице интента визуально перевешивала контент, когда карточки не приложены (а этот кейс дефолтный) — большой dashed-блок с иконкой и абзацем-подсказкой съедал вертикали больше, чем остальные секции.

Что изменилось

  • apps/web/src/widgets/intent-panels/card-attachments-list/ui/CardAttachmentsList.tsx: пустое состояние теперь — компактный inline-текст «Карточки не приложены.» без иконки и длинной подсказки.
  • Заголовок секции (иконка, счётчик, кнопка «Приложить») не тронут — action остаётся под рукой.

Решения и отброшенные варианты

  • Оставили короткий видимый маркер empty-state, а не убрали текст полностью (как в «Вложения»): тесты CardAttachmentsList.test.tsx идентифицируют состояние именно по этой строке, а модалка attach уже сама подсказывает про read-only снапшот.

Проверка

  • pnpm exec vitest run src/widgets/intent-panels/card-attachments-list/ui/CardAttachmentsList.test.tsx — 6/6 green.
  • pnpm exec tsc -b --pretty false — чисто.
  • pnpm exec eslint src/widgets/intent-panels/card-attachments-list — чисто.
  • Ручная проверка на self-test инстансе из этого PR: карточка интента с пустой секцией «Карточки» рендерится одной строкой.

liapota added 2 commits July 10, 2026 13:49
Решения:
- Пустое состояние — компактный inline-текст «Карточки не приложены.» вместо dashed-плейсхолдера с иконкой и абзацем-подсказкой. Секция перестаёт доминировать в интенте, где карточки часто вообще не используются.
- Сохранён текст маркера, чтобы существующие тесты пустого состояния и переходы attach/detach продолжали работать без правок.

Отброшено:
- Полностью убрать сообщение (как в «Вложения»): тесты CardAttachmentsList.test.tsx полагаются на видимый маркер empty-state; замена на проверку кнопки attach раздула бы диф без пользы.

Ограничения:
- Кнопка «Приложить» и подсказка про read-only снапшот остаются в SectionHeading / модалке attach — здесь их не дублируем.
…иложений

Решения:
- Панель `CardAttachmentsList` возвращает null, когда список карточек пуст
  и `useTaskTrackerConnectionsQuery` не отдал ни одного соединения со
  state === "connected". Раздел «КАРТОЧКИ» перестаёт занимать место у
  операторов без настроенных трекеров.
- Если уже есть приложенные карточки — секция остаётся видимой даже при
  отключённом/протухшем трекере, иначе оператор теряет read-only контекст,
  который никаким другим способом не увидеть.
- Тесты дополнены двумя кейсами: скрытие без активных трекеров и
  сохранение секции с уже приложенной карточкой при `state === "auth"`.

Отброшено:
- Гейтить панель через `panel-registry.tsx`: сейчас гейтинг там чисто
  структурный (placement/order), а состояние трекеров живёт в query —
  тащить его в реестр значило бы завести асинхронный gating без пользы.

Ограничения:
- Пока `useTaskTrackerConnectionsQuery().isSuccess === false` секцию не
  прячем (чтобы не мигать при первичной загрузке); это стоит одного
  дополнительного GET `/api/v1/settings/task-trackers` на детальной
  странице.
@gently-whitesnow
gently-whitesnow merged commit c81f39b into master Jul 10, 2026
1 check passed
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