@@ -66,7 +66,7 @@ const keyNames: Record<string, string | string[]> = {
66
66
* @private
67
67
*/
68
68
export const withKeys = < T extends ( event : KeyboardEvent ) => any > (
69
- fn : T & { _withKeys ?: T } ,
69
+ fn : T ,
70
70
modifiers : string [ ]
71
71
) => {
72
72
let globalKeyCodes : LegacyConfig [ 'keyCodes' ]
@@ -88,43 +88,40 @@ export const withKeys = <T extends (event: KeyboardEvent) => any>(
88
88
}
89
89
}
90
90
91
- return (
92
- fn . _withKeys ||
93
- ( fn . _withKeys = ( event => {
94
- if ( ! ( 'key' in event ) ) {
95
- return
96
- }
91
+ return ( event => {
92
+ if ( ! ( 'key' in event ) ) {
93
+ return
94
+ }
95
+
96
+ const eventKey = hyphenate ( event . key )
97
+ if ( modifiers . some ( k => k === eventKey || keyNames [ k ] === eventKey ) ) {
98
+ return fn ( event )
99
+ }
97
100
98
- const eventKey = hyphenate ( event . key )
99
- if ( modifiers . some ( k => k === eventKey || keyNames [ k ] === eventKey ) ) {
101
+ if ( __COMPAT__ ) {
102
+ const keyCode = String ( event . keyCode )
103
+ if (
104
+ compatUtils . isCompatEnabled (
105
+ DeprecationTypes . V_ON_KEYCODE_MODIFIER ,
106
+ instance
107
+ ) &&
108
+ modifiers . some ( mod => mod == keyCode )
109
+ ) {
100
110
return fn ( event )
101
111
}
102
-
103
- if ( __COMPAT__ ) {
104
- const keyCode = String ( event . keyCode )
105
- if (
106
- compatUtils . isCompatEnabled (
107
- DeprecationTypes . V_ON_KEYCODE_MODIFIER ,
108
- instance
109
- ) &&
110
- modifiers . some ( mod => mod == keyCode )
111
- ) {
112
- return fn ( event )
113
- }
114
- if ( globalKeyCodes ) {
115
- for ( const mod of modifiers ) {
116
- const codes = globalKeyCodes [ mod ]
117
- if ( codes ) {
118
- const matches = isArray ( codes )
119
- ? codes . some ( code => String ( code ) === keyCode )
120
- : String ( codes ) === keyCode
121
- if ( matches ) {
122
- return fn ( event )
123
- }
112
+ if ( globalKeyCodes ) {
113
+ for ( const mod of modifiers ) {
114
+ const codes = globalKeyCodes [ mod ]
115
+ if ( codes ) {
116
+ const matches = isArray ( codes )
117
+ ? codes . some ( code => String ( code ) === keyCode )
118
+ : String ( codes ) === keyCode
119
+ if ( matches ) {
120
+ return fn ( event )
124
121
}
125
122
}
126
123
}
127
124
}
128
- } ) as T )
129
- )
125
+ }
126
+ } ) as T
130
127
}
0 commit comments