InvokeAI/invokeai/frontend/web/src/features/nodes/components
psychedelicious f9b8b5cff2 fix(ui): improve node rendering performance
Previously the editor was using prop-drilling node data and templates to get values deep into nodes. This ended up causing very noticeable performance degradation. For example, any text entry fields were super laggy.

Refactor the whole thing to use memoized selectors via hooks. The hooks are mostly very narrow, returning only the data needed.

Data objects are never passed down, only node id and field name - sometimes the field kind ('input' or 'output').

The end result is a *much* smoother node editor with very minimal rerenders.
2023-08-16 23:04:36 +10:00
..
editorPanels feat: node editor 2023-08-16 09:54:38 +10:00
fields fix(ui): improve node rendering performance 2023-08-16 23:04:36 +10:00
Invocation fix(ui): improve node rendering performance 2023-08-16 23:04:36 +10:00
nodes fix(ui): improve node rendering performance 2023-08-16 23:04:36 +10:00
panel fix(ui): improve node rendering performance 2023-08-16 23:04:36 +10:00
search feat: node editor 2023-08-16 09:54:38 +10:00
ui feat: node editor 2023-08-16 09:54:38 +10:00
AddNodeMenu.tsx feat: node editor 2023-08-16 09:54:38 +10:00
CustomConnectionLine.tsx feat: node editor 2023-08-16 09:54:38 +10:00
CustomEdges.tsx feat: node editor 2023-08-16 09:54:38 +10:00
CustomNodes.tsx feat(ui): hide node footer if there is nothing to display 2023-08-16 09:54:38 +10:00
FieldTypeLegend.tsx feat: node editor 2023-08-16 09:54:38 +10:00
Flow.tsx fix(ui): fix context menu on workflow editor 2023-08-16 23:04:36 +10:00
NodeEditor.tsx fix(ui): disable awkward resize animation for <Flow /> 2023-08-16 23:04:36 +10:00
NodeEditorSettings.tsx feat: node editor 2023-08-16 09:54:38 +10:00
NodeGraphOverlay.tsx feat: node editor 2023-08-16 09:54:38 +10:00
NodeOpacitySlider.tsx feat: node editor 2023-08-16 09:54:38 +10:00
ViewportControls.tsx feat: node editor 2023-08-16 09:54:38 +10:00