Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 20x 20x 20x 9x 9x 11x 11x 11x 1x 1x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x | import type { DiContainerForInjection } from "@ogre-tools/injectable";
import { computedInjectManyInjectable } from "@ogre-tools/injectable-extension-for-mobx";
import { DiContextProvider } from "@ogre-tools/injectable-react";
import { observer } from "mobx-react";
import React from "react";
import {
ReactApplicationHigherOrderComponent,
reactApplicationHigherOrderComponentInjectionToken,
} from "./react-application-higher-order-component-injection-token";
import { ReactApplicationContent } from "./react-application-content";
interface ReactApplicationProps {
di: DiContainerForInjection;
}
const render = (components: ReactApplicationHigherOrderComponent[]) => {
const [Component, ...rest] = components;
if (!Component) {
return null;
}
return <Component>{render(rest)}</Component>;
};
export const ReactApplication = observer(({ di }: ReactApplicationProps) => {
const computedInjectMany = di.inject(computedInjectManyInjectable);
const higherOrderComponents = computedInjectMany(
reactApplicationHigherOrderComponentInjectionToken,
);
const Components = [...higherOrderComponents.get(), ReactApplicationContent];
return <DiContextProvider value={{ di }}>{render(Components)}</DiContextProvider>;
});
|