miniplex-react
Version:
React glue for Miniplex.
25 lines (24 loc) • 908 B
TypeScript
import { Bucket, World } from "miniplex";
import React, { ForwardedRef, PropsWithRef, ReactElement, ReactNode } from "react";
export type EntityChildren<E> = ReactNode | ((entity: E) => ReactNode);
type CommonProps<E> = {
children?: EntityChildren<E>;
};
export declare const createReactAPI: <E extends {}>(world: World<E>) => {
world: World<E>;
Component: <P extends keyof E>(props: {
name: P;
data?: E[P] | undefined;
children?: ReactNode;
}) => React.ReactElement<any, string | React.JSXElementConstructor<any>> | null;
Entity: <D extends E>(props: CommonProps<D> & {
entity?: D | undefined;
} & {
ref?: React.ForwardedRef<D> | undefined;
}) => ReactElement;
Entities: <D_1 extends E>({ in: source, ...props }: CommonProps<D_1> & {
in: Bucket<D_1> | D_1[];
}) => JSX.Element;
useCurrentEntity: () => E;
};
export {};