import React, { PropsWithChildren, useRef } from 'react'; import hoistNonReactStatics from 'hoist-non-react-statics'; import { ObjectGraph } from '../../graph/ObjectGraph'; import PropsInjector from './PropsInjector'; import useGraph from './useGraph'; import Sentinel from './Sentinel'; import { Constructable } from '../../types'; import { genericMemo, isMemoizedComponent } from '../../utils/React'; import { GraphContext } from './graphContext'; import { useInjectionToken } from './useInjectionToken'; export default class ComponentInjector { inject
( Target: React.FunctionComponent
,
keyOrGraph: string | Constructable (
InjectionCandidate: React.FunctionComponent ,
keyOrGraph: string | Constructable (keyOrGraph, Target, passedProps, injectionToken, containerRef);
const proxiedProps = new PropsInjector(graph).inject(passedProps);
return (
) as React.ReactNode}