diff --git a/web/app/(commonLayout)/workflow/page.tsx b/web/app/(commonLayout)/workflow/page.tsx
index 4907730ab3..486978ebf2 100644
--- a/web/app/(commonLayout)/workflow/page.tsx
+++ b/web/app/(commonLayout)/workflow/page.tsx
@@ -52,13 +52,13 @@ const initialEdges = [
sourceHandle: 'condition1',
target: '3',
},
- // {
- // id: '2',
- // type: 'custom',
- // source: '2',
- // sourceHandle: 'condition2',
- // target: '4',
- // },
+ {
+ id: '2',
+ type: 'custom',
+ source: '2',
+ sourceHandle: 'condition2',
+ target: '4',
+ },
]
const Page: FC = () => {
diff --git a/web/app/components/workflow/header/index.tsx b/web/app/components/workflow/header/index.tsx
index ce9d5c3a55..f8fe8336ec 100644
--- a/web/app/components/workflow/header/index.tsx
+++ b/web/app/components/workflow/header/index.tsx
@@ -2,6 +2,7 @@ import type { FC } from 'react'
import { memo } from 'react'
import { useStore } from '../store'
import RunAndHistory from './run-and-history'
+import Publish from './publish'
import { Edit03 } from '@/app/components/base/icons/src/vender/solid/general'
import { Grid01 } from '@/app/components/base/icons/src/vender/line/layout'
import Button from '@/app/components/base/button'
@@ -47,12 +48,7 @@ const Header: FC = () => {
)
}
-
+
)
diff --git a/web/app/components/workflow/header/publish.tsx b/web/app/components/workflow/header/publish.tsx
new file mode 100644
index 0000000000..2580befe06
--- /dev/null
+++ b/web/app/components/workflow/header/publish.tsx
@@ -0,0 +1,65 @@
+import { useState } from 'react'
+import Button from '@/app/components/base/button'
+import {
+ PortalToFollowElem,
+ PortalToFollowElemContent,
+ PortalToFollowElemTrigger,
+} from '@/app/components/base/portal-to-follow-elem'
+
+const Publish = () => {
+ const [open, setOpen] = useState(false)
+
+ return (
+
+ setOpen(v => !v)}>
+
+
+
+
+
+
+ Current Draft
+
+
+ Auto-Saved 3 min ago · Evan
+
+
+
+
+
+ Latest Published
+
+
+
+ Auto-Saved 3 min ago · Evan
+
+
+
+
+
+
+
+ )
+}
+
+export default Publish
diff --git a/web/app/components/workflow/nodes/_base/components/next-step.tsx b/web/app/components/workflow/nodes/_base/components/next-step.tsx
index c977fc1354..35fd2da9a6 100644
--- a/web/app/components/workflow/nodes/_base/components/next-step.tsx
+++ b/web/app/components/workflow/nodes/_base/components/next-step.tsx
@@ -133,8 +133,11 @@ const NextStep = () => {
!!outgoers.length && outgoers.map(outgoer => (
+
+ IS TRUE
+
+
export const NodeTargetHandle = ({
id,
data,
-}: NodeProps) => {
+ handleId,
+ handleClassName,
+ nodeSelectorClassName,
+}: NodeHandleProps) => {
const [open, setOpen] = useState(false)
const store = useStoreApi()
const incomers = getIncomers({ id } as Node, store.getState().getNodes(), store.getState().edges)
@@ -32,13 +41,15 @@ export const NodeTargetHandle = ({
return (
<>
`
hidden absolute left-0 top-0 pointer-events-none
+ ${nodeSelectorClassName}
${data.hovering && '!flex'}
${open && '!flex'}
`}
@@ -64,18 +76,13 @@ export const NodeTargetHandle = ({
)
}
-type NodeSourceHandleProps = {
- handleId?: string
- handleClassName?: string
- nodeSelectorClassName?: string
-} & Pick
export const NodeSourceHandle = ({
id,
data,
handleId,
handleClassName,
nodeSelectorClassName,
-}: NodeSourceHandleProps) => {
+}: NodeHandleProps) => {
const [open, setOpen] = useState(false)
const store = useStoreApi()
const connectedEdges = getConnectedEdges([{ id } as Node], store.getState().edges)
diff --git a/web/app/components/workflow/nodes/_base/components/title-description-input.tsx b/web/app/components/workflow/nodes/_base/components/title-description-input.tsx
index b18357397d..6fd3835809 100644
--- a/web/app/components/workflow/nodes/_base/components/title-description-input.tsx
+++ b/web/app/components/workflow/nodes/_base/components/title-description-input.tsx
@@ -21,7 +21,7 @@ export const TitleInput = memo(({
className={`
grow mr-2 px-1 h-6 text-base text-gray-900 font-semibold rounded-lg border border-transparent appearance-none outline-none
hover:bg-gray-50
- focus:border-gray-300 focus:shadow-xs focus:bg-white
+ focus:border-gray-300 focus:shadow-xs focus:bg-white caret-[#295EFF]
`}
placeholder='Add title...'
/>
@@ -58,7 +58,7 @@ export const DescriptionInput = memo(({
className={`
w-full text-xs text-gray-900 leading-[18px] bg-transparent
appearance-none outline-none resize-none
- placeholder:text-gray-400
+ placeholder:text-gray-400 caret-[#295EFF]
`}
placeholder='Add description...'
autoSize
diff --git a/web/app/components/workflow/nodes/_base/node.tsx b/web/app/components/workflow/nodes/_base/node.tsx
index d60f9d917a..04f78fbce5 100644
--- a/web/app/components/workflow/nodes/_base/node.tsx
+++ b/web/app/components/workflow/nodes/_base/node.tsx
@@ -46,8 +46,14 @@ const BaseNode: FC = ({
{data.title}
- {cloneElement(children, { id: nodeId, data })}
-
+ {
+ children && (
+
+ {cloneElement(children, { id: nodeId, data })}
+
+ )
+ }
+
{
data.desc && (
diff --git a/web/app/components/workflow/nodes/index.tsx b/web/app/components/workflow/nodes/index.tsx
index 3ba4e05d2e..e17a1a318d 100644
--- a/web/app/components/workflow/nodes/index.tsx
+++ b/web/app/components/workflow/nodes/index.tsx
@@ -18,7 +18,15 @@ const CustomNode = memo((props: NodeProps) => {
return (
<>
-
+ {
+ nodeData.type !== BlockEnum.VariableAssigner && (
+
+ )
+ }
diff --git a/web/app/components/workflow/nodes/start/node.tsx b/web/app/components/workflow/nodes/start/node.tsx
index 80a2f27570..329b6d1587 100644
--- a/web/app/components/workflow/nodes/start/node.tsx
+++ b/web/app/components/workflow/nodes/start/node.tsx
@@ -8,6 +8,7 @@ const i18nPrefix = 'workflow.nodes.start'
const Node: FC = () => {
const { t } = useTranslation()
const { variables } = mockData
+
return (
diff --git a/web/app/components/workflow/panel/run-history.tsx b/web/app/components/workflow/panel/run-history.tsx
index 8e54cf8379..dbfe89793f 100644
--- a/web/app/components/workflow/panel/run-history.tsx
+++ b/web/app/components/workflow/panel/run-history.tsx
@@ -4,6 +4,7 @@ import { CheckCircle } from '@/app/components/base/icons/src/vender/solid/genera
import { AlertCircle } from '@/app/components/base/icons/src/vender/line/alertsAndFeedback'
const RunHistory = () => {
+ const mode = useStore(state => state.mode)
const setShowRunHistory = useStore(state => state.setShowRunHistory)
return (
@@ -18,15 +19,19 @@ const RunHistory = () => {
-
-
-
-
Test Run#7
-
- Evan · 2 min ago
+ {
+ mode === 'workflow' && (
+
+
+
+
Test Run#7
+
+ Evan · 2 min ago
+
+
-
-
+ )
+ }