@gravity-ui/graph
Version:
Modern graph editor component
29 lines (28 loc) • 1.18 kB
TypeScript
import React from "react";
import type { Layer, LayerPublicProps } from "../services/Layer";
/**
* Extracts layer instance type from constructor
*/
type LayerInstanceForConstructor<TLayer extends Constructor<Layer>> = TLayer extends Constructor<infer LayerInstance> ? LayerInstance : never;
/**
* Props for GraphLayer component
*/
export interface GraphLayerProps<TLayer extends Constructor<Layer> = Constructor<Layer>> {
/**
* Layer constructor class
*/
layer: TLayer;
/**
* Props to pass to layer constructor
*/
props?: LayerPublicProps<TLayer>;
/**
* Ref to access layer instance
*/
ref?: React.Ref<LayerInstanceForConstructor<TLayer>>;
}
/**
* GraphLayer component provides declarative way to add existing Layer classes to the graph
*/
export declare const GraphLayer: React.ForwardRefExoticComponent<Omit<GraphLayerProps<Constructor<Layer<import("../services/Layer").LayerProps, import("../services/Layer").LayerContext, import("..").TComponentState>>>, "ref"> & React.RefAttributes<Layer<import("../services/Layer").LayerProps, import("../services/Layer").LayerContext, import("..").TComponentState>>>;
export {};