From e864aafc65e2630a4f8fbdba1bed1b9361239df7 Mon Sep 17 00:00:00 2001 From: Kacper Kafara Date: Fri, 4 Oct 2024 14:02:35 +0200 Subject: [PATCH] fix: check for surplus values in sheet detents array not only in dev mode (#2387) ## Description Previous code reduced detent array to three values on Android only in dev mode - this is undesired. We want to always do it. ## Changes Moved the slicing operation out of check for dev mode. ## Test code and steps to reproduce `Test1649`, pass more than 3 values on Android, see that it works. ## Checklist - [ ] Ensured that CI passes --- src/components/Screen.tsx | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/components/Screen.tsx b/src/components/Screen.tsx index e49b249d63..2dd3dfd8f7 100644 --- a/src/components/Screen.tsx +++ b/src/components/Screen.tsx @@ -76,14 +76,16 @@ function resolveSheetAllowedDetents( allowedDetentsCompat: ScreenProps['sheetAllowedDetents'], ): number[] { if (Array.isArray(allowedDetentsCompat)) { - if (__DEV__) { - assertDetentsArrayIsSorted(allowedDetentsCompat); - if (Platform.OS === 'android' && allowedDetentsCompat.length > 3) { + if (Platform.OS === 'android' && allowedDetentsCompat.length > 3) { + if (__DEV__) { console.warn( '[RNScreens] Sheets API on Android do accept only up to 3 values. Any surplus value are ignored.', ); - allowedDetentsCompat = allowedDetentsCompat.slice(0, 3); } + allowedDetentsCompat = allowedDetentsCompat.slice(0, 3); + } + if (__DEV__) { + assertDetentsArrayIsSorted(allowedDetentsCompat); } return allowedDetentsCompat; } else if (allowedDetentsCompat === 'fitToContents') {