mirror of
https://github.com/langgenius/dify.git
synced 2025-11-21 15:32:39 +00:00
Signed-off-by: -LAN- <laipz8200@outlook.com> Co-authored-by: twwu <twwu@dify.ai> Co-authored-by: crazywoola <100913391+crazywoola@users.noreply.github.com> Co-authored-by: jyong <718720800@qq.com> Co-authored-by: Wu Tianwei <30284043+WTW0313@users.noreply.github.com> Co-authored-by: QuantumGhost <obelisk.reg+git@gmail.com> Co-authored-by: lyzno1 <yuanyouhuilyz@gmail.com> Co-authored-by: quicksand <quicksandzn@gmail.com> Co-authored-by: Jyong <76649700+JohnJyong@users.noreply.github.com> Co-authored-by: lyzno1 <92089059+lyzno1@users.noreply.github.com> Co-authored-by: zxhlyh <jasonapring2015@outlook.com> Co-authored-by: Yongtao Huang <yongtaoh2022@gmail.com> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: Joel <iamjoel007@gmail.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: nite-knite <nkCoding@gmail.com> Co-authored-by: Hanqing Zhao <sherry9277@gmail.com> Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> Co-authored-by: Harry <xh001x@hotmail.com>
55 lines
1.7 KiB
TypeScript
55 lines
1.7 KiB
TypeScript
import { useCallback, useMemo } from 'react'
|
|
import { useStore, useWorkflowStore } from '@/app/components/workflow/store'
|
|
import type { InputFieldEditorProps } from '../components/panel/input-field/editor'
|
|
|
|
export const useInputFieldPanel = () => {
|
|
const workflowStore = useWorkflowStore()
|
|
const showInputFieldPreviewPanel = useStore(state => state.showInputFieldPreviewPanel)
|
|
const inputFieldEditPanelProps = useStore(state => state.inputFieldEditPanelProps)
|
|
|
|
const isPreviewing = useMemo(() => {
|
|
return showInputFieldPreviewPanel
|
|
}, [showInputFieldPreviewPanel])
|
|
|
|
const isEditing = useMemo(() => {
|
|
return !!inputFieldEditPanelProps
|
|
}, [inputFieldEditPanelProps])
|
|
|
|
const closeAllInputFieldPanels = useCallback(() => {
|
|
const {
|
|
setShowInputFieldPanel,
|
|
setShowInputFieldPreviewPanel,
|
|
setInputFieldEditPanelProps,
|
|
} = workflowStore.getState()
|
|
|
|
setShowInputFieldPanel?.(false)
|
|
setShowInputFieldPreviewPanel?.(false)
|
|
setInputFieldEditPanelProps?.(null)
|
|
}, [workflowStore])
|
|
|
|
const toggleInputFieldPreviewPanel = useCallback(() => {
|
|
const {
|
|
showInputFieldPreviewPanel,
|
|
setShowInputFieldPreviewPanel,
|
|
} = workflowStore.getState()
|
|
|
|
setShowInputFieldPreviewPanel?.(!showInputFieldPreviewPanel)
|
|
}, [workflowStore])
|
|
|
|
const toggleInputFieldEditPanel = useCallback((editContent: InputFieldEditorProps | null) => {
|
|
const {
|
|
setInputFieldEditPanelProps,
|
|
} = workflowStore.getState()
|
|
|
|
setInputFieldEditPanelProps?.(editContent)
|
|
}, [workflowStore])
|
|
|
|
return {
|
|
closeAllInputFieldPanels,
|
|
toggleInputFieldPreviewPanel,
|
|
toggleInputFieldEditPanel,
|
|
isPreviewing,
|
|
isEditing,
|
|
}
|
|
}
|