feat: Add Clinic Growth, Google Search Console, GA4 Traffic Radar & Mailcow Stack tab

This commit is contained in:
2026-09-07 11:31:39 -07:00
parent f81e3191bf
commit 02a861a833
3 changed files with 485 additions and 3 deletions
+25 -2
View File
@@ -41,6 +41,7 @@ import { CommandPalette } from '@/components/ui/CommandPalette';
import { InactivityLockoutModal } from '@/components/ui/InactivityLockoutModal';
import { ClinicalToastContainer, ToastMessage } from '@/components/ui/ClinicalToast';
import { DoctorOnboardingView } from '@/components/onboarding/DoctorOnboardingView';
import { ClinicGrowthView } from '@/components/growth/ClinicGrowthView';
import { clinicalAudio } from '@/lib/clinical-audio';
import {
Calendar,
@@ -65,6 +66,7 @@ import {
Scale,
Lock,
ShieldCheck,
TrendingUp,
} from 'lucide-react';
export default function Home() {
@@ -77,9 +79,9 @@ export default function Home() {
// Staff Role: 'doctor' | 'front_desk' | 'billing_admin'
const [staffRole, setStaffRole] = useState<StaffRole>('doctor');
// Clinic Sub-Tabs: 'calendar' | 'charting' | 'telehealth' | 'retail' | 'memberships' | 'billing' | 'retention'
// Clinic Sub-Tabs: 'calendar' | 'charting' | 'telehealth' | 'retail' | 'memberships' | 'billing' | 'retention' | 'growth'
const [clinicTab, setClinicTab] = useState<
'calendar' | 'charting' | 'telehealth' | 'retail' | 'memberships' | 'billing' | 'retention'
'calendar' | 'charting' | 'telehealth' | 'retail' | 'memberships' | 'billing' | 'retention' | 'growth'
>('calendar');
const [appointments, setAppointments] = useState<Appointment[]>(INITIAL_APPOINTMENTS);
@@ -721,6 +723,19 @@ export default function Home() {
<Users className="w-3.5 h-3.5 text-amber-600" />
Retention Radar
</button>
<button
type="button"
onClick={() => setClinicTab('growth')}
className={`px-3 py-1.5 rounded-md font-semibold flex items-center gap-1.5 transition whitespace-nowrap ${
clinicTab === 'growth'
? 'bg-sky-50 text-sky-800 border border-sky-200 shadow-2xs font-bold'
: 'text-slate-600 hover:text-slate-900'
}`}
>
<TrendingUp className="w-3.5 h-3.5 text-emerald-600" />
Growth &amp; SEO (GSC/GA4)
</button>
</div>
)}
</header>
@@ -805,6 +820,14 @@ export default function Home() {
}}
/>
)}
{clinicTab === 'growth' && (
<ClinicGrowthView
activeTenant={activeTenant}
activeProvider={activeProvider}
onOpenBookingPortal={() => setPortalMode('patient')}
/>
)}
</div>
)}