import { AppLayoutService } from '../../../app-service';
import { WfStepTraceViewBase } from '../../../view';

/**
 * 应用流程跟踪视图基类
 *
 * @export
 * @class AppWfStepTraceViewBase
 * @extends {WfStepTraceViewBase}
 */
export class AppWfStepTraceViewBase extends WfStepTraceViewBase {
  /**
   * 渲染视图主体内容区
   *
   * @memberof AppWfStepTraceViewBase
   */
  renderMainContent() {
    return this.$createElement('extend-action-timeline', {
      props: {
        context: this.context,
        viewparams: this.viewparams,
        appEntityCodeName: this.staticProps?.appDeCodeName,
      },
    });
  }

  /**
   * 应用流程跟踪视图渲染
   *
   * @memberof AppWfStepTraceViewBase
   */
  render(h: any) {
    if (!this.viewIsLoaded) {
      return null;
    }
    const targetViewLayoutComponent: any = AppLayoutService.getLayoutComponent(`${this.viewInstance.viewType}-${this.viewInstance.viewStyle}`);
    return h(
      targetViewLayoutComponent,
      {
        props: { viewInstance: this.viewInstance, model: this.model, modelService: this.modelService, viewparams: this.viewparams, context: this.context },
      },
      [this.renderMainContent()],
    );
  }
}
