import { type FC, type ReactNode } from 'react';

import type { AuthGuardProps } from '~/src/components/AuthGuard';

import AuthGuard from '~/src/components/AuthGuard';

export default function <Props>(
  Component: FC<Props>,
  authGuardProps?: Omit<AuthGuardProps, 'render'>
) {
  return function (props: Props & { children?: ReactNode }) {
    return (
      <AuthGuard
        {...authGuardProps}
        render={({ user }) => {
          return <Component {...props} user={user} />;
        }}
      />
    );
  };
}
