import React from 'react';
import { createRoot } from 'react-dom/client';
import InfoDialog from '../InfoDialog';
import I18nProvider from 'B/I18nProvider';

type Options = {
  title?: React.ReactNode;
  text?: React.ReactNode;
};

export function openInfoDialog(options: Options = {}): Promise<void> {
  return new Promise((resolve) => {
    const container = document.createElement('div');
    document.body.appendChild(container);

    const root = createRoot(container);

    const cleanup = () => {
      root.unmount();
      container.remove();
    };

    const handleClose = () => {
      cleanup();
      resolve();
    };

    root.render(
      <I18nProvider>
        <InfoDialog
          open={true}
          title={options.title ?? ''}
          text={options.text ?? ''}
          handleClose={handleClose}
        />
      </I18nProvider>
    );
  });
}
