mirror of
https://github.com/invoke-ai/InvokeAI
synced 2024-08-30 20:32:17 +00:00
fix(ui): crash when using a notes node
This commit is contained in:
parent
66c9f4708d
commit
1249d4a6e3
@ -1,14 +1,14 @@
|
|||||||
import { createSelector } from '@reduxjs/toolkit';
|
import { createSelector } from '@reduxjs/toolkit';
|
||||||
import { useAppSelector } from 'app/store/storeHooks';
|
import { useAppSelector } from 'app/store/storeHooks';
|
||||||
import { selectNodesSlice } from 'features/nodes/store/nodesSlice';
|
import { selectNodesSlice } from 'features/nodes/store/nodesSlice';
|
||||||
import { selectNodeData } from 'features/nodes/store/selectors';
|
|
||||||
import { useMemo } from 'react';
|
import { useMemo } from 'react';
|
||||||
|
|
||||||
export const useNodeLabel = (nodeId: string) => {
|
export const useNodeLabel = (nodeId: string) => {
|
||||||
const selector = useMemo(
|
const selector = useMemo(
|
||||||
() =>
|
() =>
|
||||||
createSelector(selectNodesSlice, (nodes) => {
|
createSelector(selectNodesSlice, (nodesSlice) => {
|
||||||
return selectNodeData(nodes, nodeId)?.label ?? null;
|
const node = nodesSlice.nodes.find((node) => node.id === nodeId);
|
||||||
|
return node?.data.label;
|
||||||
}),
|
}),
|
||||||
[nodeId]
|
[nodeId]
|
||||||
);
|
);
|
||||||
|
@ -1,8 +1,24 @@
|
|||||||
import { useNodeTemplate } from 'features/nodes/hooks/useNodeTemplate';
|
import { useStore } from '@nanostores/react';
|
||||||
|
import { createSelector } from '@reduxjs/toolkit';
|
||||||
|
import { useAppSelector } from 'app/store/storeHooks';
|
||||||
|
import { $templates, selectNodesSlice } from 'features/nodes/store/nodesSlice';
|
||||||
|
import { isInvocationNode } from 'features/nodes/types/invocation';
|
||||||
import { useMemo } from 'react';
|
import { useMemo } from 'react';
|
||||||
|
|
||||||
export const useNodeTemplateTitle = (nodeId: string): string | null => {
|
export const useNodeTemplateTitle = (nodeId: string): string | null => {
|
||||||
const template = useNodeTemplate(nodeId);
|
const templates = useStore($templates);
|
||||||
const title = useMemo(() => template.title, [template.title]);
|
const selector = useMemo(
|
||||||
|
() =>
|
||||||
|
createSelector(selectNodesSlice, (nodesSlice) => {
|
||||||
|
const node = nodesSlice.nodes.find((node) => node.id === nodeId);
|
||||||
|
if (!isInvocationNode(node)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
const template = templates[node.data.type];
|
||||||
|
return template?.title ?? null;
|
||||||
|
}),
|
||||||
|
[nodeId, templates]
|
||||||
|
);
|
||||||
|
const title = useAppSelector(selector);
|
||||||
return title;
|
return title;
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user