diff --git a/web/app/components/base/drawer/index.tsx b/web/app/components/base/drawer/index.tsx index 2a14e41205..911a785fe1 100644 --- a/web/app/components/base/drawer/index.tsx +++ b/web/app/components/base/drawer/index.tsx @@ -47,7 +47,7 @@ export default function Drawer({ -
<> diff --git a/web/app/components/workflow/nodes/knowledge-retrieval/components/dataset-item.tsx b/web/app/components/workflow/nodes/knowledge-retrieval/components/dataset-item.tsx index 4f00a4e021..2ed823200a 100644 --- a/web/app/components/workflow/nodes/knowledge-retrieval/components/dataset-item.tsx +++ b/web/app/components/workflow/nodes/knowledge-retrieval/components/dataset-item.tsx @@ -1,23 +1,42 @@ 'use client' import type { FC } from 'react' -import React from 'react' +import React, { useCallback } from 'react' +import { useBoolean } from 'ahooks' import type { DataSet } from '@/models/datasets' import { DataSourceType } from '@/models/datasets' import { Settings01, Trash03 } from '@/app/components/base/icons/src/vender/line/general' import FileIcon from '@/app/components/base/file-icon' import { Folder } from '@/app/components/base/icons/src/vender/solid/files' +import SettingsModal from '@/app/components/app/configuration/dataset-config/settings-modal' +import Drawer from '@/app/components/base/drawer' +import useBreakpoints, { MediaType } from '@/hooks/use-breakpoints' type Props = { payload: DataSet onRemove: () => void + onChange: (dataSet: DataSet) => void } const DatasetItem: FC = ({ payload, onRemove, + onChange, }) => { + const media = useBreakpoints() + const isMobile = media === MediaType.mobile + + const [isShowSettingsModal, { + setTrue: showSettingsModal, + setFalse: hideSettingsModal, + }] = useBoolean(false) + + const handleSave = useCallback((newDataset: DataSet) => { + onChange(newDataset) + hideSettingsModal() + }, [payload]) + return ( -
+
{ payload.data_source_type === DataSourceType.FILE && ( @@ -35,10 +54,10 @@ const DatasetItem: FC = ({ }
{payload.name}
-
+
setShowSettingsModal(true)} + onClick={showSettingsModal} >
@@ -49,6 +68,15 @@ const DatasetItem: FC = ({
+ {isShowSettingsModal && ( + + + + )}
) } diff --git a/web/app/components/workflow/nodes/knowledge-retrieval/components/dataset-list.tsx b/web/app/components/workflow/nodes/knowledge-retrieval/components/dataset-list.tsx index 54cd3a285a..2cba51318b 100644 --- a/web/app/components/workflow/nodes/knowledge-retrieval/components/dataset-list.tsx +++ b/web/app/components/workflow/nodes/knowledge-retrieval/components/dataset-list.tsx @@ -21,6 +21,15 @@ const DatasetList: FC = ({ onChange(newList) } }, []) + + const handleChange = useCallback((index: number) => { + return (value: DataSet) => { + const newList = produce(list, (draft) => { + draft[index] = value + }) + onChange(newList) + } + }, [list, onChange]) return (
{ @@ -30,6 +39,7 @@ const DatasetList: FC = ({ key={index} payload={item} onRemove={handleRemove(index)} + onChange={handleChange(index)} /> ) })