performance

This commit is contained in:
2026-03-08 20:53:34 +01:00
parent 0baad46ff0
commit 53106cd051
7 changed files with 154 additions and 14 deletions

View File

@@ -1,3 +1,21 @@
/**
* Use as second argument to React.memo() for node components.
* Skips re-render when only position (or other unrelated props) changed,
* so dragging one node doesn't force other nodes to re-render.
*/
export function nodePropsAreEqual<P extends { id?: string; data?: any; width?: number; height?: number; selected?: boolean }>(
prev: P,
next: P
): boolean {
return (
prev.id === next.id &&
prev.data === next.data &&
prev.width === next.width &&
prev.height === next.height &&
prev.selected === next.selected
)
}
export const PREFIX_BY_TYPE: Record<string, string> = {
config: 'cfg_',
render: 'rnd_',