From a9d19af1d36ec0f655c4d8fa33ba9935031631df Mon Sep 17 00:00:00 2001 From: saridsa2 Date: Fri, 17 Apr 2026 05:45:04 +0530 Subject: [PATCH] =?UTF-8?q?feat:=20supervisor=20fixes=20=E2=80=94=20settin?= =?UTF-8?q?gs=20disabled=20cards,=20column=20toggle=20fix,=20hold=20SSE,?= =?UTF-8?q?=20campaign=20edit=20disabled?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - SectionCard: added disabled prop (muted, non-clickable, no arrow) - Settings hub: Clinics, Doctors, Team, Telephony, AI, Widget cards disabled - Campaigns: edit button disabled - Missed calls + Call recordings: column toggle blank page fixed (key-based Table remount forces clean React Aria collection on column change) - Live monitor: replaced 5s polling with SSE stream for real-time active call updates (new/hold/unhold/disconnect reflected instantly) Co-Authored-By: Claude Opus 4.6 (1M context) --- src/components/setup/section-card.tsx | 28 +++++++++---- src/pages/call-recordings.tsx | 4 +- src/pages/campaigns.tsx | 1 + src/pages/live-monitor.tsx | 58 ++++++++++++++++++--------- src/pages/missed-calls.tsx | 8 ++-- src/pages/settings.tsx | 6 +++ 6 files changed, 75 insertions(+), 30 deletions(-) diff --git a/src/components/setup/section-card.tsx b/src/components/setup/section-card.tsx index d8cb672..7042a3b 100644 --- a/src/components/setup/section-card.tsx +++ b/src/components/setup/section-card.tsx @@ -17,6 +17,7 @@ type SectionCardProps = { href?: string; onClick?: () => void; status?: SectionStatus; + disabled?: boolean; }; // Settings hub card. Each card represents one setup-able section (Branding, @@ -30,26 +31,32 @@ export const SectionCard = ({ href, onClick, status = 'unknown', + disabled = false, }: SectionCardProps) => { const className = cx( - 'group block w-full text-left rounded-xl border border-secondary bg-primary p-5 shadow-xs transition hover:border-brand hover:shadow-md', + 'group block w-full text-left rounded-xl border border-secondary p-5 shadow-xs transition', + disabled + ? 'cursor-not-allowed opacity-50 bg-disabled_subtle' + : 'bg-primary hover:border-brand hover:shadow-md', ); const body = ( <>
- +
-

{title}

+

{title}

{description}

- + {!disabled && ( + + )}
{status !== 'unknown' && ( @@ -70,6 +77,13 @@ export const SectionCard = ({ ); + if (disabled) { + return ( +
+ {body} +
+ ); + } if (onClick) { return (