UNPKG

@dcl/react-ecs

Version:
87 lines (86 loc) 2.24 kB
import { PBUiBackground, PBUiText, PBUiTransform, PBUiInput, PBUiDropdown } from '@dcl/ecs'; import { Callback, Key } from './components'; /** * @public */ export interface EcsElements { entity: Partial<EntityComponents> & { children?: ReactEcs.JSX.ReactNode; key?: Key; }; } /** * @public */ export type EntityComponents = { uiTransform: PBUiTransform; uiText: PBUiText; uiBackground: PBUiBackground; uiInput: PBUiInput; uiDropdown: PBUiDropdown; onMouseDown: Callback; onMouseUp: Callback; onMouseEnter: Callback; onMouseLeave: Callback; }; /** * @hidden */ export declare namespace JSX { interface Element extends ReactElement<any, any> { } interface IntrinsicElements extends EcsElements { } interface Component { } } /** * @public */ export type JSXElementConstructor<P> = (props: P) => ReactElement<any, any> | null; /** * @public */ export interface ReactElement<P = any, T extends string | JSXElementConstructor<any> = string | JSXElementConstructor<any>> { type: T; props: P; key: Key | null; } /** * @public */ export declare namespace ReactEcs { export namespace JSX { /** * @public */ type ReactNode = Element | ReactElement | string | number | boolean | null | undefined | ReactNode[]; /** * @public */ interface Element extends ReactElement<any, any> { } /** * @public * HTML tag elements */ interface IntrinsicElements extends EcsElements { } /** * @public * Component empty interface */ interface Component { } } export const createElement: any; type SetStateAction<T> = T | ((prevState: T) => T); type Dispatch<T> = (action: SetStateAction<T>) => void; type StateHook = <T>(initialState: T | (() => T)) => [T, Dispatch<T>]; type DependencyList = ReadonlyArray<any>; type EffectCallback = () => void | (() => void | undefined); type EffectHook = (effect: EffectCallback, deps?: DependencyList) => void; export const useEffect: EffectHook; export const useState: StateHook; export {}; }