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}