From 6969ac287968d72114f8e7507afc25ad5a557d66 Mon Sep 17 00:00:00 2001 From: Phoebe Stierhoff Date: Tue, 6 Jan 2026 13:55:27 -0500 Subject: [PATCH 1/2] Fix: include index in glyphs prop --- .../src/components/series/private/BaseGlyphSeries.tsx | 1 + .../visx-xychart/test/components/GlyphSeries.test.tsx | 11 +++++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/packages/visx-xychart/src/components/series/private/BaseGlyphSeries.tsx b/packages/visx-xychart/src/components/series/private/BaseGlyphSeries.tsx index 543a834dac..635250d6db 100644 --- a/packages/visx-xychart/src/components/series/private/BaseGlyphSeries.tsx +++ b/packages/visx-xychart/src/components/series/private/BaseGlyphSeries.tsx @@ -73,6 +73,7 @@ export function BaseGlyphSeries< if (!isValidNumber(y)) return null; return { key: `${i}`, + index: i, x, y, color: colorAccessor?.(datum, i) ?? color, diff --git a/packages/visx-xychart/test/components/GlyphSeries.test.tsx b/packages/visx-xychart/test/components/GlyphSeries.test.tsx index 4179c2941e..06bc8a55de 100644 --- a/packages/visx-xychart/test/components/GlyphSeries.test.tsx +++ b/packages/visx-xychart/test/components/GlyphSeries.test.tsx @@ -2,6 +2,7 @@ import { vi } from 'vitest'; import React, { useContext, useEffect } from 'react'; import { render, waitFor } from '@testing-library/react'; import '@testing-library/jest-dom'; +import type { GlyphProps } from '../../src'; import { AnimatedGlyphSeries, DataContext, GlyphSeries, useEventEmitter } from '../../src'; import getDataContext from '../mocks/getDataContext'; import setupTooltipTest from '../mocks/setupTooltipTest'; @@ -59,7 +60,9 @@ describe('', () => { }); it('should render a custom Glyph for each Datum', () => { - const customRenderGlyph = () => ; + const customRenderGlyph = (props: GlyphProps<{}>) => ( + + ); const { container } = render( @@ -67,7 +70,11 @@ describe('', () => { , ); - expect(container.querySelectorAll('.custom-glyph')).toHaveLength(series.data.length); + const glyphs = container.querySelectorAll('.custom-glyph'); + + expect(glyphs).toHaveLength(series.data.length); + expect(glyphs[0]).toHaveAttribute('data-index', '0'); + expect(glyphs[1]).toHaveAttribute('data-index', '1'); }); it('should invoke showTooltip/hideTooltip on pointermove/pointerout', async () => { From 3edc4305c5c6b79d6fbe52d23ab02664ec52bd43 Mon Sep 17 00:00:00 2001 From: Phoebe Stierhoff Date: Tue, 6 Jan 2026 14:00:33 -0500 Subject: [PATCH 2/2] ensure type is correct for GlyphProps --- .../src/components/series/private/BaseGlyphSeries.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/visx-xychart/src/components/series/private/BaseGlyphSeries.tsx b/packages/visx-xychart/src/components/series/private/BaseGlyphSeries.tsx index 635250d6db..a202a7fc65 100644 --- a/packages/visx-xychart/src/components/series/private/BaseGlyphSeries.tsx +++ b/packages/visx-xychart/src/components/series/private/BaseGlyphSeries.tsx @@ -81,7 +81,7 @@ export function BaseGlyphSeries< datum, }; }) - .filter((point) => point) as GlyphProps[], + .filter((point) => !!point) satisfies GlyphProps[], [color, colorAccessor, data, getScaledX, getScaledY, size], );