diff --git a/web/app/components/header/account-setting/data-source-page-new/card.tsx b/web/app/components/header/account-setting/data-source-page-new/card.tsx index 6d0e0bc688..1dd2058796 100644 --- a/web/app/components/header/account-setting/data-source-page-new/card.tsx +++ b/web/app/components/header/account-setting/data-source-page-new/card.tsx @@ -1,6 +1,6 @@ -import { RiAddLine } from '@remixicon/react' +import { memo } from 'react' import Item from './item' -import Button from '@/app/components/base/button' +import Configure from './configure' const Card = () => { return ( @@ -17,12 +17,7 @@ const Card = () => { notion-data-source - +
Connected workspace @@ -42,4 +37,4 @@ const Card = () => { ) } -export default Card +export default memo(Card) diff --git a/web/app/components/header/account-setting/data-source-page-new/configure.tsx b/web/app/components/header/account-setting/data-source-page-new/configure.tsx new file mode 100644 index 0000000000..e612d20954 --- /dev/null +++ b/web/app/components/header/account-setting/data-source-page-new/configure.tsx @@ -0,0 +1,63 @@ +import { memo } from 'react' +import { + RiAddLine, + RiEqualizer2Line, +} from '@remixicon/react' +import { + PortalToFollowElem, + PortalToFollowElemContent, + PortalToFollowElemTrigger, +} from '@/app/components/base/portal-to-follow-elem' +import Button from '@/app/components/base/button' + +const Configure = () => { + return ( + <> + + + + + +
+ +
+
+ OR +
+
+ +
+ + + + ) +} + +export default memo(Configure) diff --git a/web/app/components/header/account-setting/data-source-page-new/install-from-marketplace.tsx b/web/app/components/header/account-setting/data-source-page-new/install-from-marketplace.tsx index da3738d0f2..35980ec1b3 100644 --- a/web/app/components/header/account-setting/data-source-page-new/install-from-marketplace.tsx +++ b/web/app/components/header/account-setting/data-source-page-new/install-from-marketplace.tsx @@ -1,4 +1,8 @@ -import { useCallback, useState } from 'react' +import { + memo, + useCallback, + useState, +} from 'react' import { useTheme } from 'next-themes' import { useTranslation } from 'react-i18next' import Link from 'next/link' @@ -77,4 +81,4 @@ const InstallFromMarketplace = ({ ) } -export default InstallFromMarketplace +export default memo(InstallFromMarketplace) diff --git a/web/app/components/header/account-setting/data-source-page-new/item.tsx b/web/app/components/header/account-setting/data-source-page-new/item.tsx index 5b5dfc822b..fdc73ae692 100644 --- a/web/app/components/header/account-setting/data-source-page-new/item.tsx +++ b/web/app/components/header/account-setting/data-source-page-new/item.tsx @@ -1,3 +1,4 @@ +import { memo } from 'react' import Indicator from '@/app/components/header/indicator' import Operator from './operator' @@ -22,4 +23,4 @@ const Item = () => { ) } -export default Item +export default memo(Item) diff --git a/web/app/components/header/account-setting/data-source-page-new/operator.tsx b/web/app/components/header/account-setting/data-source-page-new/operator.tsx index dd84f1ac7c..c198a57b0b 100644 --- a/web/app/components/header/account-setting/data-source-page-new/operator.tsx +++ b/web/app/components/header/account-setting/data-source-page-new/operator.tsx @@ -1,4 +1,5 @@ import { + memo, useCallback, useMemo, } from 'react' @@ -70,4 +71,4 @@ const Operator = () => { ) } -export default Operator +export default memo(Operator) diff --git a/web/app/components/workflow-app/hooks/use-nodes-sync-draft.ts b/web/app/components/workflow-app/hooks/use-nodes-sync-draft.ts index db21cfb05e..928ff10fbe 100644 --- a/web/app/components/workflow-app/hooks/use-nodes-sync-draft.ts +++ b/web/app/components/workflow-app/hooks/use-nodes-sync-draft.ts @@ -28,6 +28,7 @@ export const useNodesSyncDraft = () => { edges, transform, } = store.getState() + const nodes = getNodes() const [x, y, zoom] = transform const { appId, @@ -36,8 +37,7 @@ export const useNodesSyncDraft = () => { syncWorkflowDraftHash, } = workflowStore.getState() - if (appId) { - const nodes = getNodes() + if (appId && !!nodes.length) { const hasStartNode = nodes.find(node => node.data.type === BlockEnum.Start) if (!hasStartNode)