From b8739a5096d91aca4bf07f7192c61a5d20d05081 Mon Sep 17 00:00:00 2001 From: ochenstarik Date: Fri, 11 Sep 2026 09:38:37 +0700 Subject: [PATCH] feat(control-center): adapt AnnouncementsPage and IncidentsPage mobile-first styling --- .../pages/AnnouncementsPage.tsx | 174 +++++++++------- .../control-center/pages/IncidentsPage.tsx | 194 ++++++++++++------ 2 files changed, 231 insertions(+), 137 deletions(-) diff --git a/src/features/control-center/pages/AnnouncementsPage.tsx b/src/features/control-center/pages/AnnouncementsPage.tsx index 9b22689..b827f3d 100644 --- a/src/features/control-center/pages/AnnouncementsPage.tsx +++ b/src/features/control-center/pages/AnnouncementsPage.tsx @@ -3,9 +3,13 @@ import { BellRing, Send, Plus, + X, + Users, + CheckCircle2, } from 'lucide-react'; import { useKccStore, useOperatorRole } from '../store/kccStore'; import { StatusBadge } from '../components/StatusBadge'; +import { RU_ANNOUNCEMENT_PRIORITY } from '../locales/ru'; export const AnnouncementsPage: React.FC = () => { const announcements = useKccStore((state) => state.announcements); @@ -74,15 +78,15 @@ export const AnnouncementsPage: React.FC = () => { }; return ( -
+
{/* Header */} -
+
-

- +

+ Оповещения и системные сообщения

-

+

Таргетированные сервисные рассылки, уведомления об обновлениях модулей и плановом ТО

@@ -91,102 +95,105 @@ export const AnnouncementsPage: React.FC = () => { type="button" disabled={!permissions.canCreateAnnouncements} onClick={() => setIsCreating(!isCreating)} - className="px-3 py-1.5 rounded-lg bg-amber-500 hover:bg-amber-400 text-zinc-950 font-bold text-xs flex items-center gap-1.5 transition-colors disabled:opacity-40" + className="min-h-[44px] px-4 py-2.5 rounded-lg bg-amber-500 hover:bg-amber-400 text-zinc-950 font-bold text-xs flex items-center justify-center gap-2 transition-colors disabled:opacity-40 shadow-xs shrink-0" > - - {isCreating ? 'Закрыть редактор' : 'Создать объявление'} + {isCreating ? : } + {isCreating ? 'Закрыть редактор' : 'Создать оповещение'}
- {/* New Announcement Form (Сценарий 7) */} + {/* New Announcement Form (Modal or Expandable) */} {isCreating && (
-
-
- +
+
+ Конструктор операторского оповещения
- DEMO: без внешней отправки SMS/Email + + ДЕМО: In-App доставка +
{/* Title */}
- + setTitle(e.target.value)} - placeholder="Например: Доступен модуль Omnichannel 3.0" - className="w-full bg-zinc-950 border border-zinc-700 rounded-lg p-2.5 text-xs text-zinc-100 placeholder-zinc-500 focus:outline-hidden focus:border-amber-500" + placeholder="Например: Доступно обновление платформы v3.0" + className="w-full bg-krona-workspace border border-krona-border rounded-lg px-3 py-2.5 text-xs text-krona-primary placeholder:text-krona-secondary/60 focus:outline-hidden focus:border-amber-500 min-h-[44px]" />
{/* Priority */}
- +
{/* Audience selection */}
- -
+ +
{audienceType === 'module' && ( -
- Выберите модуль: +
+ Выберите модуль: