Skip to content

Conversation

@krakitine
Copy link
Contributor

Motivations

Form's FormActionBar (save button) on Android devices with edge-to-edge enabled was showing Form content over the navigation. This PR adds a fix to add proper insets for "inline" style FormActionBar

Before

borked

After

fixed

Changes

Fixed

  • Fix Form's bottom inset SafeArea for inline type FormActionBar

Testing

I tested using three Android emulators.
One with Android 14, two with Android 16 (one using gesture navigation, the other button navigation)
Use an android build with edge-to-edge enabled.
Load up a form long enough that it has a scroll.
Notice that on the Android that supports edge-to-edge (15+), the form content is not visible over the bottom system navigation bar

Changes can be
tested via Pre-release

@krakitine krakitine self-assigned this Nov 12, 2025
@krakitine krakitine requested a review from a team as a code owner November 12, 2025 21:48
@krakitine krakitine requested review from omairJobber and removed request for a team November 12, 2025 21:49
}: FormBodyProps): JSX.Element {
const paddingBottom = useBottomPadding();
const fullViewPadding = useMemo(() => ({ paddingBottom }), [paddingBottom]);
const { bottom: paddingBottom } = useSafeAreaInsets();
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

useBottomPadding was doing some extra minuses for padding.. I needed the unaltered value from SafeAreaInsets.

</View>

{shouldRenderActionBar && !saveButtonOffset && (
{!saveButtonOffset && (
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is the crux of the fix, where I show this extra "safeArea" view at all times
for iOS and Android <15, this view is zero height

ref={scrollViewRef}
{...keyboardProps}
extraHeight={headerHeight}
extraScrollHeight={edgeToEdgeEnabled ? tokens["space-large"] : 0}
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@omairJobber this did not seem necessary with this fix

@github-actions
Copy link

Published Pre-release for 547612b with versions:

  - @jobber/components-native@0.90.1-JOB-142149-547612b.8+547612b28

To install the new version(s) for Mobile run:

npm install @jobber/components-native@0.90.1-JOB-142149-547612b.8+547612b28

@krakitine
Copy link
Contributor Author

Blocking this guy for when we resume this a little later. Keeping PR around as we might still use this

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Development

Successfully merging this pull request may close these issues.

3 participants