feat(channels): фон комнаты и статичные превью при reduced-motion

- миграция 00014: background_file_id у комнаты (AGENT.md 7.5, 7.7)
- API: POST/DELETE /channels/{id}/background под MANAGE_CHANNEL_BACKGROUND,
  фон отдаётся в списке комнат и рассылается событием CHANNEL_UPDATE
- клиент: фон рисуется за лентой с затемнением, блок «Фон комнаты» в настройках
  комнаты (загрузка, замена, удаление)
- AnimatedImage: при «уменьшить движение» показывает статичный первый кадр,
  нарисованный на canvas, вместо анимации
- тесты: Go (загрузка, права, снятие) и Vitest (лента, настройки, reduced-motion)
This commit is contained in:
2026-09-21 18:08:21 +03:00
parent 91f415e36d
commit 0f0060e8a4
19 changed files with 733 additions and 16 deletions
+5
View File
@@ -257,6 +257,8 @@ interface SnapshotGuildInput {
parent_id?: string;
can_send?: boolean;
can_view?: boolean;
/** Фон комнаты: файл-картинка за лентой (AGENT.md 7.5). */
background_file_id?: string;
}[];
}
@@ -304,6 +306,9 @@ export function makeReadySnapshot(
...(channel.parent_id === undefined ? {} : { parent_id: channel.parent_id }),
...(channel.can_send === undefined ? {} : { can_send: channel.can_send }),
...(channel.can_view === undefined ? {} : { can_view: channel.can_view }),
...(channel.background_file_id === undefined
? {}
: { background_file_id: channel.background_file_id }),
})),
roles: [],
member_ids: ['user-1'],