import { ReactElement, ReactNode } from 'react';
// Import directly, not via the ../../state/EntityPage barrel: going through the
// barrel makes this static assignment depend on module init order, which breaks
// when an unrelated top-of-barrel export loads state/EntityPage first (the static
// ends up undefined). See useEntityPageChild.
import { useEntityPageContent } from '../../state/EntityPage/useEntityPageContent';

export interface EntityPageContentProps {
  /**
   * <EntityPage.MainContent> and, if needed, <EntityPage.AdditionalContent> elements
   */
  children: ReactNode;
}

export type EntityPageContentElement = ReactElement<
  EntityPageContentProps,
  typeof EntityPageContent
>;

export function EntityPageContent(_props: EntityPageContentProps) {
  return null;
}

EntityPageContent.useEntityPageContent = useEntityPageContent;
EntityPageContent.displayName = 'EntityPageContent';
