diff --git a/src/components/views/dialogs/DevtoolsDialog.js b/src/components/views/dialogs/DevtoolsDialog.js new file mode 100644 index 0000000000..c4248fa92b --- /dev/null +++ b/src/components/views/dialogs/DevtoolsDialog.js @@ -0,0 +1,206 @@ +/* +Copyright 2017 OpenMarket Ltd + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +import React from 'react'; +import sdk from 'matrix-react-sdk'; +import Modal from 'matrix-react-sdk/lib/Modal'; +import MatrixClientPeg from 'matrix-react-sdk/lib/MatrixClientPeg'; + +class SendCustomEvent extends React.Component { + static propTypes = { + roomId: React.PropTypes.string.isRequired, + onFinished: React.PropTypes.func.isRequired, + }; + + constructor(props, context) { + super(props, context); + this._send = this._send.bind(this); + this.onCancel = this.onCancel.bind(this); + } + + async _send() { + try { + const content = JSON.parse(this.refs.evContent.value); + await MatrixClientPeg.get().sendEvent(this.refs.roomId.value, this.refs.eventType.value, content); + this.props.onFinished(true); + } catch (e) { + this.props.onFinished(false); + const ErrorDialog = sdk.getComponent('dialogs.ErrorDialog'); + Modal.createDialog(ErrorDialog, { + title: 'Failed to send custom event', + description: e.toString(), + }); + } + } + + onCancel() { + this.props.onFinished(false); + } + + render() { + return
+
+
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+