Загрузка данных


import { ReactElement } from 'react';

import { Modal, ModalProps } from '@components/Modal';
import { ReactRenderer } from '@core/ReactRenderer';

export class ModalRenderer extends ReactRenderer {
  constructor(container: HTMLElement) {
    super(container);
  }

  public override renderComponent(component: ReactElement, props?: ModalProps): void {
    if (!props) {
      throw new Error('[Modal]: modal props are not defined');
    }

    const handleHide = () => {
      props.onHide?.();
      this.clear();
    };

    const handleSave = () => {
      props.onSave?.();
      this.clear();
    };

    super.renderComponent(
      <Modal
        {...props}
        onHide={handleHide}
        onSave={handleSave}
        appendTo={this.container as HTMLElement}
      >
        {component}
      </Modal>,
    );
  }
}