diff --git a/app/[locale]/dashboard/page.tsx b/app/[locale]/dashboard/page.tsx index f0d7044..f68dd5d 100644 --- a/app/[locale]/dashboard/page.tsx +++ b/app/[locale]/dashboard/page.tsx @@ -336,6 +336,12 @@ export default async function DashboardPage({ falseConfidenceDescription: t('zoneQuadrantFalseConfidenceDescription'), }, } satisfies DashboardProgressStateZoneProps; + const trueMasteryQuadrant = performanceData.progressQuadrants.find( + (quadrant) => quadrant.key === 'trueMastery', + ); + const falseConfidenceQuadrant = performanceData.progressQuadrants.find( + (quadrant) => quadrant.key === 'falseConfidence', + ); const groupZoneProps = { locale, groups: dashboardGroups, @@ -345,6 +351,10 @@ export default async function DashboardPage({ ? `/${locale}/lookup` : `/${locale}/billing`, canBrowseLookupLayer, + calibrationStats: { + trueMasteryPercent: trueMasteryQuadrant?.percentage ?? 0, + falseConfidencePercent: falseConfidenceQuadrant?.percentage ?? 0, + }, labels: { title: t('zoneGroupTitle'), subtitle: t('zoneGroupSubtitle'), @@ -388,6 +398,8 @@ export default async function DashboardPage({ questionsUnit: t('questionsUnit'), completion: t('completion'), accuracy: t('accuracy'), + trueMastery: t('zoneQuadrantTrueMastery'), + falseConfidence: t('zoneQuadrantFalseConfidence'), noData: t('noData'), invite: t('inviteTeammateOpen'), inviteTitle: t('inviteTeammateModalTitle'), diff --git a/components/dashboard/dashboard-group-zone.tsx b/components/dashboard/dashboard-group-zone.tsx index 3ac94e5..031eb65 100644 --- a/components/dashboard/dashboard-group-zone.tsx +++ b/components/dashboard/dashboard-group-zone.tsx @@ -77,6 +77,10 @@ export type DashboardGroupZoneProps = { createGroupHref: string; liveGroupsHref: string; canBrowseLookupLayer: boolean; + calibrationStats: { + trueMasteryPercent: number; + falseConfidencePercent: number; + }; labels: { title: string; subtitle: string; @@ -116,6 +120,8 @@ export type DashboardGroupZoneProps = { questionsUnit: string; completion: string; accuracy: string; + trueMastery: string; + falseConfidence: string; noData: string; invite: string; inviteTitle: string; @@ -151,6 +157,7 @@ export const DashboardGroupZone = memo(function DashboardGroupZone({ createGroupHref, liveGroupsHref, canBrowseLookupLayer, + calibrationStats, labels, }: DashboardGroupZoneProps) { const [isOpen, setIsOpen] = useState(false); @@ -222,6 +229,7 @@ export const DashboardGroupZone = memo(function DashboardGroupZone({ !selectedGroup.hasLiveSession && !shouldShowMemberPrompt, ); + const canOpenSessionPlanner = Boolean(selectedGroup); const normalizedInviteEmail = inviteEmail.trim().toLowerCase(); function prefetchSession(href: string | null) { @@ -373,7 +381,8 @@ export const DashboardGroupZone = memo(function DashboardGroupZone({ selectedActiveSession={selectedActiveSession} selectedNextSession={selectedNextSession} sessionHref={sessionHref} - canStartSelectedGroup={canStartSelectedGroup} + canOpenSessionPlanner={canOpenSessionPlanner} + calibrationStats={calibrationStats} labels={labels} /> @@ -1000,7 +1009,7 @@ export const DashboardGroupZone = memo(function DashboardGroupZone({ ) : null} - {canStartSelectedGroup && selectedGroup ? ( + {canOpenSessionPlanner && selectedGroup ? (