diff --git a/web/app/(commonLayout)/datasets/Container.tsx b/web/app/(commonLayout)/datasets/Container.tsx
index 7546926043..331cfe4a45 100644
--- a/web/app/(commonLayout)/datasets/Container.tsx
+++ b/web/app/(commonLayout)/datasets/Container.tsx
@@ -20,7 +20,7 @@ import Button from '@/app/components/base/button'
import Input from '@/app/components/base/input'
import { ApiConnectionMod } from '@/app/components/base/icons/src/vender/solid/development'
import CheckboxWithLabel from '@/app/components/datasets/create/website/base/checkbox-with-label'
-import CreateModal from '@/app/components/datasets/metadata/create-modal'
+import CreateModal from '@/app/components/datasets/metadata/create-metadata-modal'
// Services
import { fetchDatasetApiBaseUrl } from '@/service/datasets'
@@ -83,7 +83,9 @@ const Container = () => {
return (
-
{ console.log(data) }} />
+
+ open} hasBack onSave={(data) => { console.log(data) }} />
+
void
hasBack?: boolean
onBack?: () => void
}
-const CreateModal: FC = ({
- onSave,
+const CreateContent: FC = ({
hasBack,
onBack,
+ onSave,
}) => {
const { t } = useTranslation()
const [type, setType] = useState(DataType.string)
+
const handleTypeChange = useCallback((newType: DataType) => {
return () => setType(newType)
}, [setType])
@@ -38,6 +39,7 @@ const CreateModal: FC = ({
name,
})
}, [onSave, type, name])
+
return (
= ({
)
}
-export default React.memo(CreateModal)
+export default React.memo(CreateContent)
diff --git a/web/app/components/datasets/metadata/create-metadata-modal.tsx b/web/app/components/datasets/metadata/create-metadata-modal.tsx
new file mode 100644
index 0000000000..3e03e974f5
--- /dev/null
+++ b/web/app/components/datasets/metadata/create-metadata-modal.tsx
@@ -0,0 +1,43 @@
+'use client'
+import type { FC } from 'react'
+import React, { useState } from 'react'
+import type { Props as CreateContentProps } from './create-content'
+import CreateContent from './create-content'
+import { PortalToFollowElem, PortalToFollowElemContent, PortalToFollowElemTrigger } from '../../base/portal-to-follow-elem'
+
+type Props = {
+ onSave: (data: any) => void
+ trigger: React.ReactNode
+ popupLeft?: number
+} & CreateContentProps
+
+const CreateMetadataModal: FC = ({
+ trigger,
+ popupLeft = 20,
+ ...createContentProps
+}) => {
+ const [open, setOpen] = useState(false)
+
+ return (
+
+ setOpen(!open)}
+ >
+ {trigger}
+
+
+
+
+
+
+ )
+}
+export default React.memo(CreateMetadataModal)