Files
JiboSDK/lib/behavior-editor/arguments/rule-view.js
2026-03-22 03:21:45 +02:00

1 line
1.7 KiB
JavaScript

"use strict";var e=function(e){return e&&e.__esModule?e["default"]:e},t=e(require("react")),o=e(require("../../atom-react/mixins/modal-mixin")),r=e(require("path")),n=e(require("fs")),s=e(require("../modals/choose-rule-modal")),i=t.createClass({displayName:"RuleView",mixins:[o],getInitialState:function(){return{key:0,content:this.props.content}},render:function(){var e={};try{n.statSync(this.getUri())}catch(o){e={disabled:!0}}var r=e.disabled?t.createElement("div",{className:"error-messages"},"No rule file by that name"):null;return t.createElement("div",{style:{width:"100%"}},t.createElement("div",{className:"block"},t.createElement("div",{className:"fileBlock"},t.createElement("button",{style:{"float":"right"},className:"btn",onClick:this.onChoose},"..."),t.createElement("atom-text-editor",{ref:"editor",mini:!0},this.props.content)),r,t.createElement("br",null)))},getRoot:function(){return r.resolve(this.props.projectRoot,"rules")},getUri:function(){var e=this.state.content.split("://");if(1===e.length){var t=r.resolve(this.props.projectRoot,"rules",this.state.content);return t}if(2===e.length){var t=r.resolve(this.props.projectRoot,"node_modules",e[0],"rules",e[1]);return t}},onChoose:function(){var e=this;this.createModal(t.createElement(s,{root:this.getRoot(),uri:this.getUri(),onChoose:function(o){var r=t.findDOMNode(e.refs.editor);r.getModel().setText(o),e.state.content=o,e.setState(e.state)},onClose:function(){e.destroyModal()}}))},componentDidMount:function(){var e=this,o=t.findDOMNode(this.refs.editor),r=o.getModel();r.onDidChange(function(){e.state.content=r.getText(),e.props.onChange(r.getText()),e.setState(e.state)})}});module.exports=function(e,o,r,n){return t.createElement(i,{key:o,content:e,onChange:r,projectRoot:n})};