@@ -42,12 +42,18 @@ export class SessionPasswordDialog extends React.Component<Props, State> {
42
42
}
43
43
44
44
public componentDidMount ( ) {
45
+ document . addEventListener ( 'keyup' , this . onEnterPressed ) ;
46
+
45
47
setTimeout ( ( ) => {
46
48
// tslint:disable-next-line: no-unused-expression
47
49
this . passportInput && this . passportInput . focus ( ) ;
48
50
} , 1 ) ;
49
51
}
50
52
53
+ public componentWillUnmount ( ) {
54
+ document . removeEventListener ( 'keyup' , this . onEnterPressed ) ;
55
+ }
56
+
51
57
public render ( ) {
52
58
const { passwordAction } = this . props ;
53
59
let placeholders : Array < string > = [ ] ;
@@ -93,15 +99,17 @@ export class SessionPasswordDialog extends React.Component<Props, State> {
93
99
this . passportInput = input ;
94
100
} }
95
101
placeholder = { placeholders [ 0 ] }
96
- onKeyUp = { this . onPasswordInput }
102
+ onChange = { this . onPasswordInput }
103
+ onPaste = { this . onPasswordInput }
97
104
data-testid = "password-input"
98
105
/>
99
106
{ passwordAction !== 'enter' && passwordAction !== 'remove' && (
100
107
< input
101
108
type = "password"
102
109
id = "password-modal-input-confirm"
103
110
placeholder = { placeholders [ 1 ] }
104
- onKeyUp = { this . onPasswordConfirmInput }
111
+ onChange = { this . onPasswordConfirmInput }
112
+ onPaste = { this . onPasswordConfirmInput }
105
113
data-testid = "password-input-confirm"
106
114
/>
107
115
) }
@@ -110,7 +118,8 @@ export class SessionPasswordDialog extends React.Component<Props, State> {
110
118
type = "password"
111
119
id = "password-modal-input-reconfirm"
112
120
placeholder = { placeholders [ 2 ] }
113
- onKeyUp = { this . onPasswordRetypeInput }
121
+ onPaste = { this . onPasswordRetypeInput }
122
+ onChange = { this . onPasswordRetypeInput }
114
123
data-testid = "password-input-reconfirm"
115
124
/>
116
125
) }
@@ -258,6 +267,13 @@ export class SessionPasswordDialog extends React.Component<Props, State> {
258
267
this . closeDialog ( ) ;
259
268
}
260
269
270
+ private async onEnterPressed ( event : any ) {
271
+ if ( event . key === 'Enter' ) {
272
+ event . stopPropagation ( ) ;
273
+ return this . setPassword ( ) ;
274
+ }
275
+ }
276
+
261
277
private async handleActionEnter ( enteredPassword : string ) {
262
278
// be sure the password is valid
263
279
if ( ! this . validatePassword ( enteredPassword ) ) {
@@ -321,30 +337,18 @@ export class SessionPasswordDialog extends React.Component<Props, State> {
321
337
window . inboxStore ?. dispatch ( sessionPassword ( null ) ) ;
322
338
}
323
339
324
- private async onPasswordInput ( event : any ) {
325
- if ( event . key === 'Enter' ) {
326
- return this . setPassword ( ) ;
327
- }
340
+ private onPasswordInput ( event : any ) {
328
341
const currentPasswordEntered = event . target . value ;
329
-
330
342
this . setState ( { currentPasswordEntered } ) ;
331
343
}
332
344
333
- private async onPasswordConfirmInput ( event : any ) {
334
- if ( event . key === 'Enter' ) {
335
- return this . setPassword ( ) ;
336
- }
345
+ private onPasswordConfirmInput ( event : any ) {
337
346
const currentPasswordConfirmEntered = event . target . value ;
338
-
339
347
this . setState ( { currentPasswordConfirmEntered } ) ;
340
348
}
341
349
342
- private async onPasswordRetypeInput ( event : any ) {
343
- if ( event . key === 'Enter' ) {
344
- return this . setPassword ( ) ;
345
- }
350
+ private onPasswordRetypeInput ( event : any ) {
346
351
const currentPasswordRetypeEntered = event . target . value ;
347
-
348
352
this . setState ( { currentPasswordRetypeEntered } ) ;
349
353
}
350
354
}
0 commit comments