merge main
This commit is contained in:
commit
7ad5415a38
@ -256,6 +256,7 @@ const DatasetConfig: FC = () => {
|
|||||||
<div className='py-2 border-t border-t-divider-subtle'>
|
<div className='py-2 border-t border-t-divider-subtle'>
|
||||||
<MetadataFilter
|
<MetadataFilter
|
||||||
metadataList={metadataList}
|
metadataList={metadataList}
|
||||||
|
selectedDatasetsLoaded
|
||||||
metadataFilterMode={datasetConfigs.metadata_filtering_mode}
|
metadataFilterMode={datasetConfigs.metadata_filtering_mode}
|
||||||
metadataFilteringConditions={datasetConfigs.metadata_filtering_conditions}
|
metadataFilteringConditions={datasetConfigs.metadata_filtering_conditions}
|
||||||
handleAddCondition={handleAddCondition}
|
handleAddCondition={handleAddCondition}
|
||||||
|
@ -238,7 +238,7 @@ const DatePicker = ({
|
|||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
</PortalToFollowElemTrigger>
|
</PortalToFollowElemTrigger>
|
||||||
<PortalToFollowElemContent className='z-50'>
|
<PortalToFollowElemContent className={popupZIndexClassname}>
|
||||||
<div className='w-[252px] mt-1 bg-components-panel-bg rounded-xl shadow-lg shadow-shadow-shadow-5 border-[0.5px] border-components-panel-border'>
|
<div className='w-[252px] mt-1 bg-components-panel-bg rounded-xl shadow-lg shadow-shadow-shadow-5 border-[0.5px] border-components-panel-border'>
|
||||||
{/* Header */}
|
{/* Header */}
|
||||||
{view === ViewType.date ? (
|
{view === ViewType.date ? (
|
||||||
|
@ -2,6 +2,7 @@ import {
|
|||||||
useEffect,
|
useEffect,
|
||||||
useState,
|
useState,
|
||||||
} from 'react'
|
} from 'react'
|
||||||
|
import { unionBy } from 'lodash-es'
|
||||||
import { useTranslation } from 'react-i18next'
|
import { useTranslation } from 'react-i18next'
|
||||||
import { RiFilter3Line } from '@remixicon/react'
|
import { RiFilter3Line } from '@remixicon/react'
|
||||||
import MetadataPanel from './metadata-panel'
|
import MetadataPanel from './metadata-panel'
|
||||||
@ -15,21 +16,25 @@ import type { MetadataShape } from '@/app/components/workflow/nodes/knowledge-re
|
|||||||
|
|
||||||
const MetadataTrigger = ({
|
const MetadataTrigger = ({
|
||||||
metadataFilteringConditions,
|
metadataFilteringConditions,
|
||||||
metadataList = [],
|
metadataList: originalMetadataList = [],
|
||||||
handleRemoveCondition,
|
handleRemoveCondition,
|
||||||
|
selectedDatasetsLoaded,
|
||||||
...restProps
|
...restProps
|
||||||
}: MetadataShape) => {
|
}: MetadataShape) => {
|
||||||
const { t } = useTranslation()
|
const { t } = useTranslation()
|
||||||
const [open, setOpen] = useState(false)
|
const [open, setOpen] = useState(false)
|
||||||
const conditions = metadataFilteringConditions?.conditions || []
|
const conditions = metadataFilteringConditions?.conditions || []
|
||||||
|
|
||||||
|
const metadataList = unionBy(originalMetadataList, 'name').sort(a => a.id === 'built-in' ? 1 : -1)
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
if (selectedDatasetsLoaded) {
|
||||||
conditions.forEach((condition) => {
|
conditions.forEach((condition) => {
|
||||||
if (!metadataList.find(metadata => metadata.name === condition.name))
|
if (!metadataList.find(metadata => metadata.name === condition.name))
|
||||||
handleRemoveCondition(condition.name)
|
handleRemoveCondition(condition.name)
|
||||||
})
|
})
|
||||||
|
}
|
||||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||||
}, [metadataList, handleRemoveCondition])
|
}, [metadataList, handleRemoveCondition, selectedDatasetsLoaded])
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<PortalToFollowElem
|
<PortalToFollowElem
|
||||||
|
@ -37,6 +37,7 @@ const Panel: FC<NodePanelProps<KnowledgeRetrievalNodeType>> = ({
|
|||||||
handleRetrievalModeChange,
|
handleRetrievalModeChange,
|
||||||
handleMultipleRetrievalConfigChange,
|
handleMultipleRetrievalConfigChange,
|
||||||
selectedDatasets,
|
selectedDatasets,
|
||||||
|
selectedDatasetsLoaded,
|
||||||
handleOnDatasetsChange,
|
handleOnDatasetsChange,
|
||||||
isShowSingleRun,
|
isShowSingleRun,
|
||||||
hideSingleRun,
|
hideSingleRun,
|
||||||
@ -130,6 +131,7 @@ const Panel: FC<NodePanelProps<KnowledgeRetrievalNodeType>> = ({
|
|||||||
<div className='mb-2 py-2'>
|
<div className='mb-2 py-2'>
|
||||||
<MetadataFilter
|
<MetadataFilter
|
||||||
metadataList={metadataList}
|
metadataList={metadataList}
|
||||||
|
selectedDatasetsLoaded={selectedDatasetsLoaded}
|
||||||
metadataFilterMode={inputs.metadata_filtering_mode}
|
metadataFilterMode={inputs.metadata_filtering_mode}
|
||||||
metadataFilteringConditions={inputs.metadata_filtering_conditions}
|
metadataFilteringConditions={inputs.metadata_filtering_conditions}
|
||||||
handleAddCondition={handleAddCondition}
|
handleAddCondition={handleAddCondition}
|
||||||
|
@ -110,6 +110,7 @@ export type HandleToggleConditionLogicalOperator = () => void
|
|||||||
|
|
||||||
export type MetadataShape = {
|
export type MetadataShape = {
|
||||||
metadataList?: MetadataInDoc[]
|
metadataList?: MetadataInDoc[]
|
||||||
|
selectedDatasetsLoaded?: boolean
|
||||||
metadataFilteringConditions?: MetadataFilteringConditions
|
metadataFilteringConditions?: MetadataFilteringConditions
|
||||||
handleAddCondition: HandleAddCondition
|
handleAddCondition: HandleAddCondition
|
||||||
handleRemoveCondition: HandleRemoveCondition
|
handleRemoveCondition: HandleRemoveCondition
|
||||||
|
@ -211,6 +211,7 @@ const useConfig = (id: string, payload: KnowledgeRetrievalNodeType) => {
|
|||||||
setInputs(newInputs)
|
setInputs(newInputs)
|
||||||
}, [inputs, setInputs, selectedDatasets, currentRerankModel, currentRerankProvider])
|
}, [inputs, setInputs, selectedDatasets, currentRerankModel, currentRerankProvider])
|
||||||
|
|
||||||
|
const [selectedDatasetsLoaded, setSelectedDatasetsLoaded] = useState(false)
|
||||||
// datasets
|
// datasets
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
(async () => {
|
(async () => {
|
||||||
@ -225,6 +226,7 @@ const useConfig = (id: string, payload: KnowledgeRetrievalNodeType) => {
|
|||||||
draft._datasets = selectedDatasets
|
draft._datasets = selectedDatasets
|
||||||
})
|
})
|
||||||
setInputs(newInputs)
|
setInputs(newInputs)
|
||||||
|
setSelectedDatasetsLoaded(true)
|
||||||
})()
|
})()
|
||||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||||
}, [])
|
}, [])
|
||||||
@ -418,6 +420,7 @@ const useConfig = (id: string, payload: KnowledgeRetrievalNodeType) => {
|
|||||||
handleModelChanged,
|
handleModelChanged,
|
||||||
handleCompletionParamsChange,
|
handleCompletionParamsChange,
|
||||||
selectedDatasets: selectedDatasets.filter(d => d.name),
|
selectedDatasets: selectedDatasets.filter(d => d.name),
|
||||||
|
selectedDatasetsLoaded,
|
||||||
handleOnDatasetsChange,
|
handleOnDatasetsChange,
|
||||||
isShowSingleRun,
|
isShowSingleRun,
|
||||||
hideSingleRun,
|
hideSingleRun,
|
||||||
|
Loading…
Reference in New Issue
Block a user