iachat/app/javascript/shared/constants
Rodribm10 2b9ada259e feat(dashboard): aggressive alert on conversation reopening
Banner persistente + som em loop + OS notification + title flash
+ vibração mobile quando conversa transiciona pra 'open' vindo de
pending/snoozed/resolved. Exige interação pra dismissar — atendente
não perde evento de reabertura.

- AggressiveConversationBanner.vue: banner full-width no topo,
  dismissable, mostra nome do contato + inbox + status anterior
- aggressiveAlert.js: manager do som (loop infinito), title flash
  (intervalo 1s), Notification API (requireInteraction: true),
  navigator.vibrate (padrão 500-200-500-200-500)
- actionCable.onStatusChange: detecta transição pra 'open' e dispara
  trigger via BUS_EVENTS (só se status anterior ≠ open, pra não
  alertar conversa nova criada já em open)
- i18n pt_BR + en: chaves de notificação (title/body/dismiss)
- busEvents: AGGRESSIVE_ALERT_TRIGGER + AGGRESSIVE_ALERT_DISMISS

Camada 1 da feature. Camada 2 (escalation SMS/WhatsApp se não
dismissar em X segundos) fica pra outro PR.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-23 18:03:26 -03:00
..
busEvents.js feat(dashboard): aggressive alert on conversation reopening 2026-04-23 18:03:26 -03:00
campaign.js feat: One off campaign UI (#2621) 2021-07-15 13:31:43 +05:30
contentType.js chore: Add an indicator for incoming emails (#1112) 2020-08-01 20:56:47 +05:30
countries.js chore: Update Guyana's country dial code from +595 to +592 (#12510) 2025-09-24 12:42:15 +05:30
links.js feat: TikTok channel (#12741) 2025-12-17 07:54:50 -08:00
locales.js feat: Portals store integration (#5185) 2022-08-08 15:47:32 +05:30
messages.js feat: Add call-to-action template support for Twilio (#13179) 2026-01-06 10:38:36 +04:00
sharedFrameEvents.js feat: Add the SDK method to programatically toggle live chat bubble (#4223) 2022-05-06 19:30:48 +05:30