diff --git a/app/sites/[id]/pagespeed/page.tsx b/app/sites/[id]/pagespeed/page.tsx index 843a396..33d5f3e 100644 --- a/app/sites/[id]/pagespeed/page.tsx +++ b/app/sites/[id]/pagespeed/page.tsx @@ -403,6 +403,26 @@ export default function PageSpeedPage() { + {/* Filmstrip — page load progression */} + {currentCheck?.filmstrip && currentCheck.filmstrip.length > 0 && ( +
+
+ {currentCheck.filmstrip.map((frame, idx) => ( +
+ {`${frame.timing}ms`} + + {frame.timing < 1000 ? `${frame.timing}ms` : `${(frame.timing / 1000).toFixed(1)}s`} + +
+ ))} +
+
+ )} + {/* Section 2 — Metrics Card */}

diff --git a/lib/api/pagespeed.ts b/lib/api/pagespeed.ts index d3f4654..f3d811e 100644 --- a/lib/api/pagespeed.ts +++ b/lib/api/pagespeed.ts @@ -26,6 +26,11 @@ export interface AuditSummary { // eslint-disable-next-line @typescript-eslint/no-explicit-any export type AuditDetailItem = Record +export interface FilmstripFrame { + timing: number + data: string +} + export interface PageSpeedCheck { id: string site_id: string @@ -42,6 +47,7 @@ export interface PageSpeedCheck { tti_ms: number | null audits: AuditSummary[] | null screenshot?: string | null + filmstrip?: FilmstripFrame[] | null triggered_by: 'scheduled' | 'manual' checked_at: string }