feat(stats): add note ID resolution and session event handling improvements

- Add note ID resolution through merge redirects in stats API
- Build Anki note previews using configured field names
- Add session event helpers for merged note dedup and stable request keys
- Refactor SessionDetail to prevent redundant note info requests
- Add session event popover and API client tests
This commit is contained in:
2026-03-18 02:24:38 -07:00
parent a0015dc75c
commit 97126caf4e
23 changed files with 528 additions and 52 deletions

View File

@@ -1,5 +1,6 @@
import { useState, useEffect } from 'react';
import { getStatsClient } from './useStatsApi';
import { SESSION_CHART_EVENT_TYPES } from '../lib/session-events';
import type { SessionSummary, SessionTimelinePoint, SessionEvent } from '../types/stats';
export function useSessions(limit = 50) {
@@ -65,7 +66,7 @@ export function useSessionDetail(sessionId: number | null) {
const client = getStatsClient();
Promise.all([
client.getSessionTimeline(sessionId),
client.getSessionEvents(sessionId),
client.getSessionEvents(sessionId, 500, [...SESSION_CHART_EVENT_TYPES]),
client.getSessionKnownWordsTimeline(sessionId),
])
.then(([nextTimeline, nextEvents, nextKnownWords]) => {