Fix Performance page showing empty data

The trends and snapshots endpoints returned periodLabel ("last_30_days")
as the date field, which parseISO() couldn't parse, causing all records
to be filtered out. Now uses capturedAt timestamp for date filtering and
display.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-23 15:08:00 -04:00
parent d4c714fadc
commit d1a26269bc
2 changed files with 3 additions and 2 deletions

View File

@@ -123,6 +123,7 @@ export default async function (fastify: FastifyInstance) {
const rows = await db
.select({
date: performanceSnapshots.periodLabel,
capturedAt: performanceSnapshots.capturedAt,
platformId: performanceSnapshots.platformId,
viewsSearch: performanceSnapshots.viewsSearch,
viewsListing: performanceSnapshots.viewsListing,

View File

@@ -206,7 +206,7 @@ export default function Performance() {
const trends: TrendPoint[] = rawTrends?.length
? rawTrends.map((r: any) => ({
date: r.date || r.periodLabel,
date: r.capturedAt ? r.capturedAt.split('T')[0].split(' ')[0] : r.date || r.periodLabel,
platform: r.platformId || r.platform,
views_search: Number(r.viewsSearch ?? r.views_search ?? 0),
conversion_rate: Number(r.conversionRate ?? r.conversion_rate ?? 0),
@@ -217,7 +217,7 @@ export default function Performance() {
: MOCK_TRENDS;
const snapshots: SnapshotRow[] = rawSnapshots?.length
? rawSnapshots.map((r: any) => ({
date: r.periodLabel || r.date,
date: r.capturedAt ? r.capturedAt.split('T')[0].split(' ')[0] : r.periodLabel || r.date,
platform: r.platformId || r.platform,
views: Number(r.viewsSearch ?? r.views ?? 0),
clicks: Number(r.viewsListing ?? r.clicks ?? 0),