import './style/toast.less';
import CenterModal from './CenterModal';
import { showModal, closeModal, closeModalAll } from './helper';
import { Component } from 'inferno';
import { uuidWrapper } from './helper/uuidWrapper';

export class Toast extends Component<any, any> {

  public static defaultProps = {
    text: '处理中...',
  };

  public render() {
    const { text } = this.props;
    const cn = 'toast-modal';
    return (
      <CenterModal
        {...this.props}
        className={cn}
      >
        <div className="toast-layout">
          <div className="tl-text">{text}</div>
        </div>
      </CenterModal>
    );
  }

  public static withUUIDWrapper = uuidWrapper(Toast);

  public static open(props, instanceFlag?) {
    const Instance = instanceFlag ? uuidWrapper(Toast) : Toast.withUUIDWrapper;
    const defaultProps = {} as any;
    if (props.closeByMask) {
      defaultProps.onMask = () => {
        closeModal(Instance);
      };
    }
    return showModal(Instance, { ...defaultProps, ...props });
  }

  public static close(wrapper?) {
    if (wrapper && wrapper.instance) {
      return closeModal(wrapper.instance);
    }
    return closeModalAll();
  }
}
