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

1 line
3.3 KiB
JavaScript

"use strict";var e=function(e){return e&&e.__esModule?e["default"]:e},t=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var o=arguments[t];for(var n in o)Object.prototype.hasOwnProperty.call(o,n)&&(e[n]=o[n])}return e},o=e(require("react")),n=e(require("../../atom-react/mixins/modal-mixin")),r=e(require("path")),i=e(require("fs")),s=e(require("mkdirp")),a=e(require("../modals/choose-subtree-modal")),BehaviorEditor=e(require("../behavior-editor"));o.createClass({getInitialState:function(){return{uri:""}},render:function(){return o.createElement("div",null,o.createElement("atom-text-editor",{ref:"editor",mini:!0}))},componentDidMount:function(){var e=this,t=o.findDOMNode(this.refs.editor),n=atom.commands.add(t,{"core:cancel":function(){e.props.onClose(),n.dispose()},"core:confirm":function(){e.props.onConfirm(e.state.uri),n.dispose()}}),r=t.getModel();this.disposable=r.onDidChange(function(){e.state.uri=r.getText()})},componentWillUnmount:function(){this.disposable&&this.disposable.dispose()}});var c=o.createClass({displayName:"SubtreeView",mixins:[n],getInitialState:function(){return{key:0,content:this.props.content}},render:function(){var e={};try{i.statSync(this.getUri())}catch(n){try{i.statSync(this.getUri()+".bt")}catch(n){e={disabled:!0}}}var r=e.disabled?o.createElement("div",{className:"error-messages"},"No tree by that name"):null;return e.disabled||(e=this.state.content.split("://").length>1?{disabled:!0}:{}),o.createElement("div",{style:{width:"100%"}},o.createElement("div",{className:"block"},o.createElement("div",{className:"fileBlock"},o.createElement("button",{style:{"float":"right"},className:"btn",onClick:this.onChoose},"..."),o.createElement("atom-text-editor",{ref:"editor",mini:!0},this.props.content)),r,o.createElement("div",{className:"btn-group",style:{marginTop:5}},o.createElement("button",t({},e,{className:"btn",onClick:this.onOpen}),"Edit"),o.createElement("button",{className:"btn",onClick:this.onNew},"New"))))},createNewTree:function(e,t){var o=this.props.model.createNewElement(this.props.model.schema[t]),n=r.resolve(this.props.projectRoot,"behaviors",e),a={};a[o.id]=o,s.sync(r.dirname(n)),i.writeFileSync(n,JSON.stringify(a,null," "),"utf8"),atom.workspace.open(n)},onNew:function(){var e=this;BehaviorEditor.createNewFile(function(t){var n=o.findDOMNode(e.refs.editor);n.getModel().setText(t)})},getRoot:function(){var e=r.resolve(this.props.projectRoot,"behaviors");return e},getUri:function(){var e=this.state.content.split("://"),t=void 0;return 1===e.length?t=r.resolve(this.props.projectRoot,"behaviors",this.state.content):2===e.length&&(t=r.resolve(this.props.projectRoot,"node_modules",e[0],"behaviors",e[1])),""===r.parse(t).ext&&(t+=".bt"),t},onOpen:function(){atom.workspace.open(this.getUri())},onChoose:function(){var e=this;this.createModal(o.createElement(a,{root:this.getRoot(),uri:this.getUri(),onChoose:function(t){var n=o.findDOMNode(e.refs.editor);n.getModel().setText(t),e.state.content=t,e.setState(e.state)},onClose:function(){e.destroyModal()}}))},componentDidMount:function(){var e=this,t=o.findDOMNode(this.refs.editor),n=t.getModel();n.onDidChange(function(){e.state.content=n.getText(),e.props.onChange(n.getText()),e.setState(e.state)})}});module.exports=function(e,t,n,r,i){return o.createElement(c,{key:t,content:e,onChange:n,projectRoot:r,model:i})};