Pass phase state to compare sub-components to prevent phase metrics override by multi-phase schools #46

Merged
tudor merged 1 commits from fix/compare-expert-fixes into main 2026-07-15 16:38:49 +00:00
4 changed files with 12 additions and 3 deletions
+3
View File
@@ -379,6 +379,7 @@ export function ComparisonView({
data={activeComparisonData} data={activeComparisonData}
nationalAverages={nationalAverages} nationalAverages={nationalAverages}
benchmarks={benchmarks} benchmarks={benchmarks}
isSecondary={!isPrimary}
/> />
<CompareOfsted schools={activeSchools} data={activeComparisonData} /> <CompareOfsted schools={activeSchools} data={activeComparisonData} />
<CompareAcademics <CompareAcademics
@@ -386,12 +387,14 @@ export function ComparisonView({
data={activeComparisonData} data={activeComparisonData}
nationalAverages={nationalAverages} nationalAverages={nationalAverages}
benchmarks={benchmarks} benchmarks={benchmarks}
isSecondary={!isPrimary}
/> />
<CompareAdmissions schools={activeSchools} data={activeComparisonData} /> <CompareAdmissions schools={activeSchools} data={activeComparisonData} />
<CompareCommunity <CompareCommunity
schools={activeSchools} schools={activeSchools}
data={activeComparisonData} data={activeComparisonData}
benchmarks={benchmarks} benchmarks={benchmarks}
isSecondary={!isPrimary}
/> />
<TrendsExplorer <TrendsExplorer
schools={activeSchools} schools={activeSchools}
@@ -125,15 +125,17 @@ export function CompareAcademics({
data, data,
nationalAverages, nationalAverages,
benchmarks, benchmarks,
isSecondary: propIsSecondary,
}: { }: {
schools: School[]; schools: School[];
data: Record<string, ComparisonData>; data: Record<string, ComparisonData>;
nationalAverages?: NationalAverages; nationalAverages?: NationalAverages;
benchmarks?: Benchmarks; benchmarks?: Benchmarks;
isSecondary?: boolean;
}) { }) {
const urns = schools.map((school) => school.urn); const urns = schools.map((school) => school.urn);
const schoolNames = schools.map((school) => school.school_name); const schoolNames = schools.map((school) => school.school_name);
const isSecondary = schools.some( const isSecondary = propIsSecondary !== undefined ? propIsSecondary : schools.some(
(school) => data[String(school.urn)]?.school_info?.attainment_8_score != null, (school) => data[String(school.urn)]?.school_info?.attainment_8_score != null,
); );
@@ -47,14 +47,16 @@ export function CompareAtAGlance({
data, data,
nationalAverages, nationalAverages,
benchmarks, benchmarks,
isSecondary: propIsSecondary,
}: { }: {
schools: School[]; schools: School[];
data: Record<string, ComparisonData>; data: Record<string, ComparisonData>;
nationalAverages?: NationalAverages; nationalAverages?: NationalAverages;
benchmarks?: Benchmarks; benchmarks?: Benchmarks;
isSecondary?: boolean;
}) { }) {
const urns = schools.map((school) => school.urn); const urns = schools.map((school) => school.urn);
const isSecondary = schools.some( const isSecondary = propIsSecondary !== undefined ? propIsSecondary : schools.some(
(school) => data[String(school.urn)]?.school_info?.attainment_8_score != null, (school) => data[String(school.urn)]?.school_info?.attainment_8_score != null,
); );
const headlineKey = isSecondary ? 'attainment_8_score' : 'rwm_expected_pct'; const headlineKey = isSecondary ? 'attainment_8_score' : 'rwm_expected_pct';
@@ -20,12 +20,14 @@ export function CompareCommunity({
schools, schools,
data, data,
benchmarks, benchmarks,
isSecondary: propIsSecondary,
}: { }: {
schools: School[]; schools: School[];
data: Record<string, ComparisonData>; data: Record<string, ComparisonData>;
benchmarks?: Benchmarks; benchmarks?: Benchmarks;
isSecondary?: boolean;
}) { }) {
const isSecondary = schools.some( const isSecondary = propIsSecondary !== undefined ? propIsSecondary : schools.some(
(school) => data[String(school.urn)]?.school_info?.attainment_8_score != null, (school) => data[String(school.urn)]?.school_info?.attainment_8_score != null,
); );
const bench = isSecondary ? benchmarks?.secondary : benchmarks?.primary; const bench = isSecondary ? benchmarks?.secondary : benchmarks?.primary;