hoc.js 526 B

1234567891011121314
  1. import * as React from 'react';
  2. import { useSidecar } from './hook';
  3. // eslint-disable-next-line @typescript-eslint/ban-types
  4. export function sidecar(importer, errorComponent) {
  5. const ErrorCase = () => errorComponent;
  6. return function Sidecar(props) {
  7. const [Car, error] = useSidecar(importer, props.sideCar);
  8. if (error && errorComponent) {
  9. return ErrorCase;
  10. }
  11. // @ts-expect-error type shenanigans
  12. return Car ? React.createElement(Car, { ...props }) : null;
  13. };
  14. }