fix: Update workflow preview panel width calculation to ensure the panel width is within the canvas boundaries and set a minimum width limit of 400px.

pull/22195/head
GuanMu 11 months ago
parent 53cc9ccaa0
commit e8382895e5

@ -32,6 +32,9 @@ const WorkflowPreview = () => {
const { handleCancelDebugAndPreviewPanel } = useWorkflowInteractions() const { handleCancelDebugAndPreviewPanel } = useWorkflowInteractions()
const workflowRunningData = useStore(s => s.workflowRunningData) const workflowRunningData = useStore(s => s.workflowRunningData)
const showInputsPanel = useStore(s => s.showInputsPanel) const showInputsPanel = useStore(s => s.showInputsPanel)
const workflowCanvasWidth = useStore(s => s.workflowCanvasWidth)
const panelWidth = useStore(s => s.previewPanelWidth)
const setPreviewPanelWidth = useStore(s => s.setPreviewPanelWidth)
const showDebugAndPreviewPanel = useStore(s => s.showDebugAndPreviewPanel) const showDebugAndPreviewPanel = useStore(s => s.showDebugAndPreviewPanel)
const [currentTab, setCurrentTab] = useState<string>(showInputsPanel ? 'INPUT' : 'TRACING') const [currentTab, setCurrentTab] = useState<string>(showInputsPanel ? 'INPUT' : 'TRACING')
@ -49,7 +52,6 @@ const WorkflowPreview = () => {
switchTab('DETAIL') switchTab('DETAIL')
}, [workflowRunningData]) }, [workflowRunningData])
const [panelWidth, setPanelWidth] = useState(420)
const [isResizing, setIsResizing] = useState(false) const [isResizing, setIsResizing] = useState(false)
const startResizing = useCallback((e: React.MouseEvent) => { const startResizing = useCallback((e: React.MouseEvent) => {
@ -64,10 +66,14 @@ const WorkflowPreview = () => {
const resize = useCallback((e: MouseEvent) => { const resize = useCallback((e: MouseEvent) => {
if (isResizing) { if (isResizing) {
const newWidth = window.innerWidth - e.clientX const newWidth = window.innerWidth - e.clientX
if (newWidth > 420 && newWidth < 1024) // width constraints: 400 <= width <= maxAllowed (canvas - reserved 400)
setPanelWidth(newWidth) const reservedCanvasWidth = 400
const maxAllowed = workflowCanvasWidth ? (workflowCanvasWidth - reservedCanvasWidth) : 1024
if (newWidth >= 400 && newWidth <= maxAllowed)
setPreviewPanelWidth(newWidth)
} }
}, [isResizing]) }, [isResizing, workflowCanvasWidth, setPreviewPanelWidth])
useEffect(() => { useEffect(() => {
window.addEventListener('mousemove', resize) window.addEventListener('mousemove', resize)
@ -79,9 +85,9 @@ const WorkflowPreview = () => {
}, [resize, stopResizing]) }, [resize, stopResizing])
return ( return (
<div className={` <div className={
relative flex h-full flex-col rounded-l-2xl border-[0.5px] border-components-panel-border bg-components-panel-bg shadow-xl 'relative flex h-full flex-col rounded-l-2xl border-[0.5px] border-components-panel-border bg-components-panel-bg shadow-xl'
`} }
style={{ width: `${panelWidth}px` }} style={{ width: `${panelWidth}px` }}
> >
<div <div

Loading…
Cancel
Save