fix(workflow): resolve note node copy/duplicate errors (#27528)

Co-authored-by: crazywoola <100913391+crazywoola@users.noreply.github.com>
This commit is contained in:
yangzheli 2025-10-28 09:26:12 +08:00 committed by GitHub
parent 29afc0657d
commit a7c855cab8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 6 additions and 9 deletions

View File

@ -1445,6 +1445,7 @@ export const useNodesInteractions = () => {
// If no nodeId is provided, fall back to the current behavior
const bundledNodes = nodes.filter((node) => {
if (!node.data._isBundled) return false
if (node.type === CUSTOM_NOTE_NODE) return true
const { metaData } = nodesMetaDataMap![node.data.type as BlockEnum]
if (metaData.isSingleton) return false
return !node.data.isInIteration && !node.data.isInLoop
@ -1457,6 +1458,7 @@ export const useNodesInteractions = () => {
const selectedNode = nodes.find((node) => {
if (!node.data.selected) return false
if (node.type === CUSTOM_NOTE_NODE) return true
const { metaData } = nodesMetaDataMap![node.data.type as BlockEnum]
return !metaData.isSingleton
})
@ -1495,7 +1497,7 @@ export const useNodesInteractions = () => {
= generateNewNode({
type: nodeToPaste.type,
data: {
...nodesMetaDataMap![nodeType].defaultValue,
...(nodeToPaste.type !== CUSTOM_NOTE_NODE && nodesMetaDataMap![nodeType].defaultValue),
...nodeToPaste.data,
selected: false,
_isBundled: false,

View File

@ -1,6 +1,5 @@
import {
memo,
useCallback,
useRef,
} from 'react'
import { useTranslation } from 'react-i18next'
@ -51,10 +50,6 @@ const NoteNode = ({
} = useNodesInteractions()
const { handleNodeDataUpdateWithSyncDraft } = useNodeDataUpdate()
const handleDeleteNode = useCallback(() => {
handleNodeDelete(id)
}, [id, handleNodeDelete])
useClickAway(() => {
handleNodeDataUpdateWithSyncDraft({ id, data: { selected: false } })
}, ref)
@ -102,9 +97,9 @@ const NoteNode = ({
<NoteEditorToolbar
theme={theme}
onThemeChange={handleThemeChange}
onCopy={handleNodesCopy}
onDuplicate={handleNodesDuplicate}
onDelete={handleDeleteNode}
onCopy={() => handleNodesCopy(id)}
onDuplicate={() => handleNodesDuplicate(id)}
onDelete={() => handleNodeDelete(id)}
showAuthor={data.showAuthor}
onShowAuthorChange={handleShowAuthorChange}
/>