diff --git a/package-lock.json b/package-lock.json index 78d114c6..25491968 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14922,7 +14922,7 @@ } }, "packages/babel-plugin-react-native-web": { - "version": "0.18.6", + "version": "0.18.7", "license": "MIT", "devDependencies": { "babel-plugin-tester": "^10.1.0" @@ -14949,12 +14949,18 @@ "webpack-cli": "^4.10.0" } }, + "packages/benchmarks/node_modules/babel-plugin-react-native-web": { + "version": "0.18.6", + "resolved": "https://registry.npmjs.org/babel-plugin-react-native-web/-/babel-plugin-react-native-web-0.18.6.tgz", + "integrity": "sha512-ZLYWYPvQRnAlh6c1H4kt9ShFFDPgnIMlbpCsNg+Hta1KBZMMb9t6SPyhZzpAXn3iY06XOCuZldysIGTDSIOfhg==", + "dev": true + }, "packages/dom-event-testing-library": { "version": "0.0.0", "license": "MIT" }, "packages/react-native-web": { - "version": "0.18.6", + "version": "0.18.7", "license": "MIT", "dependencies": { "@babel/runtime": "^7.18.6", @@ -14971,7 +14977,7 @@ } }, "packages/react-native-web-docs": { - "version": "0.18.6", + "version": "0.18.7", "devDependencies": { "@11ty/eleventy": "^1.0.1", "@11ty/eleventy-navigation": "^0.3.3", @@ -15035,14 +15041,14 @@ } }, "packages/react-native-web-examples": { - "version": "0.18.6", + "version": "0.18.7", "license": "MIT", "dependencies": { - "babel-plugin-react-native-web": "0.18.6", + "babel-plugin-react-native-web": "0.18.7", "next": "^12.2.0", "react": "^17.0.2", "react-dom": "^17.0.2", - "react-native-web": "0.18.6" + "react-native-web": "0.18.7" }, "devDependencies": { "@babel/core": "^7.18.6", @@ -18138,6 +18144,14 @@ "webpack": "^5.73.0", "webpack-bundle-analyzer": "^4.5.0", "webpack-cli": "^4.10.0" + }, + "dependencies": { + "babel-plugin-react-native-web": { + "version": "0.18.6", + "resolved": "https://registry.npmjs.org/babel-plugin-react-native-web/-/babel-plugin-react-native-web-0.18.6.tgz", + "integrity": "sha512-ZLYWYPvQRnAlh6c1H4kt9ShFFDPgnIMlbpCsNg+Hta1KBZMMb9t6SPyhZzpAXn3iY06XOCuZldysIGTDSIOfhg==", + "dev": true + } } }, "big.js": { @@ -23941,11 +23955,11 @@ "requires": { "@babel/core": "^7.18.6", "@babel/preset-flow": "^7.18.6", - "babel-plugin-react-native-web": "0.18.6", + "babel-plugin-react-native-web": "0.18.7", "next": "^12.2.0", "react": "^17.0.2", "react-dom": "^17.0.2", - "react-native-web": "0.18.6" + "react-native-web": "0.18.7" } }, "read-pkg": { diff --git a/packages/react-native-web-examples/pages/pressable/index.js b/packages/react-native-web-examples/pages/pressable/index.js index ebd3f1f2..034303a0 100644 --- a/packages/react-native-web-examples/pages/pressable/index.js +++ b/packages/react-native-web-examples/pages/pressable/index.js @@ -34,6 +34,8 @@ export default function PressablePage() { delayPressIn={delay} delayPressOut={delay} disabled={disabled} + onBlur={handleEvent('onBlur')} + onFocus={handleEvent('onFocus')} onHoverIn={handleEvent('onHoverIn')} onHoverOut={handleEvent('onHoverOut')} onKeyDown={(e) => { diff --git a/packages/react-native-web/src/exports/Pressable/__tests__/index-test.js b/packages/react-native-web/src/exports/Pressable/__tests__/index-test.js index 4a0df480..f9371f30 100644 --- a/packages/react-native-web/src/exports/Pressable/__tests__/index-test.js +++ b/packages/react-native-web/src/exports/Pressable/__tests__/index-test.js @@ -119,11 +119,11 @@ describe('components/Pressable', () => { act(() => { target.focus(); }); - expect(onFocus).not.toBeCalled(); + expect(onFocus).toBeCalled(); act(() => { body.focus({ relatedTarget: target.node }); }); - expect(onBlur).not.toBeCalled(); + expect(onBlur).toBeCalled(); }); test('hover interaction', () => { diff --git a/packages/react-native-web/src/exports/Pressable/index.js b/packages/react-native-web/src/exports/Pressable/index.js index 2a7b3942..5562e148 100644 --- a/packages/react-native-web/src/exports/Pressable/index.js +++ b/packages/react-native-web/src/exports/Pressable/index.js @@ -144,9 +144,6 @@ function Pressable(props: Props, forwardedRef): React.Node { const blurHandler = React.useCallback( (e) => { - if (disabled) { - return; - } if (e.nativeEvent.target === hostRef.current) { setFocused(false); if (onBlur != null) { @@ -154,14 +151,11 @@ function Pressable(props: Props, forwardedRef): React.Node { } } }, - [disabled, hostRef, setFocused, onBlur] + [hostRef, setFocused, onBlur] ); const focusHandler = React.useCallback( (e) => { - if (disabled) { - return; - } if (e.nativeEvent.target === hostRef.current) { setFocused(true); if (onFocus != null) { @@ -169,7 +163,7 @@ function Pressable(props: Props, forwardedRef): React.Node { } } }, - [disabled, hostRef, setFocused, onFocus] + [hostRef, setFocused, onFocus] ); const contextMenuHandler = React.useCallback(