From 183ea9d8c0673d1c58c562a260ef8a8606ac656f Mon Sep 17 00:00:00 2001 From: Thomas Nordquist Date: Sun, 7 Jul 2019 12:44:34 +0200 Subject: [PATCH] Allow publishing topics with ctrl+return --- .../components/Sidebar/Publish/Publish.tsx | 28 +++++++++++++------ 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/app/src/components/Sidebar/Publish/Publish.tsx b/app/src/components/Sidebar/Publish/Publish.tsx index 87b594c..8d8cc86 100644 --- a/app/src/components/Sidebar/Publish/Publish.tsx +++ b/app/src/components/Sidebar/Publish/Publish.tsx @@ -1,15 +1,17 @@ -import * as q from '../../../../../backend/src/Model' import * as React from 'react' import ClearAdornment from '../../helper/ClearAdornment' +import Editor from './Editor' import FormatAlignLeft from '@material-ui/icons/FormatAlignLeft' import History from '../HistoryDrawer' import Message from './Model/Message' import Navigation from '@material-ui/icons/Navigation' +import QosSelect from './QosSelect' import { AppState } from '../../../reducers' import { bindActionCreators } from 'redux' import { connect } from 'react-redux' +import { EditorModeSelect } from './EditorModeSelect' import { globalActions, publishActions } from '../../../actions' - +import { KeyCodes } from '../../../utils/KeyCodes' import { Button, FormControlLabel, @@ -22,10 +24,6 @@ import { Theme, withTheme, } from '@material-ui/core' -import { EditorModeSelect } from './EditorModeSelect' -import QosSelect from './QosSelect' -import Editor from './Editor' - const sha1 = require('sha1') interface Props { @@ -61,8 +59,12 @@ class Publish extends React.Component { this.props.actions.setEditorMode(value) } - private publish = (e: React.MouseEvent) => { + private handleClickPublish = (e: React.MouseEvent) => { e.stopPropagation() + this.publish() + } + + private publish() { if (!this.props.connectionId) { return } @@ -118,7 +120,7 @@ class Publish extends React.Component { private publishButton() { return ( - ) @@ -206,9 +208,17 @@ class Publish extends React.Component { this.props.actions.setPayload(message.payload) } + private handleSubmit = (e: React.KeyboardEvent) => { + if (e.keyCode === KeyCodes.enter && (e.metaKey || e.ctrlKey)) { + e.preventDefault() + e.stopPropagation() + this.publish() + } + } + public render() { return ( -
+
{this.topic()}
{this.editorMode()}