SHA256
ЛС: токены связей + резолвер визуала + семантический мок (connectedVia/login)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
+24
-32
@@ -39,39 +39,31 @@ export const deviceSessions = [
|
||||
},
|
||||
];
|
||||
|
||||
// Экран «Личные сообщения» — списочная форма «Связей». Храним СЕМАНТИКУ, не цвет.
|
||||
// Цвет/режим вычисляет js/pages/messages/dm-visual-resolver.js (resolveDmVisualState):
|
||||
// relationType: 'contact' | 'friend' | 'family' (family → золотой обод)
|
||||
// relationRole: 'parent'|'child'|'sibling'|'spouse'|null
|
||||
// isShining: true → небесный (celestial) обод/свечение (важнее relationType)
|
||||
// isConfirmed: true → статус доверия «Подтверждён» (золотой shield) — НЕ красит обод
|
||||
// hasActiveLink: true → статус «Связь» (изумруд) — приоритетнее «Подтверждён»
|
||||
// unreadCount: number; preview: string
|
||||
// toneOverride: 'default'|'family'|'shining' — ТОЛЬКО для тестового мока, в проде не использовать
|
||||
// (на проде поля придут из relationFlagsForTarget/shineConfirmed/shine — пока мок для оффлайн-демо)
|
||||
// ЛС-демо (мок). Поля СЕМАНТИЧЕСКИЕ (без хранения цвета) — визуал решает dm-visual-resolver.js.
|
||||
// Набор покрывает ровно матрицу состояний M01–M06 из спеки (по одному кейсу на строку).
|
||||
export const directMessages = [
|
||||
{
|
||||
id: 'u1',
|
||||
name: 'Марина К.',
|
||||
initials: 'МК',
|
||||
lastMessage: 'Вечером скину обновления по макетам.',
|
||||
time: '15:08',
|
||||
unread: 2,
|
||||
},
|
||||
{
|
||||
id: 'u2',
|
||||
name: 'Илья П.',
|
||||
initials: 'ИП',
|
||||
lastMessage: 'Спасибо, уже проверяю!',
|
||||
time: '14:31',
|
||||
unread: 0,
|
||||
},
|
||||
{
|
||||
id: 'u3',
|
||||
name: 'Елена Д.',
|
||||
initials: 'ЕД',
|
||||
lastMessage: 'Тестовый стенд снова доступен.',
|
||||
time: '13:02',
|
||||
unread: 5,
|
||||
},
|
||||
{
|
||||
id: 'u4',
|
||||
name: 'Никита О.',
|
||||
initials: 'НО',
|
||||
lastMessage: 'Отлично, давай так и сделаем.',
|
||||
time: 'вчера',
|
||||
unread: 0,
|
||||
},
|
||||
// M01 — обычный контакт, подтверждён: violet-обод, справа золотой shield «Подтверждён», без unread.
|
||||
{ id: 'u1', name: 'Марина К.', initials: 'МК', preview: 'Вечером скину обновления по макетам.', lastMessage: 'Вечером скину обновления по макетам.', time: '15:08', relationType: 'contact', relationRole: null, isShining: false, isConfirmed: true, hasActiveLink: false, unreadCount: 0, photo: '/assets/demo-avatars/u1.jpg' },
|
||||
// M02 — обычная активная связь: violet-обод, изумрудная капсула «Связь», отдельная violet-сфера «2».
|
||||
{ id: 'u2', login: 'ilya', name: 'Илья П.', initials: 'ИП', preview: 'Спасибо, уже проверяю!', lastMessage: 'Спасибо, уже проверяю!', time: '14:31', relationType: 'contact', relationRole: null, isShining: false, isConfirmed: false, hasActiveLink: true, unreadCount: 2, photo: '/assets/demo-avatars/u2.jpg', connectedVia: [{ login: 'pavel', name: 'Павел С.', photo: '/assets/demo-avatars/u6.jpg' }] },
|
||||
// M03 — сияющий с активной связью: мини-сфера языка «Связи», изумруд «Связь», violet-сфера «5».
|
||||
{ id: 'u3', login: 'elena', name: 'Елена Д.', initials: 'ЕД', preview: 'Тестовый стенд снова доступен.', lastMessage: 'Тестовый стенд снова доступен.', time: '13:02', relationType: 'contact', relationRole: null, isShining: true, isConfirmed: false, hasActiveLink: true, unreadCount: 5, photo: '/assets/demo-avatars/u3.jpg', connectedVia: [{ login: 'pavel', name: 'Павел С.', photo: '/assets/demo-avatars/u6.jpg' }, { login: 'marina', name: 'Марина К.', photo: '/assets/demo-avatars/u1.jpg' }] },
|
||||
// M04 — обычный контакт без статуса: только violet-обод и спокойный chevron, без unread.
|
||||
{ id: 'u4', name: 'Никита О.', initials: 'НО', preview: 'Отлично, давай так и сделаем.', lastMessage: 'Отлично, давай так и сделаем.', time: 'вчера', relationType: 'contact', relationRole: null, isShining: false, isConfirmed: false, hasActiveLink: false, unreadCount: 0, photo: '/assets/demo-avatars/u4.jpg' },
|
||||
// M05 — семья с подтверждением: золотой обод + тёплая аура, справа золотой shield «Подтверждён».
|
||||
{ id: 'u6', name: 'Павел С.', initials: 'ПС', preview: 'Семейный архив обновил.', lastMessage: 'Семейный архив обновил.', time: 'вчера', relationType: 'family', relationRole: 'parent', isShining: false, isConfirmed: true, hasActiveLink: false, unreadCount: 0, photo: '/assets/demo-avatars/u6.jpg' },
|
||||
// M06 — семья с активной связью: золотой обод (family), справа «Связь» по приоритету link>confirmed, violet-сфера «1».
|
||||
{ id: 'u7', login: 'anya', name: 'Аня В.', initials: 'АВ', preview: 'Семейный чат: жду в 19:00.', lastMessage: 'Семейный чат: жду в 19:00.', time: 'пн', relationType: 'family', relationRole: 'sibling', isShining: false, isConfirmed: true, hasActiveLink: true, unreadCount: 1, photo: '/assets/demo-avatars/u7.jpg', connectedVia: [{ login: 'marina', name: 'Марина К.', photo: '/assets/demo-avatars/u1.jpg' }] },
|
||||
];
|
||||
|
||||
export const contactDirectory = [
|
||||
|
||||
Reference in New Issue
Block a user