From acfd34e8767c3f7c887f99c51763f6150ff21898 Mon Sep 17 00:00:00 2001 From: wangxiaolei Date: Wed, 14 Jan 2026 19:30:47 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20fix=20Cannot=20destructure=20property=20?= =?UTF-8?q?'name'=20of=20'value'=20as=20it=20is=20undef=E2=80=A6=20(#30991?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../document-picker/preview-document-picker.spec.tsx | 12 ++++++++++++ .../document-picker/preview-document-picker.tsx | 5 +++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/web/app/components/datasets/common/document-picker/preview-document-picker.spec.tsx b/web/app/components/datasets/common/document-picker/preview-document-picker.spec.tsx index ab46eb4bdc..9306404d7c 100644 --- a/web/app/components/datasets/common/document-picker/preview-document-picker.spec.tsx +++ b/web/app/components/datasets/common/document-picker/preview-document-picker.spec.tsx @@ -362,6 +362,18 @@ describe('PreviewDocumentPicker', () => { expect(screen.getByText('--')).toBeInTheDocument() }) + it('should render when value prop is omitted (optional)', () => { + const files = createMockDocumentList(2) + const onChange = vi.fn() + // Do not pass `value` at all to verify optional behavior + render() + + // Renders placeholder for missing name + expect(screen.getByText('--')).toBeInTheDocument() + // Portal wrapper renders + expect(screen.getByTestId('portal-elem')).toBeInTheDocument() + }) + it('should handle empty files array', () => { renderComponent({ files: [] }) diff --git a/web/app/components/datasets/common/document-picker/preview-document-picker.tsx b/web/app/components/datasets/common/document-picker/preview-document-picker.tsx index 4e728cfb21..74e8ea9673 100644 --- a/web/app/components/datasets/common/document-picker/preview-document-picker.tsx +++ b/web/app/components/datasets/common/document-picker/preview-document-picker.tsx @@ -18,7 +18,7 @@ import DocumentList from './document-list' type Props = { className?: string - value: DocumentItem + value?: DocumentItem files: DocumentItem[] onChange: (value: DocumentItem) => void } @@ -30,7 +30,8 @@ const PreviewDocumentPicker: FC = ({ onChange, }) => { const { t } = useTranslation() - const { name, extension } = value + const name = value?.name || '' + const extension = value?.extension const [open, { set: setOpen,