Files
JiboSDK/lib/animation-editor/views/properties/audio-input.js
2026-03-22 03:21:45 +02:00

1 line
2.1 KiB
JavaScript

"use strict";var e=function(e){return e&&e.__esModule?e["default"]:e},t=e(require("react")),o=e(require("fs")),i=e(require("path")),n=e(require("normalize-path")),r=e(require("../../../common/modals/choose-audio-modal")),s=e(require("../../../atom-react/mixins/modal-mixin")),a=t.createClass({displayName:"AudioInput",mixins:[s],getInitialState:function(){var e={file:this.props.content.file};return e},componentWillReceiveProps:function(e){e.content.file!==this.state.file&&(this.setState({file:e.content.file}),this.refs.audioEditor.getDOMNode().getModel().setText(e.content.file))},getRoot:function(){return i.resolve(this.props.projectRoot,"audio")},getUri:function(){var e=this.state.file.split("://");if(1===e.length){var t=i.resolve(this.props.projectRoot,"audio",this.state.file);return t}if(2===e.length){var t=i.resolve(this.props.projectRoot,"node_modules",e[0],"audio",e[1]);return t}},render:function(){var e={};try{o.statSync(this.getUri())}catch(i){e={disabled:!0}}var n=e.disabled?t.createElement("div",{className:"error-messages"},"No audio 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:"audioEditor",mini:!0},this.state.file)),n,t.createElement("br",null)))},onChoose:function(){var e=this;this.createModal(t.createElement(r,{root:this.getRoot(),uri:this.getUri(),onChoose:function(o){o=n(o);var i=t.findDOMNode(e.refs.audioEditor);i.getModel().setText(o),e.setState({file:o}),e.props.onChange({file:o})},onClose:function(){e.destroyModal()}}))},componentDidMount:function(){var e=this,o=t.findDOMNode(this.refs.audioEditor),i=o.getModel();i.onDidChange(function(){e.setState({file:i.getText()})}),this.disposable=atom.commands.add(o,"core:confirm",function(){e.props.onChange({file:e.state.file})})},componentWillUnmount:function(){this.disposable&&this.disposable.dispose()}});module.exports=function(e,o,i){return t.createElement(a,{onChange:e,content:o,projectRoot:i})};