Files
2026-03-22 03:21:45 +02:00

1 line
2.0 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")),n=e(require("path")),i=e(require("fs")),r=e(require("../../common/modals/choose-audio-modal")),s=t.createClass({displayName:"AudioView",mixins:[o],getInitialState:function(){return{key:0,content:this.props.content}},render:function(){var e={};try{i.statSync(this.getUri())}catch(o){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:"editor",mini:!0},this.props.content)),n,t.createElement("audio",{key:this.state.key++,controls:!0,style:{width:"100%",marginTop:5,marginBottom:5}},t.createElement("source",{src:this.getUri(),type:"audio/mpeg"})),t.createElement("br",null)))},getRoot:function(){return n.resolve(this.props.projectRoot,"audio")},getUri:function(){var e=this.state.content.split("://");if(1===e.length){var t=n.resolve(this.props.projectRoot,"audio",this.state.content);return t}if(2===e.length){var t=n.resolve(this.props.projectRoot,"node_modules",e[0],"audio",e[1]);return t}},onChoose:function(){var e=this;this.createModal(t.createElement(r,{root:this.getRoot(),uri:this.getUri(),onChoose:function(o){var n=t.findDOMNode(e.refs.editor);n.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),n=o.getModel();this.disposable=n.onDidChange(function(){e.state.content=n.getText(),e.props.onChange(n.getText()),e.setState(e.state)})},componentWillUnmount:function(){this.disposable&&this.disposable.dispose()}});module.exports=function(e,o,n,i){return t.createElement(s,{key:o,content:e,onChange:n,projectRoot:i})};