soapbox/src/components/hoc/with-hoc.tsx

11 wiersze
389 B
TypeScript
Czysty Zwykły widok Historia

2023-04-17 18:56:31 +00:00
type HOC<P, R> = (Component: React.ComponentType<P>) => React.ComponentType<R>
type AsyncComponent<P> = () => Promise<{ default: React.ComponentType<P> }>
const withHoc = <P, R>(asyncComponent: AsyncComponent<P>, hoc: HOC<P, R>) => {
return async () => {
const { default: component } = await asyncComponent();
return { default: hoc(component) };
};
};
export default withHoc;