Fix sparklines not rendering on initial page load in Chromium
Replace useId() with colon-free ref-based ID generator to avoid SVG url() gradient resolution failures, and add placeholderData to timeseries query to prevent flash during refetch. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -46,6 +46,7 @@ export function useStatsTimeseries(timeFrom: string | undefined, timeTo: string
|
||||
return data!;
|
||||
},
|
||||
enabled: !!timeFrom,
|
||||
placeholderData: (prev) => prev,
|
||||
refetchInterval: 30_000,
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { useMemo, useId } from 'react';
|
||||
import { useMemo, useRef } from 'react';
|
||||
|
||||
interface SparklineProps {
|
||||
data: number[];
|
||||
@@ -6,7 +6,8 @@ interface SparklineProps {
|
||||
}
|
||||
|
||||
export function Sparkline({ data, color }: SparklineProps) {
|
||||
const gradientId = useId();
|
||||
const gradientIdRef = useRef('spark-' + Math.random().toString(36).slice(2, 9));
|
||||
const gradientId = gradientIdRef.current;
|
||||
|
||||
// Drop first and last buckets — they are partial time windows and skew the trend
|
||||
const trimmed = useMemo(() => (data.length > 4 ? data.slice(1, -1) : data), [data]);
|
||||
|
||||
Reference in New Issue
Block a user