diff --git a/android/app/build.gradle b/android/app/build.gradle index 4db8a0836477..28c983297c8b 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -91,8 +91,8 @@ android { minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion multiDexEnabled rootProject.ext.multiDexEnabled - versionCode 1001040601 - versionName "1.4.6-1" + versionCode 1001040602 + versionName "1.4.6-2" } flavorDimensions "default" diff --git a/ios/NewExpensify/Info.plist b/ios/NewExpensify/Info.plist index 5ce1b7f51147..c05fe7fbfeba 100644 --- a/ios/NewExpensify/Info.plist +++ b/ios/NewExpensify/Info.plist @@ -40,7 +40,7 @@ CFBundleVersion - 1.4.6.1 + 1.4.6.2 ITSAppUsesNonExemptEncryption LSApplicationQueriesSchemes diff --git a/ios/NewExpensifyTests/Info.plist b/ios/NewExpensifyTests/Info.plist index f9675bc7cc27..4c875f6d7ba2 100644 --- a/ios/NewExpensifyTests/Info.plist +++ b/ios/NewExpensifyTests/Info.plist @@ -19,6 +19,6 @@ CFBundleSignature ???? CFBundleVersion - 1.4.6.1 + 1.4.6.2 diff --git a/package-lock.json b/package-lock.json index 1638ea164d22..aadfdaeb6307 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "new.expensify", - "version": "1.4.6-1", + "version": "1.4.6-2", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "new.expensify", - "version": "1.4.6-1", + "version": "1.4.6-2", "hasInstallScript": true, "license": "MIT", "dependencies": { diff --git a/package.json b/package.json index 1b1fc8c19416..6de3c149cfa0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "new.expensify", - "version": "1.4.6-1", + "version": "1.4.6-2", "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/TabSelector/TabSelector.js b/src/components/TabSelector/TabSelector.js index cdec2a7e91e1..83601dbc27d8 100644 --- a/src/components/TabSelector/TabSelector.js +++ b/src/components/TabSelector/TabSelector.js @@ -102,7 +102,7 @@ function TabSelector({state, navigation, onTabPress, position}) { {_.map(state.routes, (route, index) => { const activeOpacity = getOpacity(position, state.routes.length, index, true, affectedAnimatedTabs); const inactiveOpacity = getOpacity(position, state.routes.length, index, false, affectedAnimatedTabs); - const backgroundColor = getBackgroundColor(position, state.routes.length, index, affectedAnimatedTabs); + const backgroundColor = getBackgroundColor(state.routes.length, index, affectedAnimatedTabs); const isFocused = index === state.index; const {icon, title} = getIconAndTitle(route.name, translate); diff --git a/src/pages/home/report/ReportActionsList.js b/src/pages/home/report/ReportActionsList.js index e1230d7219db..96b3fe3be67a 100644 --- a/src/pages/home/report/ReportActionsList.js +++ b/src/pages/home/report/ReportActionsList.js @@ -338,8 +338,9 @@ function ReportActionsList({ const nextMessage = sortedReportActions[index + 1]; const isCurrentMessageUnread = isMessageUnread(reportAction, lastReadTimeRef.current); shouldDisplay = isCurrentMessageUnread && (!nextMessage || !isMessageUnread(nextMessage, lastReadTimeRef.current)); - if (!messageManuallyMarkedUnread) { - shouldDisplay = shouldDisplay && reportAction.actorAccountID !== Report.getCurrentUserAccountID(); + if (shouldDisplay && !messageManuallyMarkedUnread) { + const isWithinVisibleThreshold = scrollingVerticalOffset.current < MSG_VISIBLE_THRESHOLD ? reportAction.created < userActiveSince.current : true; + shouldDisplay = reportAction.actorAccountID !== Report.getCurrentUserAccountID() && isWithinVisibleThreshold; } if (shouldDisplay) { cacheUnreadMarkers.set(report.reportID, reportAction.reportActionID); diff --git a/src/styles/utilities/overscrollBehaviorContain/index.js b/src/styles/utilities/overscrollBehaviorContain/index.js deleted file mode 100644 index 1377e4b47d28..000000000000 --- a/src/styles/utilities/overscrollBehaviorContain/index.js +++ /dev/null @@ -1,3 +0,0 @@ -export default { - overscrollBehavior: 'contain', -}; diff --git a/src/styles/utilities/overscrollBehaviorContain/index.native.js b/src/styles/utilities/overscrollBehaviorContain/index.native.js deleted file mode 100644 index ff8b4c56321a..000000000000 --- a/src/styles/utilities/overscrollBehaviorContain/index.native.js +++ /dev/null @@ -1 +0,0 @@ -export default {}; diff --git a/src/styles/utilities/overscrollBehaviorContain/index.native.ts b/src/styles/utilities/overscrollBehaviorContain/index.native.ts new file mode 100644 index 000000000000..fd6b2f496912 --- /dev/null +++ b/src/styles/utilities/overscrollBehaviorContain/index.native.ts @@ -0,0 +1,5 @@ +import OverscrollBehaviorStyles from './types'; + +const overscrollBehaviorContain: OverscrollBehaviorStyles = {}; + +export default overscrollBehaviorContain; diff --git a/src/styles/utilities/overscrollBehaviorContain/index.ts b/src/styles/utilities/overscrollBehaviorContain/index.ts new file mode 100644 index 000000000000..18cbe810d336 --- /dev/null +++ b/src/styles/utilities/overscrollBehaviorContain/index.ts @@ -0,0 +1,7 @@ +import OverscrollBehaviorStyles from './types'; + +const overscrollBehaviorContain: OverscrollBehaviorStyles = { + overscrollBehavior: 'contain', +}; + +export default overscrollBehaviorContain; diff --git a/src/styles/utilities/overscrollBehaviorContain/types.ts b/src/styles/utilities/overscrollBehaviorContain/types.ts new file mode 100644 index 000000000000..1e806eb60642 --- /dev/null +++ b/src/styles/utilities/overscrollBehaviorContain/types.ts @@ -0,0 +1,5 @@ +import {ViewStyle} from 'react-native'; + +type OverscrollBehaviorStyles = Pick; + +export default OverscrollBehaviorStyles;