From 8ff4f347734be36a41bb2e648c39a551cb959ef7 Mon Sep 17 00:00:00 2001 From: twwu Date: Fri, 22 Aug 2025 10:49:23 +0800 Subject: [PATCH] refactor(create-pipeline): remove unused CreateForm and CreateModal components, streamline dataset creation process --- .../create-form/index.tsx | 182 ------------------ .../create-from-scratch-modal.tsx | 99 ---------- .../create-from-pipeline/list/create-card.tsx | 76 +++----- .../list/template-card/content.tsx | 2 +- .../list/template-card/create-modal.tsx | 69 ------- .../list/template-card/index.tsx | 24 +-- web/models/datasets.ts | 9 - web/service/knowledge/use-create-dataset.ts | 6 +- 8 files changed, 37 insertions(+), 430 deletions(-) delete mode 100644 web/app/components/datasets/create-from-pipeline/create-form/index.tsx delete mode 100644 web/app/components/datasets/create-from-pipeline/create-options/create-from-scratch-modal.tsx delete mode 100644 web/app/components/datasets/create-from-pipeline/list/template-card/create-modal.tsx diff --git a/web/app/components/datasets/create-from-pipeline/create-form/index.tsx b/web/app/components/datasets/create-from-pipeline/create-form/index.tsx deleted file mode 100644 index 54633f5b1f..0000000000 --- a/web/app/components/datasets/create-from-pipeline/create-form/index.tsx +++ /dev/null @@ -1,182 +0,0 @@ -import AppIcon from '@/app/components/base/app-icon' -import type { AppIconSelection } from '@/app/components/base/app-icon-picker' -import AppIconPicker from '@/app/components/base/app-icon-picker' -import Input from '@/app/components/base/input' -import Textarea from '@/app/components/base/textarea' -import type { Member } from '@/models/common' -import { DatasetPermission } from '@/models/datasets' -import { useMembers } from '@/service/use-common' -import type { AppIconType } from '@/types/app' -import React, { useCallback, useEffect, useRef, useState } from 'react' -import { useTranslation } from 'react-i18next' -import PermissionSelector from '@/app/components/datasets/settings/permission-selector' -import Button from '@/app/components/base/button' -import { RiCloseLine } from '@remixicon/react' -import Toast from '@/app/components/base/toast' -import type { CreateFormData } from '@/models/pipeline' - -const DEFAULT_APP_ICON: AppIconSelection = { - type: 'emoji', - icon: '📙', - background: '#FFF4ED', -} - -type CreateFormProps = { - onCreate: (payload: CreateFormData) => void - onClose: () => void -} - -const CreateForm = ({ - onCreate, - onClose, -}: CreateFormProps) => { - const { t } = useTranslation() - const [name, setName] = useState('') - const [appIcon, setAppIcon] = useState(DEFAULT_APP_ICON) - const [description, setDescription] = useState('') - const [permission, setPermission] = useState(DatasetPermission.onlyMe) - const [showAppIconPicker, setShowAppIconPicker] = useState(false) - const [selectedMemberIDs, setSelectedMemberIDs] = useState([]) - const previousAppIcon = useRef(DEFAULT_APP_ICON) - const [memberList, setMemberList] = useState([]) - - const { data: members } = useMembers() - - useEffect(() => { - if (members?.accounts) - setMemberList(members.accounts) - }, [members]) - - const handleAppNameChange = useCallback((event: React.ChangeEvent) => { - const value = event.target.value - setName(value) - }, []) - - const handleOpenAppIconPicker = useCallback(() => { - setShowAppIconPicker(true) - previousAppIcon.current = appIcon - }, [appIcon]) - - const handleSelectAppIcon = useCallback((icon: AppIconSelection) => { - setAppIcon(icon) - setShowAppIconPicker(false) - }, []) - - const handleCloseAppIconPicker = useCallback(() => { - setAppIcon(previousAppIcon.current) - setShowAppIconPicker(false) - }, []) - - const handleDescriptionChange = useCallback((event: React.ChangeEvent) => { - const value = event.target.value - setDescription(value) - }, []) - - const handlePermissionChange = useCallback((value?: DatasetPermission) => { - setPermission(value!) - }, []) - - const handleCreate = useCallback(() => { - if (!name) { - Toast.notify({ - type: 'error', - message: 'Please enter a name for the Knowledge Base.', - }) - return - } - onCreate({ - name, - appIcon, - description, - permission, - selectedMemberIDs, - }) - }, [name, appIcon, description, permission, selectedMemberIDs, onCreate]) - - return ( -
- {/* Header */} -
- - {t('datasetPipeline.creation.createKnowledge')} - -
- - {/* Form */} -
-
-
- - -
- -
-
- -