move implementation to MessageComposer to it applies to any future composers
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
This commit is contained in:
parent
daae3bd1ec
commit
b6fd771b9a
3 changed files with 11 additions and 19 deletions
|
@ -43,6 +43,7 @@ export default class MessageComposer extends React.Component {
|
||||||
this.onToggleMarkdownClicked = this.onToggleMarkdownClicked.bind(this);
|
this.onToggleMarkdownClicked = this.onToggleMarkdownClicked.bind(this);
|
||||||
this.onInputStateChanged = this.onInputStateChanged.bind(this);
|
this.onInputStateChanged = this.onInputStateChanged.bind(this);
|
||||||
this.onEvent = this.onEvent.bind(this);
|
this.onEvent = this.onEvent.bind(this);
|
||||||
|
this.onPageUnload = this.onPageUnload.bind(this);
|
||||||
|
|
||||||
this.state = {
|
this.state = {
|
||||||
autocompleteQuery: '',
|
autocompleteQuery: '',
|
||||||
|
@ -64,12 +65,22 @@ export default class MessageComposer extends React.Component {
|
||||||
// marked as encrypted.
|
// marked as encrypted.
|
||||||
// XXX: fragile as all hell - fixme somehow, perhaps with a dedicated Room.encryption event or something.
|
// XXX: fragile as all hell - fixme somehow, perhaps with a dedicated Room.encryption event or something.
|
||||||
MatrixClientPeg.get().on("event", this.onEvent);
|
MatrixClientPeg.get().on("event", this.onEvent);
|
||||||
|
|
||||||
|
window.addEventListener('beforeunload', this.onPageUnload);
|
||||||
}
|
}
|
||||||
|
|
||||||
componentWillUnmount() {
|
componentWillUnmount() {
|
||||||
if (MatrixClientPeg.get()) {
|
if (MatrixClientPeg.get()) {
|
||||||
MatrixClientPeg.get().removeListener("event", this.onEvent);
|
MatrixClientPeg.get().removeListener("event", this.onEvent);
|
||||||
}
|
}
|
||||||
|
window.removeEventListener('beforeunload', this.onPageUnload);
|
||||||
|
}
|
||||||
|
|
||||||
|
onPageUnload(event) {
|
||||||
|
if (this.messageComposerInput && this.messageComposerInput.isTyping) {
|
||||||
|
return event.returnValue =
|
||||||
|
'You seem to be typing a message, are you sure you want to quit?';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
onEvent(event) {
|
onEvent(event) {
|
||||||
|
|
|
@ -93,7 +93,6 @@ export default class MessageComposerInput extends React.Component {
|
||||||
this.onEscape = this.onEscape.bind(this);
|
this.onEscape = this.onEscape.bind(this);
|
||||||
this.setDisplayedCompletion = this.setDisplayedCompletion.bind(this);
|
this.setDisplayedCompletion = this.setDisplayedCompletion.bind(this);
|
||||||
this.onMarkdownToggleClicked = this.onMarkdownToggleClicked.bind(this);
|
this.onMarkdownToggleClicked = this.onMarkdownToggleClicked.bind(this);
|
||||||
this.onPageUnload = this.onPageUnload.bind(this);
|
|
||||||
|
|
||||||
const isRichtextEnabled = UserSettingsStore.getSyncedSetting('MessageComposerInput.isRichTextEnabled', false);
|
const isRichtextEnabled = UserSettingsStore.getSyncedSetting('MessageComposerInput.isRichTextEnabled', false);
|
||||||
|
|
||||||
|
@ -234,13 +233,11 @@ export default class MessageComposerInput extends React.Component {
|
||||||
this.refs.editor,
|
this.refs.editor,
|
||||||
this.props.room.roomId
|
this.props.room.roomId
|
||||||
);
|
);
|
||||||
window.addEventListener('beforeunload', this.onPageUnload);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
componentWillUnmount() {
|
componentWillUnmount() {
|
||||||
dis.unregister(this.dispatcherRef);
|
dis.unregister(this.dispatcherRef);
|
||||||
this.sentHistory.saveLastTextEntry();
|
this.sentHistory.saveLastTextEntry();
|
||||||
window.removeEventListener('beforeunload', this.onPageUnload);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
componentWillUpdate(nextProps, nextState) {
|
componentWillUpdate(nextProps, nextState) {
|
||||||
|
@ -252,13 +249,6 @@ export default class MessageComposerInput extends React.Component {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
onPageUnload(event) {
|
|
||||||
if (this.isTyping) {
|
|
||||||
return event.returnValue =
|
|
||||||
'You seem to be typing a message, are you sure you want to quit?';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
onAction(payload) {
|
onAction(payload) {
|
||||||
let editor = this.refs.editor;
|
let editor = this.refs.editor;
|
||||||
let contentState = this.state.editorState.getCurrentContent();
|
let contentState = this.state.editorState.getCurrentContent();
|
||||||
|
|
|
@ -177,20 +177,11 @@ export default React.createClass({
|
||||||
if (this.props.tabComplete) {
|
if (this.props.tabComplete) {
|
||||||
this.props.tabComplete.setTextArea(this.refs.textarea);
|
this.props.tabComplete.setTextArea(this.refs.textarea);
|
||||||
}
|
}
|
||||||
window.addEventListener('beforeunload', this.onPageUnload);
|
|
||||||
},
|
},
|
||||||
|
|
||||||
componentWillUnmount: function() {
|
componentWillUnmount: function() {
|
||||||
dis.unregister(this.dispatcherRef);
|
dis.unregister(this.dispatcherRef);
|
||||||
this.sentHistory.saveLastTextEntry();
|
this.sentHistory.saveLastTextEntry();
|
||||||
window.removeEventListener('beforeunload', this.onPageUnload);
|
|
||||||
},
|
|
||||||
|
|
||||||
onPageUnload(event) {
|
|
||||||
if (this.isTyping) {
|
|
||||||
return event.returnValue =
|
|
||||||
'You seem to be typing a message, are you sure you want to quit?';
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
|
|
||||||
onAction: function(payload) {
|
onAction: function(payload) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue