From 0621d2d5a87b7eeb9075d0f2495d16c4e9d1ff72 Mon Sep 17 00:00:00 2001 From: _Zvbj Date: Fri, 14 Aug 2026 03:52:56 +0800 Subject: [PATCH] fix: preserve PreviewGroup imageRender contract --- src/PreviewGroup.tsx | 2 +- tests/previewGroup.test.tsx | 29 +++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/src/PreviewGroup.tsx b/src/PreviewGroup.tsx index 519e9080..2f9c7ebd 100644 --- a/src/PreviewGroup.tsx +++ b/src/PreviewGroup.tsx @@ -9,7 +9,7 @@ import type { TransformType } from './hooks/useImageTransform'; import usePreviewItems from './hooks/usePreviewItems'; import type { ImageElementProps, OnGroupPreview } from './interface'; -export interface GroupPreviewConfig extends InternalPreviewConfig { +export interface GroupPreviewConfig extends Omit { current?: number; // Similar to InternalPreviewConfig but has additional current imageRender?: ( diff --git a/tests/previewGroup.test.tsx b/tests/previewGroup.test.tsx index c13b6337..304005ba 100644 --- a/tests/previewGroup.test.tsx +++ b/tests/previewGroup.test.tsx @@ -151,6 +151,35 @@ describe('PreviewGroup', () => { expect(previewProgressElement.textContent).toEqual('current:1 / total:3'); }); + it('imageRender receives the current group index', () => { + const imageRender = jest.fn((originalNode, { current }) => ( +
+ {originalNode} +
+ )); + + render( + , + ); + + expect(document.querySelector('[data-testid="group-image-render"]')).toHaveAttribute( + 'data-current', + '0', + ); + fireEvent.click(document.querySelector('.rc-image-preview-switch-next')); + expect(document.querySelector('[data-testid="group-image-render"]')).toHaveAttribute( + 'data-current', + '1', + ); + expect(imageRender).toHaveBeenLastCalledWith( + expect.anything(), + expect.objectContaining({ current: 1 }), + ); + }); + it('Switch', () => { const previewProgressElementPath = '.rc-image-preview-progress'; const { container } = render(