'use client' import type { BuiltInMetadataItem } from '../types' import { Button } from '@langgenius/dify-ui/button' import { noop } from 'es-toolkit/function' import { useCallback, useState } from 'react' import { useTranslation } from 'react-i18next' import Input from '@/app/components/base/input' import OptionCard from '../../../workflow/nodes/_base/components/option-card' import { DataType } from '../types' import Field from './field' const i18nPrefix = 'metadata.createMetadata' export type Props = Readonly<{ onClose?: () => void onSave: (data: BuiltInMetadataItem) => void hasBack?: boolean onBack?: () => void }> export function CreateContent({ onClose = noop, hasBack, onBack, onSave }: Props) { const { t } = useTranslation() const [type, setType] = useState(DataType.string) const handleTypeChange = useCallback( (newType: DataType) => { return () => setType(newType) }, [setType], ) const [name, setName] = useState('') const handleNameChange = useCallback( (e: React.ChangeEvent) => { setName(e.target.value) }, [setName], ) const handleSave = useCallback(() => { onSave({ type, name, }) }, [onSave, type, name]) return (
{hasBack && ( )}
{t(($) => $[`${i18nPrefix}.title`], { ns: 'dataset' })}
{!hasBack && ( )}
$[`${i18nPrefix}.type`], { ns: 'dataset' })}>
$[`${i18nPrefix}.name`], { ns: 'dataset' })}> $[`${i18nPrefix}.name`], { ns: 'dataset' })} value={name} onChange={handleNameChange} placeholder={t(($) => $[`${i18nPrefix}.namePlaceholder`], { ns: 'dataset' })} />
) }