Lift fixed footers above the absolutely positioned tab bar

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Abin Toppo
2026-09-25 16:02:03 +05:30
co-authored by Claude Opus 5.5
parent ee6a408a1a
commit 473f9d7415
+12 -2
View File
@@ -77,7 +77,9 @@ export const ScreenShell = ({
// Bottom spacing: if inside tab navigator, add TAB_BAR_HEIGHT + breathing room
// If there's a fixedFooter, we don't necessarily need tab bar padding on the scroll view,
// but let's leave it for safety or adjust based on layout.
const tabBarPadding = withTabBar ? TAB_BAR_HEIGHT + 16 : 20;
// A fixed footer already clears the tab bar (see below), so the scroll above
// it only needs breathing room, not the bar's full height again.
const tabBarPadding = withTabBar && !fixedFooter ? TAB_BAR_HEIGHT + 16 : 20;
const scrollContent = (
<ScrollView
@@ -149,7 +151,15 @@ export const ScreenShell = ({
) : null}
{innerContent}
{fixedFooter}
{/* The tab bar is absolutely positioned over the bottom of the frame,
so a footer laid out in flow would sit underneath it — the Pay and
Continue buttons were rendering behind the bar. Lifting it by the
bar's height keeps it above. */}
{fixedFooter ? (
<View style={withTabBar ? { paddingBottom: TAB_BAR_HEIGHT } : undefined}>
{fixedFooter}
</View>
) : null}
</View>
</SafeAreaView>
);