diff --git a/android/app/build.gradle b/android/app/build.gradle index a61340620405..ab09e0cb2cf0 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -106,8 +106,8 @@ android { minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion multiDexEnabled rootProject.ext.multiDexEnabled - versionCode 1001031605 - versionName "1.3.16-5" + versionCode 1001031606 + versionName "1.3.16-6" } splits { diff --git a/ios/NewExpensify/Info.plist b/ios/NewExpensify/Info.plist index d66f9cfc3664..3069a08c7d90 100644 --- a/ios/NewExpensify/Info.plist +++ b/ios/NewExpensify/Info.plist @@ -30,7 +30,7 @@ CFBundleVersion - 1.3.16.5 + 1.3.16.6 ITSAppUsesNonExemptEncryption LSApplicationQueriesSchemes diff --git a/ios/NewExpensifyTests/Info.plist b/ios/NewExpensifyTests/Info.plist index 0ccf71908353..a7cbdc0cebf3 100644 --- a/ios/NewExpensifyTests/Info.plist +++ b/ios/NewExpensifyTests/Info.plist @@ -19,6 +19,6 @@ CFBundleSignature ???? CFBundleVersion - 1.3.16.5 + 1.3.16.6 diff --git a/package-lock.json b/package-lock.json index 0e99946f8fd9..8ef2b9501052 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "new.expensify", - "version": "1.3.16-5", + "version": "1.3.16-6", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "new.expensify", - "version": "1.3.16-5", + "version": "1.3.16-6", "hasInstallScript": true, "license": "MIT", "dependencies": { diff --git a/package.json b/package.json index 99bf1938f750..799684470332 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "new.expensify", - "version": "1.3.16-5", + "version": "1.3.16-6", "author": "Expensify, Inc.", "homepage": "https://new.expensify.com", "description": "New Expensify is the next generation of Expensify: a reimagination of payments based atop a foundation of chat.", diff --git a/src/components/PopoverMenu/index.js b/src/components/PopoverMenu/index.js index 5b5eadffcdce..17982c0d5684 100644 --- a/src/components/PopoverMenu/index.js +++ b/src/components/PopoverMenu/index.js @@ -1,5 +1,5 @@ import _ from 'underscore'; -import React from 'react'; +import React, {useState} from 'react'; import PropTypes from 'prop-types'; import {View} from 'react-native'; import PopoverWithMeasuredContent from '../PopoverWithMeasuredContent'; @@ -40,11 +40,12 @@ const defaultProps = { const PopoverMenu = (props) => { const {isSmallScreenWidth} = useWindowDimensions(); + const [selectedItemIndex, setSelectedItemIndex] = useState(null); const selectItem = (index) => { const selectedItem = props.menuItems[index]; props.onItemSelected(selectedItem); - selectedItem.onSelected(); + setSelectedItemIndex(index); }; const [focusedIndex, setFocusedIndex] = useArrowKeyFocusManager({initialFocusedIndex: -1, maxIndex: props.menuItems.length - 1}); @@ -66,7 +67,13 @@ const PopoverMenu = (props) => { anchorAlignment={props.anchorOrigin} onClose={props.onClose} isVisible={props.isVisible} - onModalHide={() => setFocusedIndex(-1)} + onModalHide={() => { + setFocusedIndex(-1); + if (selectedItemIndex !== null) { + props.menuItems[selectedItemIndex].onSelected(); + setSelectedItemIndex(null); + } + }} animationIn={props.animationIn} animationOut={props.animationOut} animationInTiming={props.animationInTiming}