Перейти к содержимому

React-адаптер

См. англоязычную версию — там полное API адаптера @xenolithengine/graph-react: <XenolithGraph>, useEditor, useNodes / useEdges / useSelection / useViewport / useGraphJSON / useUndoRedo / useEditorEvent, in-editor компоненты (<XenolithPanel>, <XenolithButton>, <XenolithControls>, <XenolithMiniMap>), reactWidget(Component) для кастомных виджетов на React, и события через on* props.

Controlled-состояние (на коммите)

Мигранты с React Flow: useNodesState() даёт controlled-тройку — nodes, edges, applyChanges, setNodes — свернутую из массивов graph:changed на коммите (ADR 0006). Одно намеренное отличие от React Flow: позиции приходят, когда перетаскивание КОММИТИТСЯ, никогда покадрово — дерево неподвижно, пока drag владеет WebGL-рендерер. setNodes(next) применяет диф одним шагом undo; эхи идемпотентны. Для Redux/Zustand берите чистый редьюсер reduceGraphChanges.