import { PolylineEdge, PolylineEdgeModel } from "@logicflow/core";
import { NodeStateEnum } from "../types/enums";

class TransitionModel extends PolylineEdgeModel {
  getEdgeStyle() {
    const style = super.getEdgeStyle();
    const state = this.properties.state;
    if(state === NodeStateEnum.history) {
      style.stroke = '#909399';
      style.strokeDasharray = '5,5';
    } else if(state === NodeStateEnum.active) {
      style.stroke = '#409eff';
      style.strokeWidth = 2;
    } else if(state === NodeStateEnum.error) {
      style.stroke = '#f56c6c';
      style.strokeWidth = 2;
    } else {
      style.stroke = '#909399';
      style.strokeWidth = 1.5;
    }
    return style;
  }
}

class TransitionView extends PolylineEdge {

}

export default {
  type: "transition",
  view: TransitionView,
  model: TransitionModel,
};
