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!;
|
return data!;
|
||||||
},
|
},
|
||||||
enabled: !!timeFrom,
|
enabled: !!timeFrom,
|
||||||
|
placeholderData: (prev) => prev,
|
||||||
refetchInterval: 30_000,
|
refetchInterval: 30_000,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { useMemo, useId } from 'react';
|
import { useMemo, useRef } from 'react';
|
||||||
|
|
||||||
interface SparklineProps {
|
interface SparklineProps {
|
||||||
data: number[];
|
data: number[];
|
||||||
@@ -6,7 +6,8 @@ interface SparklineProps {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function Sparkline({ data, color }: 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
|
// 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]);
|
const trimmed = useMemo(() => (data.length > 4 ? data.slice(1, -1) : data), [data]);
|
||||||
|
|||||||
Reference in New Issue
Block a user