app-map: notifications — живая сверка на forbion (Browser 1/cloude): версионные расхождения (Скрыть все всегда, относительное время), состав элемента подтверждён

This commit is contained in:
b-mob-notify
2026-07-12 22:27:38 +00:00
parent ee37c5f5ea
commit c03c096ddf
+29 -8
View File
@@ -37,7 +37,7 @@
Контейнер `.notification-container` внутри `.header-menu__content`. Тайтл шапки в мобильной Контейнер `.notification-container` внутри `.header-menu__content`. Тайтл шапки в мобильной
теме — «Уведомления» (`.tooltip-header--notifications`). Два взаимоисключающих состояния: теме — «Уведомления» (`.tooltip-header--notifications`). Два взаимоисключающих состояния:
### Состояние A — есть уведомления (`notifications.length > 0`) ### Состояние A — есть уведомления (`notifications.length > 0`) — СВЕРЕНО ЖИВЬЁМ у `cloude`
**Тело:** список `<ul class="notification-wrapper">` из элементов `NotificationItem` (см. ниже), **Тело:** список `<ul class="notification-wrapper">` из элементов `NotificationItem` (см. ниже),
сверху вниз, новые (`notificationId > lastOpenMaxId`) помечены классом `notification--new`. сверху вниз, новые (`notificationId > lastOpenMaxId`) помечены классом `notification--new`.
Если push задросселирован — первым нештатным элементом идёт баннер «Push notifications might be Если push задросселирован — первым нештатным элементом идёт баннер «Push notifications might be
@@ -45,7 +45,22 @@ unreliable» (fairUsePolicy, `key=-2016`).
**Низ:** блок `.dismiss-all` — кнопка **«Скрыть все уведомления»** (tertiary, во всю ширину, **Низ:** блок `.dismiss-all` — кнопка **«Скрыть все уведомления»** (tertiary, во всю ширину,
иконка «×»). ⚠️ Пишущая: `onDismissAll``DELETE /ocs/v2.php/apps/notifications/api/v2/notifications`. иконка «×»). ⚠️ Пишущая: `onDismissAll``DELETE /ocs/v2.php/apps/notifications/api/v2/notifications`.
### Состояние B — пусто (empty-state `NcEmptyContent`) — наблюдалось у `cloude` **Живая сверка 2026-07-12 (лента `cloude` = 3 уведомления `firstrunwizard`, скриншот 390px):**
- `расхождение вер.:` кнопка **«Скрыть все уведомления»** на forbion (5.0.0-dev.0) показывается
ВСЕГДА, в т.ч. при пустой ленте — в master-коде она под `v-if="notifications.length > 0"`.
Нативный клиент должен ориентироваться на поведение forbion (кнопка всегда), не на master.
- `расхождение вер.:` время в элементе отображается **относительно** («45 минут назад»,
«49 минут назад»), а не в формате «время + длинная дата» из master `NcDateTime`.
- Порядок в строке подтверждён: верхняя строка = [относительное время] … [× «Скрыть»];
ниже слева иконка app, справа subject (жирнее) и, если есть, message (серым, второй строкой).
- Наблюдённые элементы (все `data-app=firstrunwizard`, `objectType` user/app): у всех есть
время + «Скрыть» + иконка + ссылка (`full-subject-link`, не внешняя), rich-subject НЕТ,
action-кнопок НЕТ; у двух из трёх есть `message`. Примеры (приветственные, не приватные):
«Добавьте данные в свой профиль…», «Рекомендованное приложение: Формы», «…: Распознавание».
- `notification--new` в этой выборке не встретился (уведомления не новее `lastOpenMaxId`) —
подсветку нового сверить, когда придёт свежее.
### Состояние B — пусто (empty-state `NcEmptyContent`) — тоже наблюдалось у `cloude` (до догрузки ленты)
Три варианта текста (computed `emptyContentMessage`): Три варианта текста (computed `emptyContentMessage`):
- `webNotificationsGranted === null`**«Запрос разрешений для показа уведомлений в браузере»** - `webNotificationsGranted === null`**«Запрос разрешений для показа уведомлений в браузере»**
(именно это видел у `cloude` — иконка колокола `bell-outline-icon`); (именно это видел у `cloude` — иконка колокола `bell-outline-icon`);
@@ -107,9 +122,15 @@ data-атрибуты: `data-id`, `data-timestamp`, `data-object-type`, `data-ap
`css/pages/pages-mobile/_mobile-common.css`). Для нативной ленты держим общий карточный стиль `css/pages/pages-mobile/_mobile-common.css`). Для нативной ленты держим общий карточный стиль
модулей (`_mobile-common.css` + токены designsystem) — согласовано с лидом (mail/070). модулей (`_mobile-common.css` + токены designsystem) — согласовано с лидом (mail/070).
## Открытые вопросы / сверить, когда лента будет непустой ## Открытые вопросы (остаток после живой сверки 2026-07-12)
- (?) Как именно выглядит `notification--new` в мобильной теме (подсветка/полоса) — на пустом Закрыто живьём: размещение строки, относительное время, «Скрыть все» всегда видна, состав
аккаунте не увидеть; сверить на аккаунте с уведомлениями. простого уведомления (firstrunwizard) — см. «Состояние A». Осталось (нужны уведомления
- (?) Точный порядок и подписи action-кнопок для реальных источников (Talk-приглашение, дедлайны конкретных типов, которых у `cloude` сейчас нет):
Deck/Календаря) — снять живьём, когда появятся уведомления. - (?) `notification--new`: подсветка/полоса для СВЕЖЕГО уведомления (в выборке все были старее
- (?) Сворачивание длинного message в мобильной ширине 390px (высота `.message-container`). `lastOpenMaxId`) — сверить, когда придёт новое.
- (?) Точный порядок и подписи **action-кнопок** для источников с действиями (Talk-приглашение
«Присоединиться/Отклонить», дедлайны Deck/Календаря) — у firstrunwizard действий нет.
- (?) Сворачивание длинного `message` на ширине 390px (высота `.message-container.collapsed`,
градиент `.notification-overflow`, разворот по тапу) — у наблюдённых message короткие.
- (?) Богатый `subjectRich` (`NcRichText` с User/File-параметрами) — у firstrunwizard subject
плоский; сверить на уведомлении с упоминанием пользователя/файла.