@@ -36,31 +36,23 @@ export default component View(
3636) {
3737 const hasTextAncestor = use ( TextAncestorContext ) ;
3838
39- // [macOS Legacy keyboard event compat — to remove, delete this block and its import
40- const usingLegacyKeyboardProps = hasLegacyKeyProps ( props ) ;
41- // $FlowFixMe[unclear-type]
42- const effectiveProps : any = usingLegacyKeyboardProps ? ( { ...props } : any ) : props ;
43- if ( usingLegacyKeyboardProps ) {
44- stripLegacyKeyProps ( effectiveProps ) ;
45- const legacy = processLegacyKeyProps ( props ) ;
46- effectiveProps . keyDownEvents = legacy . keyDownEvents ;
47- effectiveProps . keyUpEvents = legacy . keyUpEvents ;
48- if ( legacy . onKeyDown != null ) {
49- effectiveProps . onKeyDown = legacy . onKeyDown ;
50- }
51- if ( legacy . onKeyUp != null ) {
52- effectiveProps . onKeyUp = legacy . onKeyUp ;
53- }
54- }
39+ // [macOS
40+ const legacyKeyOverrides = hasLegacyKeyProps ( props )
41+ ? processLegacyKeyProps ( props )
42+ : null ;
5543 // macOS]
5644
5745 let actualView ;
5846
5947 // [macOS
48+ const _keyDownEvents = legacyKeyOverrides ?. keyDownEvents ?? props . keyDownEvents ;
49+ const _keyUpEvents = legacyKeyOverrides ?. keyUpEvents ?? props . keyUpEvents ;
50+ const _origOnKeyDown = legacyKeyOverrides ?. onKeyDown ?? props . onKeyDown ;
51+ const _origOnKeyUp = legacyKeyOverrides ?. onKeyUp ?? props . onKeyUp ;
52+
6053 const _onKeyDown = ( event : KeyEvent ) => {
61- const keyDownEvents = effectiveProps . keyDownEvents ;
62- if ( keyDownEvents != null && ! event . isPropagationStopped ( ) ) {
63- const isHandled = keyDownEvents . some (
54+ if ( _keyDownEvents != null && ! event . isPropagationStopped ( ) ) {
55+ const isHandled = _keyDownEvents . some (
6456 ( { key, metaKey, ctrlKey, altKey, shiftKey} : HandledKeyEvent ) => {
6557 return (
6658 event . nativeEvent . key === key &&
@@ -75,13 +67,12 @@ export default component View(
7567 event . stopPropagation ( ) ;
7668 }
7769 }
78- effectiveProps . onKeyDown ?. ( event ) ;
70+ _origOnKeyDown ?. ( event ) ;
7971 } ;
8072
8173 const _onKeyUp = ( event : KeyEvent ) => {
82- const keyUpEvents = effectiveProps . keyUpEvents ;
83- if ( keyUpEvents != null && ! event . isPropagationStopped ( ) ) {
84- const isHandled = keyUpEvents . some (
74+ if ( _keyUpEvents != null && ! event . isPropagationStopped ( ) ) {
75+ const isHandled = _keyUpEvents . some (
8576 ( { key, metaKey, ctrlKey, altKey, shiftKey} : HandledKeyEvent ) => {
8677 return (
8778 event . nativeEvent . key === key &&
@@ -96,7 +87,7 @@ export default component View(
9687 event . stopPropagation ( ) ;
9788 }
9889 }
99- effectiveProps . onKeyUp ?. ( event ) ;
90+ _origOnKeyUp ?. ( event ) ;
10091 } ;
10192 // macOS]
10293
@@ -120,10 +111,12 @@ export default component View(
120111 id,
121112 tabIndex,
122113 ...otherProps
123- } = effectiveProps ;
114+ // $FlowFixMe[unclear-type]
115+ } = ( { ...props , ...legacyKeyOverrides } : any ) ; // [macOS]
124116
125117 // Since we destructured props, we can now treat it as mutable
126118 const processedProps = otherProps as { ...ViewProps } ;
119+ stripLegacyKeyProps ( processedProps ) ; // [macOS]
127120
128121 const parsedAriaLabelledBy = ariaLabelledBy ?. split ( / \s * , \s * / g) ;
129122 if ( parsedAriaLabelledBy !== undefined ) {
@@ -219,7 +212,9 @@ export default component View(
219212 nativeID,
220213 tabIndex,
221214 ...otherProps
222- } = effectiveProps ;
215+ // $FlowFixMe[unclear-type]
216+ } = ( { ...props , ...legacyKeyOverrides } : any ) ; // [macOS]
217+ stripLegacyKeyProps ( otherProps ) ; // [macOS]
223218 const _accessibilityLabelledBy =
224219 ariaLabelledBy ?. split ( / \s * , \s * / g) ?? accessibilityLabelledBy ;
225220
0 commit comments