make sure notes node exists like we do for invocation nodes

This commit is contained in:
Mary Hipp
2025-02-25 14:11:33 -05:00
committed by psychedelicious
parent b1c9f59c30
commit abaae39c29

View File

@@ -1,14 +1,16 @@
import { Box, Flex, Textarea } from '@invoke-ai/ui-library';
import { createSelector } from '@reduxjs/toolkit';
import type { Node, NodeProps } from '@xyflow/react';
import { useAppDispatch } from 'app/store/storeHooks';
import { useAppDispatch, useAppSelector } from 'app/store/storeHooks';
import NodeCollapseButton from 'features/nodes/components/flow/nodes/common/NodeCollapseButton';
import NodeTitle from 'features/nodes/components/flow/nodes/common/NodeTitle';
import NodeWrapper from 'features/nodes/components/flow/nodes/common/NodeWrapper';
import { notesNodeValueChanged } from 'features/nodes/store/nodesSlice';
import { selectNodes } from 'features/nodes/store/selectors';
import { NO_DRAG_CLASS, NO_PAN_CLASS } from 'features/nodes/types/constants';
import type { NotesNodeData } from 'features/nodes/types/invocation';
import type { ChangeEvent } from 'react';
import { memo, useCallback } from 'react';
import { memo, useCallback, useMemo } from 'react';
const NotesNode = (props: NodeProps<Node<NotesNodeData>>) => {
const { id: nodeId, data, selected } = props;
@@ -21,6 +23,16 @@ const NotesNode = (props: NodeProps<Node<NotesNodeData>>) => {
[dispatch, nodeId]
);
const selectNodeExists = useMemo(
() => createSelector(selectNodes, (nodes) => Boolean(nodes.find((n) => n.id === nodeId))),
[nodeId]
);
const nodeExists = useAppSelector(selectNodeExists);
if (!nodeExists) {
return null;
}
return (
<NodeWrapper nodeId={nodeId} selected={selected}>
<Flex