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 {