aboutsummaryrefslogtreecommitdiff
path: root/src/client/views
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/views')
-rw-r--r--src/client/views/MainView.tsx11
-rw-r--r--src/client/views/nodes/DocumentView.tsx20
2 files changed, 13 insertions, 18 deletions
diff --git a/src/client/views/MainView.tsx b/src/client/views/MainView.tsx
index 383efa1e3..631d24cb1 100644
--- a/src/client/views/MainView.tsx
+++ b/src/client/views/MainView.tsx
@@ -49,10 +49,10 @@ export class MainView extends React.Component {
@observable public pwidth: number = 0;
@observable public pheight: number = 0;
- @observable private dictationState = "";
+ @observable private dictationState = DictationManager.placeholder;
@observable private dictationSuccessState: boolean | undefined = undefined;
@observable private dictationDisplayState = false;
- @observable private dictationListeningState = false;
+ @observable private dictationListeningState: DictationManager.Controls.ListeningUIStatus = false;
public overlayTimeout: NodeJS.Timeout | undefined;
@@ -61,6 +61,7 @@ export class MainView extends React.Component {
this.overlayTimeout = setTimeout(() => {
this.dictationOverlayVisible = false;
this.dictationSuccess = undefined;
+ setTimeout(() => this.dictatedPhrase = DictationManager.placeholder, 500);
}, duration);
}
@@ -116,7 +117,7 @@ export class MainView extends React.Component {
return this.dictationListeningState;
}
- public set isListening(value: boolean) {
+ public set isListening(value: DictationManager.Controls.ListeningUIStatus) {
runInAction(() => this.dictationListeningState = value);
}
@@ -167,8 +168,6 @@ export class MainView extends React.Component {
}
}
- autorun(() => console.log(`this.isListening = ${this.isListening}`));
-
library.add(faFont);
library.add(faExclamation);
library.add(faPortrait);
@@ -525,7 +524,7 @@ export class MainView extends React.Component {
render() {
let display = this.dictationOverlayVisible;
let success = this.dictationSuccess;
- let result = this.isListening ? DictationManager.placeholder : `"${this.dictatedPhrase}"`;
+ let result = this.isListening && !this.isListening.interim ? DictationManager.placeholder : `"${this.dictatedPhrase}"`;
return (
<div id="main-div">
<div
diff --git a/src/client/views/nodes/DocumentView.tsx b/src/client/views/nodes/DocumentView.tsx
index 458fb582d..d6ae17537 100644
--- a/src/client/views/nodes/DocumentView.tsx
+++ b/src/client/views/nodes/DocumentView.tsx
@@ -536,19 +536,15 @@ export class DocumentView extends DocComponent<DocumentViewProps, Document>(Docu
this.props.Document.lockedPosition = BoolCast(this.props.Document.lockedPosition) ? undefined : true;
}
- listen = async () => {
- let dataDoc = Doc.GetProto(this.props.Document);
- let handler = (results: string) => {
- MainView.Instance.isListening = false;
- MainView.Instance.dictationSuccess = true;
- MainView.Instance.dictatedPhrase = results;
- };
- let final = await DictationManager.Controls.listen({
+ listen = async () =>
+ Doc.GetProto(this.props.Document).transcript = await DictationManager.Controls.listen({
continuous: { indefinite: true },
- interimHandler: handler
- });
- final && (dataDoc.transcript = final);
- }
+ interimHandler: (results: string) => {
+ MainView.Instance.isListening = { interim: true };
+ MainView.Instance.dictationSuccess = true;
+ MainView.Instance.dictatedPhrase = results;
+ }
+ })
@action
onContextMenu = async (e: React.MouseEvent): Promise<void> => {