in packages/graph-explorer/src/core/StateProvider/schema.ts [205:236]
export function useUpdateSchemaFromEntities() {
return useAtomCallback(
useCallback((get, set, entities: { vertices: Vertex[]; edges: Edge[] }) => {
const activeSchema = get(activeSchemaSelector);
if (entities.vertices.length === 0 && entities.edges.length === 0) {
return;
}
if (!activeSchema) {
return;
}
if (!shouldUpdateSchemaFromEntities(entities, activeSchema)) {
logger.debug("Schema is already up to date with the given entities");
return;
}
startTransition(() => {
logger.debug("Updating schema from entities");
set(activeSchemaSelector, prev => {
if (!prev) {
return prev;
}
return updateSchemaFromEntities(
{
nodes: toNodeMap(entities.vertices),
edges: toEdgeMap(entities.edges),
},
prev
);
});
});
}, [])
);
}