Files
InvokeAI/invokeai/frontend/web/src/features/nodes/hooks/useNodeLabel.ts
2024-05-21 10:06:09 +10:00

19 lines
550 B
TypeScript

import { createSelector } from '@reduxjs/toolkit';
import { useAppSelector } from 'app/store/storeHooks';
import { selectNodesSlice } from 'features/nodes/store/nodesSlice';
import { useMemo } from 'react';
export const useNodeLabel = (nodeId: string) => {
const selector = useMemo(
() =>
createSelector(selectNodesSlice, (nodesSlice) => {
const node = nodesSlice.nodes.find((node) => node.id === nodeId);
return node?.data.label;
}),
[nodeId]
);
const label = useAppSelector(selector);
return label;
};