export interface ShowProupParam {
  refs: any;
  ref_name: string;
  delay: number;
  count: number;
  max_count: number;
}

export class TableAddRowHelper {
  private timer_handler: any = null;

  showProup(param: ShowProupParam) {
    if (this.timer_handler) {
      clearTimeout(this.timer_handler);
      this.timer_handler = null;
    }
    this.show_proup(param);
  }

  private show_proup = (param: ShowProupParam) => {
    this.timer_handler = setTimeout(() => {
      param.count += param.delay;
      if (param.count > param.max_count) {
        console.log("errrrrrrrrr");
        return;
      }
      if (param.refs) {
        const dom = param.refs[param.ref_name];
        if (dom) {
          dom.show();
        } else {
          this.show_proup(param);
        }
      }
    }, param.delay);
  };
}
