types.ts 448 B

1234567891011121314
  1. import type { ComponentType, ReactNode } from "react";
  2. import type { UIElement } from "@json-render/core";
  3. export interface ComponentRenderProps<P = Record<string, unknown>> {
  4. element: UIElement<string, P>;
  5. children?: ReactNode;
  6. emit: (event: string) => void;
  7. }
  8. export type ComponentRenderer<P = Record<string, unknown>> = ComponentType<
  9. ComponentRenderProps<P>
  10. >;
  11. export type ComponentRegistry = Record<string, ComponentRenderer<any>>;