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,