feat: default value option for select input fields (#21192)

Co-authored-by: crazywoola <427733928@qq.com>
Co-authored-by: GuanMu <ballmanjq@gmail.com>
This commit is contained in:
Anton Kovalev
2025-07-28 10:37:23 +03:00
committed by GitHub
parent fce126b206
commit 15757110cf
24 changed files with 113 additions and 11 deletions

View File

@@ -47,7 +47,22 @@ const ChatWrapper = (
const startVariables = startNode?.data.variables
const appDetail = useAppStore(s => s.appDetail)
const workflowStore = useWorkflowStore()
const inputs = useStore(s => s.inputs)
const { inputs, setInputs } = useStore(s => ({
inputs: s.inputs,
setInputs: s.setInputs,
}))
const initialInputs = useMemo(() => {
const initInputs: Record<string, any> = {}
if (startVariables) {
startVariables.forEach((variable) => {
if (variable.default)
initInputs[variable.variable] = variable.default
})
}
return initInputs
}, [startVariables])
const features = useFeatures(s => s.features)
const config = useMemo(() => {
return {
@@ -82,6 +97,11 @@ const ChatWrapper = (
taskId => stopChatMessageResponding(appDetail!.id, taskId),
)
const handleRestartChat = useCallback(() => {
handleRestart()
setInputs(initialInputs)
}, [handleRestart, setInputs, initialInputs])
const doSend: OnSend = useCallback((message, files, isRegenerate = false, parentAnswer: ChatItem | null = null) => {
handleSend(
{
@@ -115,9 +135,18 @@ const ChatWrapper = (
useImperativeHandle(ref, () => {
return {
handleRestart,
handleRestart: handleRestartChat,
}
}, [handleRestart])
}, [handleRestartChat])
useEffect(() => {
if (Object.keys(initialInputs).length > 0) {
setInputs({
...initialInputs,
...inputs,
})
}
}, [initialInputs])
useEffect(() => {
if (isResponding)