From 1d002182e318be64190c4616ac4931e98feb31eb Mon Sep 17 00:00:00 2001
From: Jason <jason.daurus@gmail.com>
Date: Wed, 2 Mar 2016 22:37:32 +0800
Subject: [web] remove common.ChildFocus

---
 web/src/js/components/common.js   | 12 ------------
 web/src/js/components/editor.js   |  7 ++++---
 web/src/js/components/header.js   |  8 +++++---
 web/src/js/components/prompt.js   |  7 ++++---
 web/src/js/components/proxyapp.js |  2 ++
 5 files changed, 15 insertions(+), 21 deletions(-)

(limited to 'web/src/js/components')

diff --git a/web/src/js/components/common.js b/web/src/js/components/common.js
index 5fae7415..293cff49 100644
--- a/web/src/js/components/common.js
+++ b/web/src/js/components/common.js
@@ -52,18 +52,6 @@ export var SettingsState = {
 };
 
 
-export var ChildFocus = {
-    contextTypes: {
-        returnFocus: React.PropTypes.func
-    },
-    returnFocus: function () {
-        ReactDOM.findDOMNode(this).blur();
-        window.getSelection().removeAllRanges();
-        this.context.returnFocus();
-    }
-};
-
-
 export var Router = {
     contextTypes: {
         location: React.PropTypes.object,
diff --git a/web/src/js/components/editor.js b/web/src/js/components/editor.js
index c929a244..eed2f7c6 100644
--- a/web/src/js/components/editor.js
+++ b/web/src/js/components/editor.js
@@ -1,6 +1,5 @@
 import React from "react";
 import ReactDOM from 'react-dom';
-import {ChildFocus} from "./common.js";
 import {Key} from "../utils.js";
 
 var contentToHtml = function (content) {
@@ -214,7 +213,9 @@ var ValidateEditor = React.createClass({
  Text Editor with mitmweb-specific convenience features
  */
 export var ValueEditor = React.createClass({
-    mixins: [ChildFocus],
+    contextTypes: {
+        returnFocus: React.PropTypes.func
+    },
     propTypes: {
         content: React.PropTypes.string.isRequired,
         onDone: React.PropTypes.func.isRequired,
@@ -232,6 +233,6 @@ export var ValueEditor = React.createClass({
         ReactDOM.findDOMNode(this).focus();
     },
     onStop: function () {
-        this.returnFocus();
+        this.context.returnFocus();
     }
 });
\ No newline at end of file
diff --git a/web/src/js/components/header.js b/web/src/js/components/header.js
index 3833a6ee..96b522f0 100644
--- a/web/src/js/components/header.js
+++ b/web/src/js/components/header.js
@@ -4,7 +4,7 @@ import $ from "jquery";
 
 import Filt from "../filt/filt.js";
 import {Key} from "../utils.js";
-import {Router, SettingsState, ChildFocus} from "./common.js";
+import {Router, SettingsState} from "./common.js";
 import {SettingsActions, FlowActions} from "../actions.js";
 import {Query} from "../actions.js";
 
@@ -51,7 +51,9 @@ var FilterDocs = React.createClass({
     }
 });
 var FilterInput = React.createClass({
-    mixins: [ChildFocus],
+    contextTypes: {
+        returnFocus: React.PropTypes.func
+    },
     getInitialState: function () {
         // Consider both focus and mouseover for showing/hiding the tooltip,
         // because onBlur of the input is triggered before the click on the tooltip
@@ -118,7 +120,7 @@ var FilterInput = React.createClass({
     },
     blur: function () {
         ReactDOM.findDOMNode(this.refs.input).blur();
-        this.returnFocus();
+        this.context.returnFocus();
     },
     select: function () {
         ReactDOM.findDOMNode(this.refs.input).select();
diff --git a/web/src/js/components/prompt.js b/web/src/js/components/prompt.js
index 7b398038..e324f7d4 100644
--- a/web/src/js/components/prompt.js
+++ b/web/src/js/components/prompt.js
@@ -3,10 +3,11 @@ import ReactDOM from 'react-dom';
 import _ from "lodash";
 
 import {Key} from "../utils.js";
-import {ChildFocus} from "./common.js"
 
 var Prompt = React.createClass({
-    mixins: [ChildFocus],
+    contextTypes: {
+        returnFocus: React.PropTypes.func
+    },
     propTypes: {
         options: React.PropTypes.array.isRequired,
         done: React.PropTypes.func.isRequired,
@@ -35,7 +36,7 @@ var Prompt = React.createClass({
     },
     done: function (ret) {
         this.props.done(ret);
-        this.returnFocus();
+        this.context.returnFocus();
     },
     getOptions: function () {
         var opts = [];
diff --git a/web/src/js/components/proxyapp.js b/web/src/js/components/proxyapp.js
index 24f45ff5..97acfbde 100644
--- a/web/src/js/components/proxyapp.js
+++ b/web/src/js/components/proxyapp.js
@@ -55,6 +55,8 @@ var ProxyAppMain = React.createClass({
         };
     },
     focus: function () {
+        document.activeElement.blur();
+        window.getSelection().removeAllRanges();
         ReactDOM.findDOMNode(this).focus();
     },
     getMainComponent: function () {
-- 
cgit v1.2.3