fix: add memo hook to handle filter to prevent excessive renders (icons loading error) (#7317)

♻️ (GenericNode/index.tsx): refactor selectedNodes to selectedNodesCount for better readability and performance optimization
This commit is contained in:
Cristhian Zanforlin Lousa 2025-03-27 18:19:25 -03:00 • committed by GitHub
commit d0e526d9f0
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -259,12 +259,12 @@ function GenericNode({
return data.node?.description && data.node?.description !== ""; return data.node?.description && data.node?.description !== "";
}, [data.node?.description]); }, [data.node?.description]);
const selectedNodes = useFlowStore((state) => const selectedNodesCount = useMemo(() => {
state.nodes.filter((node) => node.selected), return useFlowStore.getState().nodes.filter((node) => node.selected).length;
); }, [selected]);
const memoizedNodeToolbarComponent = useMemo(() => { const memoizedNodeToolbarComponent = useMemo(() => {
return selected && selectedNodes.length === 1 ? ( return selected && selectedNodesCount === 1 ? (
<> <>
<div <div
className={cn( className={cn(
@ -345,7 +345,7 @@ function GenericNode({
editNameDescription, editNameDescription,
hasChangedNodeDescription, hasChangedNodeDescription,
toggleEditNameDescription, toggleEditNameDescription,
selectedNodes, selectedNodesCount,
]); ]);
useEffect(() => { useEffect(() => {