mirror of
https://github.com/invoke-ai/InvokeAI.git
synced 2026-04-23 03:00:31 -04:00
make sure notes node exists like we do for invocation nodes
This commit is contained in:
committed by
psychedelicious
parent
b1c9f59c30
commit
abaae39c29
@@ -1,14 +1,16 @@
|
|||||||
import { Box, Flex, Textarea } from '@invoke-ai/ui-library';
|
import { Box, Flex, Textarea } from '@invoke-ai/ui-library';
|
||||||
|
import { createSelector } from '@reduxjs/toolkit';
|
||||||
import type { Node, NodeProps } from '@xyflow/react';
|
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 NodeCollapseButton from 'features/nodes/components/flow/nodes/common/NodeCollapseButton';
|
||||||
import NodeTitle from 'features/nodes/components/flow/nodes/common/NodeTitle';
|
import NodeTitle from 'features/nodes/components/flow/nodes/common/NodeTitle';
|
||||||
import NodeWrapper from 'features/nodes/components/flow/nodes/common/NodeWrapper';
|
import NodeWrapper from 'features/nodes/components/flow/nodes/common/NodeWrapper';
|
||||||
import { notesNodeValueChanged } from 'features/nodes/store/nodesSlice';
|
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 { NO_DRAG_CLASS, NO_PAN_CLASS } from 'features/nodes/types/constants';
|
||||||
import type { NotesNodeData } from 'features/nodes/types/invocation';
|
import type { NotesNodeData } from 'features/nodes/types/invocation';
|
||||||
import type { ChangeEvent } from 'react';
|
import type { ChangeEvent } from 'react';
|
||||||
import { memo, useCallback } from 'react';
|
import { memo, useCallback, useMemo } from 'react';
|
||||||
|
|
||||||
const NotesNode = (props: NodeProps<Node<NotesNodeData>>) => {
|
const NotesNode = (props: NodeProps<Node<NotesNodeData>>) => {
|
||||||
const { id: nodeId, data, selected } = props;
|
const { id: nodeId, data, selected } = props;
|
||||||
@@ -21,6 +23,16 @@ const NotesNode = (props: NodeProps<Node<NotesNodeData>>) => {
|
|||||||
[dispatch, nodeId]
|
[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 (
|
return (
|
||||||
<NodeWrapper nodeId={nodeId} selected={selected}>
|
<NodeWrapper nodeId={nodeId} selected={selected}>
|
||||||
<Flex
|
<Flex
|
||||||
|
|||||||
Reference in New Issue
Block a user