import * as React from "react";

interface LoginContainerProps {
  /**
   * Component to use - will override default layouts if provided
   */
  children?: JSX.Element;

  /**
   * Takes a component as an input that shows an ad (usually <Announcement />)
   */
  adComponent?: JSX.Element;

  /**
   * Container to use for the login screen (e.g. "Name/Email/Continue/forgot"
   */
  authComponent?: JSX.Element;

  /**
   * Handler that is called when the "handleVerification" render prop from the authComponent is triggered
   */
  onVerify: (email: string, password: string) => boolean;

  /**
   * Handler that is called when the "handleAdClick" render prop from the adComponent component is triggered
   */
  onAdClick?: (id: string, url: string) => void;

  /**
   * Handler that is called when the handleForgotPassword render prop from the authComponent is triggered
   */
  onForgotPassword?: () => void;

  /**
   * Handler that is called when the handleValidation render prop is triggered from the authComponent prop
   */
  onValidate?: (email: string, password: string) => boolean;
}

/**
 * A page using the <AuthLayout /> to show login features Uses AuthLayout to show an ad from the db & login features.  Also triggers a verification script on login Shows an ad on the left and auth stuff on the right Can show an ad and auth block on right
 */
const LoginContainer: React.FC<LoginContainerProps> = ({ children }) => {
  return <div>{children}</div>;
};

export default LoginContainer;
