datasource

pull/21398/head
zxhlyh 11 months ago
parent fdc4c36b77
commit 468bfdfed9

@ -14,6 +14,10 @@ export const useAvailableNodesMetaData = () => {
...WORKFLOW_COMMON_NODES, ...WORKFLOW_COMMON_NODES,
{ {
...dataSourceDefault, ...dataSourceDefault,
defaultValue: {
...dataSourceDefault.defaultValue,
_dataSourceStartToAdd: true,
},
metaData: { metaData: {
...dataSourceDefault.metaData, ...dataSourceDefault.metaData,
isStart: true, isStart: true,

@ -1,5 +1,28 @@
import { VarType } from '@/app/components/workflow/types' import { VarType } from '@/app/components/workflow/types'
export const DEFAULT_FILE_EXTENSIONS_IN_LOCAL_FILE_DATA_SOURCE = [
'txt',
'markdown',
'mdx',
'pdf',
'html',
'xlsx',
'xls',
'vtt',
'properties',
'doc',
'docx',
'csv',
'eml',
'msg',
'pptx',
'xml',
'epub',
'ppt',
'md',
'html',
]
export const OUTPUT_VARIABLES_MAP = { export const OUTPUT_VARIABLES_MAP = {
datasource_type: { datasource_type: {
name: 'datasource_type', name: 'datasource_type',

@ -11,28 +11,6 @@ const metaData = genNodeMetaData({
const nodeDefault: NodeDefault<DataSourceNodeType> = { const nodeDefault: NodeDefault<DataSourceNodeType> = {
metaData, metaData,
defaultValue: { defaultValue: {
fileExtensions: [
'txt',
'markdown',
'mdx',
'pdf',
'html',
'xlsx',
'xls',
'vtt',
'properties',
'doc',
'docx',
'csv',
'eml',
'msg',
'pptx',
'xml',
'epub',
'ppt',
'md',
'html',
],
datasource_parameters: {}, datasource_parameters: {},
datasource_configurations: {}, datasource_configurations: {},
}, },

@ -1,18 +1,18 @@
import { useCallback } from 'react' import {
useCallback,
useEffect,
} from 'react'
import { useStoreApi } from 'reactflow' import { useStoreApi } from 'reactflow'
import { useTranslation } from 'react-i18next'
import { useNodeDataUpdate } from '@/app/components/workflow/hooks' import { useNodeDataUpdate } from '@/app/components/workflow/hooks'
import type { import type {
DataSourceNodeType, DataSourceNodeType,
ToolVarInputs, ToolVarInputs,
} from '../types' } from '../types'
import { useToastContext } from '@/app/components/base/toast' import { DEFAULT_FILE_EXTENSIONS_IN_LOCAL_FILE_DATA_SOURCE } from '../constants'
export const useConfig = (id: string) => { export const useConfig = (id: string) => {
const store = useStoreApi() const store = useStoreApi()
const { handleNodeDataUpdateWithSyncDraft } = useNodeDataUpdate() const { handleNodeDataUpdateWithSyncDraft } = useNodeDataUpdate()
const { notify } = useToastContext()
const { t } = useTranslation()
const getNodeData = useCallback(() => { const getNodeData = useCallback(() => {
const { getNodes } = store.getState() const { getNodes } = store.getState()
@ -27,6 +27,23 @@ export const useConfig = (id: string) => {
data, data,
}) })
}, [id, handleNodeDataUpdateWithSyncDraft]) }, [id, handleNodeDataUpdateWithSyncDraft])
const handleLocalFileDataSourceInit = useCallback(() => {
const nodeData = getNodeData()
if (nodeData?.data._dataSourceStartToAdd && nodeData?.data.provider_type === 'local_file') {
handleNodeDataUpdate({
...nodeData.data,
_dataSourceStartToAdd: false,
fileExtensions: DEFAULT_FILE_EXTENSIONS_IN_LOCAL_FILE_DATA_SOURCE,
})
}
}, [getNodeData, handleNodeDataUpdate])
useEffect(() => {
handleLocalFileDataSourceInit()
}, [handleLocalFileDataSourceInit])
const handleFileExtensionsChange = useCallback((fileExtensions: string[]) => { const handleFileExtensionsChange = useCallback((fileExtensions: string[]) => {
const nodeData = getNodeData() const nodeData = getNodeData()
handleNodeDataUpdate({ handleNodeDataUpdate({

@ -12,7 +12,6 @@ import type { NodePanelProps } from '@/app/components/workflow/types'
import { import {
BoxGroupField, BoxGroupField,
Group, Group,
GroupField,
} from '@/app/components/workflow/nodes/_base/components/layout' } from '@/app/components/workflow/nodes/_base/components/layout'
import OutputVars, { VarItem } from '@/app/components/workflow/nodes/_base/components/output-vars' import OutputVars, { VarItem } from '@/app/components/workflow/nodes/_base/components/output-vars'
import TagInput from '@/app/components/base/tag-input' import TagInput from '@/app/components/base/tag-input'
@ -86,7 +85,7 @@ const Panel: FC<NodePanelProps<DataSourceNodeType>> = ({ id, data }) => {
return ( return (
<div > <div >
{ {
!isAuthorized && !showAuthModal && !isLocalFile && ( !isAuthorized && !showAuthModal && !isLocalFile && currentDataSource && (
<Group> <Group>
<Button <Button
variant='primary' variant='primary'
@ -101,9 +100,15 @@ const Panel: FC<NodePanelProps<DataSourceNodeType>> = ({ id, data }) => {
} }
{ {
isAuthorized && !isLocalFile && ( isAuthorized && !isLocalFile && (
<GroupField <BoxGroupField
groupProps={{ boxGroupProps={{
withBorderBottom: true, boxProps: { withBorderBottom: true },
}}
fieldProps={{
fieldTitleProps: {
title: t('workflow.nodes.tool.inputVars'),
},
supportCollapse: true,
}} }}
> >
<InputVarList <InputVarList
@ -116,7 +121,7 @@ const Panel: FC<NodePanelProps<DataSourceNodeType>> = ({ id, data }) => {
isSupportConstantValue isSupportConstantValue
onOpen={handleOnVarOpen} onOpen={handleOnVarOpen}
/> />
</GroupField> </BoxGroupField>
) )
} }
{ {

@ -82,6 +82,7 @@ export type CommonNodeType<T = {}> = {
_inParallelHovering?: boolean _inParallelHovering?: boolean
_waitingRun?: boolean _waitingRun?: boolean
_retryIndex?: number _retryIndex?: number
_dataSourceStartToAdd?: boolean
isInIteration?: boolean isInIteration?: boolean
iteration_id?: string iteration_id?: string
selected?: boolean selected?: boolean

Loading…
Cancel
Save