1 && "md:grid-cols-2",
+ )}
>
{okResults.map((result) => (
diff --git a/src/components/insights/hero-strip.tsx b/src/components/insights/hero-strip.tsx
index 1b3874974..d20d8539c 100644
--- a/src/components/insights/hero-strip.tsx
+++ b/src/components/insights/hero-strip.tsx
@@ -238,33 +238,41 @@ export function HeroStrip({
* current ISO week. Older parents that haven't adopted the
* weeklyReportHref prop still get the disabled affordance.
*/}
- {weeklyReportHref ? (
-
- ) : (
-
- )}
+ >
+ );
+ return weeklyReportHref ? (
+
+ ) : (
+
+ );
+ })()}
{/* B2b wires this into the Coach drawer. The button is
enabled whenever the parent supplies an `onAskCoach`
handler; older parents that haven't adopted B2b yet
diff --git a/src/components/insights/trends-row.tsx b/src/components/insights/trends-row.tsx
index 81f91c353..3e510ccc7 100644
--- a/src/components/insights/trends-row.tsx
+++ b/src/components/insights/trends-row.tsx
@@ -26,17 +26,20 @@ import {
* the row's visual rhythm.
*/
+// v1.4.22 W5 reconcile (S-04) — both `dynamic()` calls used the same
+// pulse-skeleton placeholder. Hoist so the loading affordance stays
+// in lock-step (cleared against `feedback_charts_visual_identity.md`
+// — placeholder only, no chart visual change).
+const ChartSkeleton = () => (
+
+);
+
const HealthChart = dynamic(
() =>
import("@/components/charts/health-chart").then((mod) => ({
default: mod.HealthChart,
})),
- {
- ssr: false,
- loading: () => (
-
- ),
- },
+ { ssr: false, loading: ChartSkeleton },
);
const MoodChart = dynamic(
@@ -44,12 +47,7 @@ const MoodChart = dynamic(
import("@/components/charts/mood-chart").then((mod) => ({
default: mod.MoodChart,
})),
- {
- ssr: false,
- loading: () => (
-
- ),
- },
+ { ssr: false, loading: ChartSkeleton },
);
interface TrendsRowProps {