From 38520a97ff90af0a2f89f95676487a54104068d3 Mon Sep 17 00:00:00 2001 From: Satyajit Sahoo Date: Sat, 18 Jan 2020 23:13:36 +0100 Subject: [PATCH] fix: position inactivscreensws offscreen by default --- packages/stack/src/views/Stack/CardStack.tsx | 59 +++++++++++++++++--- 1 file changed, 51 insertions(+), 8 deletions(-) diff --git a/packages/stack/src/views/Stack/CardStack.tsx b/packages/stack/src/views/Stack/CardStack.tsx index a42d52e3..224367a6 100755 --- a/packages/stack/src/views/Stack/CardStack.tsx +++ b/packages/stack/src/views/Stack/CardStack.tsx @@ -75,39 +75,78 @@ type State = { }; const EPSILON = 1e-5; +const FAR_FAR_AWAY = 9000; const dimensions = Dimensions.get('window'); const layout = { width: dimensions.width, height: dimensions.height }; const MaybeScreenContainer = ({ enabled, + style, ...rest }: ViewProps & { enabled: boolean; children: React.ReactNode; }) => { - if (Platform.OS !== 'ios' && enabled && screensEnabled()) { - return ; + if (enabled && screensEnabled()) { + return ; } - return ; + return ( + + ); }; const MaybeScreen = ({ enabled, active, + style, ...rest }: ViewProps & { enabled: boolean; active: number | Animated.AnimatedInterpolation; children: React.ReactNode; }) => { - if (Platform.OS !== 'ios' && enabled && screensEnabled()) { + if (enabled && screensEnabled()) { // @ts-ignore - return ; + return ; } - return ; + return ( + + ); }; const FALLBACK_DESCRIPTOR = Object.freeze({ options: {} }); @@ -396,10 +435,14 @@ export default class CardStack extends React.Component { left = insets.left, } = focusedOptions.safeAreaInsets || {}; + // Screens is buggy on iOS, so we don't enable it there + // For modals, usually we want the screen underneath to be visible, so also disable it there + const isScreensEnabled = Platform.OS !== 'ios' && mode !== 'modal'; + return ( @@ -494,7 +537,7 @@ export default class CardStack extends React.Component {