import * as React from "react";
import { Modal, ModalProps } from "react-native";

type Props = {
  children: React.ReactChild;
  ModalContainer?: React.FC<ModalProps> | React.ComponentClass<ModalProps>;
  visible: boolean;
};

export function ModalPresenter(props: Props) {
  const { children, ModalContainer, visible, ...presenterOptions } = props;
  const Presenter = React.useMemo(() => ModalContainer || Modal, []);

  return (
    <Presenter visible={visible} {...presenterOptions}>
      {children}
    </Presenter>
  );
}
