File tree Expand file tree Collapse file tree 4 files changed +63
-13
lines changed
fixtures/dom/src/components/fixtures/text-inputs
packages/react-dom/src/client Expand file tree Collapse file tree 4 files changed +63
-13
lines changed Original file line number Diff line number Diff line change 1+ import Fixture from '../../Fixture' ;
2+
3+ const React = window . React ;
4+
5+ class ReplaceEmailInput extends React . Component {
6+ state = {
7+ formSubmitted : false ,
8+ } ;
9+
10+ render ( ) {
11+ return (
12+ < Fixture >
13+ < form
14+ className = "control-box"
15+ onSubmit = { event => {
16+ event . preventDefault ( ) ;
17+ this . setState ( { formSubmitted : true } ) ;
18+ } } >
19+ < fieldset >
20+ < legend > Email</ legend >
21+ { ! this . state . formSubmitted ? (
22+ < input type = "email" />
23+ ) : (
24+ < input type = "text" disabled = { true } />
25+ ) }
26+ </ fieldset >
27+ </ form >
28+ </ Fixture >
29+ ) ;
30+ }
31+ }
32+
33+ export default ReplaceEmailInput ;
Original file line number Diff line number Diff line change @@ -2,6 +2,7 @@ import Fixture from '../../Fixture';
22import FixtureSet from '../../FixtureSet' ;
33import TestCase from '../../TestCase' ;
44import InputTestCase from './InputTestCase' ;
5+ import ReplaceEmailInput from './ReplaceEmailInput' ;
56
67const React = window . React ;
78
@@ -110,6 +111,21 @@ class TextInputFixtures extends React.Component {
110111 < InputTestCase type = "url" defaultValue = "" />
111112 </ TestCase >
112113
114+ < TestCase
115+ title = "Replacing email input with text disabled input"
116+ relatedIssues = "12062" >
117+ < TestCase . Steps >
118+ 119+ < li > Press enter</ li >
120+ </ TestCase . Steps >
121+
122+ < TestCase . ExpectedResult >
123+ There should be no selection-related error in the console.
124+ </ TestCase . ExpectedResult >
125+
126+ < ReplaceEmailInput />
127+ </ TestCase >
128+
113129 < TestCase title = "All inputs" description = "General test of all inputs" >
114130 < InputTestCase type = "text" defaultValue = "Text" />
115131 < InputTestCase type = "email" defaultValue = "[email protected] " />
Original file line number Diff line number Diff line change @@ -26,7 +26,8 @@ export function hasSelectionCapabilities(elem) {
2626 const nodeName = elem && elem . nodeName && elem . nodeName . toLowerCase ( ) ;
2727 return (
2828 nodeName &&
29- ( ( nodeName === 'input' && elem . type === 'text' ) ||
29+ ( ( nodeName === 'input' &&
30+ ( elem . type === 'text' || elem . type === 'email' || elem . type === 'tel' ) ) ||
3031 nodeName === 'textarea' ||
3132 elem . contentEditable === 'true' )
3233 ) ;
Original file line number Diff line number Diff line change 4646 "filename" : " react-dom.development.js" ,
4747 "bundleType" : " UMD_DEV" ,
4848 "packageName" : " react-dom" ,
49- "size" : 591035 ,
50- "gzip" : 138248
49+ "size" : 591085 ,
50+ "gzip" : 138261
5151 },
5252 {
5353 "filename" : " react-dom.production.min.js" ,
5454 "bundleType" : " UMD_PROD" ,
5555 "packageName" : " react-dom" ,
56- "size" : 96636 ,
57- "gzip" : 31413
56+ "size" : 96672 ,
57+ "gzip" : 31416
5858 },
5959 {
6060 "filename" : " react-dom.development.js" ,
6161 "bundleType" : " NODE_DEV" ,
6262 "packageName" : " react-dom" ,
63- "size" : 575044 ,
64- "gzip" : 134405
63+ "size" : 575094 ,
64+ "gzip" : 134415
6565 },
6666 {
6767 "filename" : " react-dom.production.min.js" ,
6868 "bundleType" : " NODE_PROD" ,
6969 "packageName" : " react-dom" ,
70- "size" : 95362 ,
71- "gzip" : 30593
70+ "size" : 95398 ,
71+ "gzip" : 30619
7272 },
7373 {
7474 "filename" : " ReactDOM-dev.js" ,
7575 "bundleType" : " FB_DEV" ,
7676 "packageName" : " react-dom" ,
77- "size" : 594192 ,
78- "gzip" : 136733
77+ "size" : 594248 ,
78+ "gzip" : 136750
7979 },
8080 {
8181 "filename" : " ReactDOM-prod.js" ,
8282 "bundleType" : " FB_PROD" ,
8383 "packageName" : " react-dom" ,
84- "size" : 278297 ,
85- "gzip" : 53015
84+ "size" : 278353 ,
85+ "gzip" : 53028
8686 },
8787 {
8888 "filename" : " react-dom-test-utils.development.js" ,
You can’t perform that action at this time.
0 commit comments