Skip to content

chore: enable edge to edge on android - #7157

Merged
Rohit3523 merged 97 commits into
developfrom
edge-to-edge
Jul 6, 2026
Merged

chore: enable edge to edge on android#7157
Rohit3523 merged 97 commits into
developfrom
edge-to-edge

Conversation

@Rohit3523

@Rohit3523 Rohit3523 commented Apr 15, 2026

Copy link
Copy Markdown
Member

Proposed changes

Replace expo-navigation-bar with @zoontek/react-native-navigation-bar and add safe area bottom insets across 30+ views to enable proper edge-to-edge display on Android. This prevents content from being hidden behind the system navigation bar on devices with gesture navigation.

Key changes:

  • Replaced expo-navigation-bar with @zoontek/react-native-navigation-bar for better edge-to-edge support
  • Added paddingBottom: bottom (via useSafeAreaInsets / withSafeAreaInsets) to FlatLists, ScrollViews, and content containers across the app
  • Cleaned up hardcoded paddingBottom: 100 in NewServerView in favor of FormContainers built-in safe area handling
  • Switched JitsiMeetView from RNs built-in SafeAreaView to react-native-safe-area-contexts
  • Fixed RoomView footer sections to respect bottom safe area

Issue(s)

https://rocketchat.atlassian.net/browse/CORE-1967

How to test or reproduce

  1. Build and run on Android 12+ with gesture navigation enabled
  2. Verify these screens show content above the system navigation bar:
    • MessagesView / ThreadMessagesView / SearchMessagesView
    • RoomView (preview mode, read-only, blocked room footers)
    • RoomActionsView / RoomInfoEditView / RoomMembersView
    • DiscussionsView / TeamChannelsView / PickerView
    • NewMessageView / SelectedUsersView
    • SettingsView / LanguageView / StatusView / ProfileView
    • E2EEncryptionSecurityView / E2ESaveYourPasswordView
    • SelectServerView / SelectListView
    • ShareListView
  3. Verify the "Jump to last message" FAB in rooms respects bottom safe area
  4. Verify the "Add Server" screen (both first-run and from rooms list header) shows correctly without extra header spacing

Screenshots

Screen Android 12 Android 13 Android 14 Android 15 Android 16 Android 17 iOS
Login
Register
Rooms List
Select Server
Room View Default
Room Keyboard
Room Emoji Keyboard
Emoji Picker Bottom
Thread Messages
Search Messages
Room Members
New Message View
Directory
Discussions
Read Only Room
Status View
Language
Default Browser
Auto Translate
Room Action Sheet
Action Sheet Delete
Media Download Images
Members Filter
Profile
Reaction Picker
Reaction Picker Bottom

Jisti

OS Call Screen Members Chat
Android Screenshot 2026-06-29 at 11 55 44 PM Screenshot 2026-06-29 at 11 57 56 PM Screenshot 2026-06-29 at 11 58 09 PM
iOS Screenshot 2026-06-30 at 12 02 21 AM Screenshot 2026-06-30 at 12 02 33 AM Screenshot 2026-06-30 at 12 02 58 AM

iPhone SE Bottom sheet screenshots

Screen iPhone SE
Add new server Screenshot 2026-06-30 at 3 58 06 AM
Directory Filter Screenshot 2026-06-30 at 3 59 02 AM
Member filter Screenshot 2026-06-30 at 4 00 13 AM
Delete button visible in sheet Screenshot 2026-06-30 at 4 01 57 AM
Last row of emoji is visible Screenshot 2026-06-30 at 4 03 08 AM

Note: I tested this on both a tablet and in landscape mode, and everything is working as expected.

Summary by CodeRabbit

  • New Features

    • Enabled edge-to-edge display on Android for a more immersive app layout.
    • Improved safe-area handling across lists, sheets, chats, profiles, and message screens to better fit devices with gesture bars or notches.
    • Updated keyboard and bottom-sheet behavior for more consistent spacing on both iOS and Android.
  • Bug Fixes

    • Prevented content from being hidden behind the bottom system area in several views.
    • Improved Android navigation bar appearance and contrast handling.

@coderabbitai

coderabbitai Bot commented Apr 15, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

Walkthrough

The PR enables Android edge-to-edge display by setting edgeToEdgeEnabled=true, replaces expo-navigation-bar with @zoontek/react-native-navigation-bar, removes bottomInset from action sheet detent calculations, introduces a withSafeAreaInsets HOC, and applies safe-area bottom insets across containers and views.

Android Edge-to-Edge Configuration

Layer / File(s) Summary
Gradle, Android theme resources, and navigation bar API
android/gradle.properties, android/app/src/main/res/values/styles.xml, app/lib/methods/helpers/theme.ts, package.json
Enables edgeToEdgeEnabled, adds enforceNavigationBarContrast=false to AppTheme/BootTheme, replaces expo-navigation-bar with @zoontek/react-native-navigation-bar, and updates setNativeTheme to call setBarStyle with 'dark-content'/'light-content'.
CI build wiring
.github/actions/build-android/action.yml, .github/workflows/e2e-build-android.yml
Appends edgeToEdgeEnabled=true to android/gradle.properties in both the composite build action and the E2E Android workflow.

Safe-Area Inset Layout Updates

Layer / File(s) Summary
ActionSheet bottomInset removal
app/containers/ActionSheet/useActionSheetDetents.ts, app/containers/ActionSheet/ActionSheet.tsx, app/containers/ActionSheet/BottomSheetContent.tsx, app/containers/ActionSheet/useActionSheetDetents.test.tsx
Removes bottomInset from UseActionSheetDetentsParams, hook inputs, maxSnap/measuredHeight/rawContentDetent computations, and the useMemo dependency array. Removes platform-based inset logic from ActionSheet, simplifies content panning condition, and uses bottom directly for BottomSheetContent padding.
withSafeAreaInsets HOC
app/lib/hooks/withSafeAreaInsets.tsx
Introduces a generic withSafeAreaInsets HOC that injects safe-area props, hoists non-React statics, and narrows the outer prop type via Omit<T, keyof WithSafeAreaInsetsProps>.
Container safe-area padding
app/containers/EmojiPicker/EmojiCategory.tsx, app/containers/FormContainer.tsx, app/containers/List/ListContainer.tsx
Removes safe-area inset subtraction from EmojiCategory bottom-sheet breathing room; updates FormContainer to add paddingBottom: Math.max(24, bottom) and switch to flexGrow: 1; appends safe-area paddingBottom to ListContainer's ScrollView.
Hook-based safe-area views
app/views/AddExistingChannelView/..., app/views/CannedResponsesListView/..., app/views/DefaultBrowserView/..., app/views/DirectoryView/*, app/views/DiscussionsView/..., app/views/LanguageView/..., app/views/NewMessageView/..., app/views/ProfileView/..., app/views/RoomInfoEditView/..., app/views/RoomMembersView/..., app/views/RoomsListView/..., app/views/SelectServerView.tsx, app/views/StatusView/...
Adds useSafeAreaInsets and applies paddingBottom from bottom to FlatList/ScrollView content containers across all these views. Also removes useSafeAreaInsets from DirectoryView/Options.tsx (inset now handled by the parent) and removes enableContentPanningGesture: false from the showActionSheet call.
HOC-wrapped safe-area views, RoomView footer, and JitsiMeetView
app/views/MessagesView/..., app/views/ReadReceiptView/..., app/views/SearchMessagesView/..., app/views/SelectListView.tsx, app/views/TeamChannelsView.tsx, app/views/ThreadMessagesView/..., app/views/RoomView/..., app/views/JitsiMeetView/...
Wraps class components with withSafeAreaInsets, extends their props with EdgeInsets, and applies insets.bottom to list/scroll padding. Adds footerBottomInset to all RoomView footer containers. Switches JitsiMeetView to use the local SafeAreaView container.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Suggested reviewers

  • OtavioStasiak
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly matches the main change: enabling Android edge-to-edge support.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

Warning

Review ran into problems

🔥 Problems

Errors were encountered while retrieving linked issues.

Errors (14)
  • CORE-1967: Request failed with status code 401
  • API-31: Request failed with status code 401
  • ANDROID-12: Request failed with status code 401
  • API-33: Request failed with status code 401
  • ANDROID-13: Request failed with status code 401
  • API-34: Request failed with status code 401
  • ANDROID-14: Request failed with status code 401
  • API-35: Request failed with status code 401
  • ANDROID-15: Request failed with status code 401
  • API-36: Request failed with status code 401
  • ANDROID-16: Request failed with status code 401
  • API-37: Request failed with status code 401
  • ANDROID-17: Request failed with status code 401
  • IPHONE-16: Request failed with status code 401

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@Rohit3523
Rohit3523 had a problem deploying to official_android_build April 28, 2026 19:29 — with GitHub Actions Error
@Rohit3523
Rohit3523 had a problem deploying to experimental_android_build April 28, 2026 19:29 — with GitHub Actions Error
@Rohit3523
Rohit3523 had a problem deploying to experimental_ios_build April 28, 2026 19:29 — with GitHub Actions Error
@Rohit3523

Copy link
Copy Markdown
Member Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Apr 28, 2026

Copy link
Copy Markdown
Contributor
✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@Rohit3523
Rohit3523 had a problem deploying to experimental_ios_build April 28, 2026 20:04 — with GitHub Actions Error
@Rohit3523
Rohit3523 had a problem deploying to experimental_android_build April 28, 2026 20:04 — with GitHub Actions Error
@Rohit3523
Rohit3523 had a problem deploying to official_android_build April 28, 2026 20:04 — with GitHub Actions Error

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
app/containers/ActionSheet/useActionSheetDetents.ts (1)

48-87: ⚠️ Potential issue | 🟠 Major

Add fontScale to the useMemo dependency array.

CANCEL_HEIGHT depends on fontScale from useWindowDimensions(), but the memo doesn't include fontScale in its dependencies. When the user changes text size (accessibility setting), fontScale updates but the memo won't recompute, leaving detent calculations stale.

Fix
-	}, [contentHeight, hasCancel, headerHeight, itemHeight, optionsLength, snaps, windowHeight]);
+	}, [contentHeight, fontScale, hasCancel, headerHeight, itemHeight, optionsLength, snaps, windowHeight]);
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@app/containers/ActionSheet/useActionSheetDetents.ts` around lines 48 - 87,
The memo currently computes CANCEL_HEIGHT from fontScale (via
useWindowDimensions()) but does not include fontScale in the useMemo dependency
array, so detents won't update when fontScale changes; update the dependency
array for the useMemo that returns { detents, maxHeight, scrollEnabled } to
include fontScale (alongside contentHeight, hasCancel, headerHeight, itemHeight,
optionsLength, snaps, windowHeight) so that CANCEL_HEIGHT and all derived
calculations (maxSnap, measuredHeight, etc.) are recomputed when fontScale
changes.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Outside diff comments:
In `@app/containers/ActionSheet/useActionSheetDetents.ts`:
- Around line 48-87: The memo currently computes CANCEL_HEIGHT from fontScale
(via useWindowDimensions()) but does not include fontScale in the useMemo
dependency array, so detents won't update when fontScale changes; update the
dependency array for the useMemo that returns { detents, maxHeight,
scrollEnabled } to include fontScale (alongside contentHeight, hasCancel,
headerHeight, itemHeight, optionsLength, snaps, windowHeight) so that
CANCEL_HEIGHT and all derived calculations (maxSnap, measuredHeight, etc.) are
recomputed when fontScale changes.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 924d26f6-ed5c-4379-aa92-9aaff1894492

📥 Commits

Reviewing files that changed from the base of the PR and between 2c4dd8d and c6a2b16.

📒 Files selected for processing (8)
  • android/gradle.properties
  • app/containers/ActionSheet/ActionSheet.tsx
  • app/containers/ActionSheet/BottomSheetContent.tsx
  • app/containers/ActionSheet/useActionSheetDetents.test.tsx
  • app/containers/ActionSheet/useActionSheetDetents.ts
  • app/containers/MessageComposer/hooks/useEmojiKeyboard.tsx
  • app/views/DirectoryView/index.tsx
  • app/views/JitsiMeetView/index.tsx
📜 Review details
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
  • GitHub Check: ESLint and Test / run-eslint-and-test
  • GitHub Check: format
🧰 Additional context used
📓 Path-based instructions (5)
**/*.{js,ts,jsx,tsx}

📄 CodeRabbit inference engine (AGENTS.md)

**/*.{js,ts,jsx,tsx}: Use descriptive names for functions, variables, and classes that clearly convey their purpose
Write comments that explain the 'why' behind code decisions, not the 'what'
Keep functions small and focused on a single responsibility
Use const by default, let when reassignment is needed, and avoid var
Prefer async/await over .then() chains for handling asynchronous operations
Use explicit error handling with try/catch blocks for async operations
Avoid deeply nested code; refactor complex logic into helper functions

Files:

  • app/views/JitsiMeetView/index.tsx
  • app/views/DirectoryView/index.tsx
  • app/containers/ActionSheet/BottomSheetContent.tsx
  • app/containers/MessageComposer/hooks/useEmojiKeyboard.tsx
  • app/containers/ActionSheet/useActionSheetDetents.ts
  • app/containers/ActionSheet/ActionSheet.tsx
  • app/containers/ActionSheet/useActionSheetDetents.test.tsx
**/*.{ts,tsx}

📄 CodeRabbit inference engine (AGENTS.md)

**/*.{ts,tsx}: Use TypeScript for type safety; add explicit type annotations to function parameters and return types
Prefer interfaces over type aliases for defining object shapes in TypeScript
Use enums for sets of related constants rather than magic strings or numbers

**/*.{ts,tsx}: Use TypeScript with strict mode enabled and baseUrl set to app/ for module imports
Support iOS 13.4+ and Android 6.0+ as minimum target platforms

Files:

  • app/views/JitsiMeetView/index.tsx
  • app/views/DirectoryView/index.tsx
  • app/containers/ActionSheet/BottomSheetContent.tsx
  • app/containers/MessageComposer/hooks/useEmojiKeyboard.tsx
  • app/containers/ActionSheet/useActionSheetDetents.ts
  • app/containers/ActionSheet/ActionSheet.tsx
  • app/containers/ActionSheet/useActionSheetDetents.test.tsx
**/*.{ts,tsx,js,jsx}

📄 CodeRabbit inference engine (CLAUDE.md)

**/*.{ts,tsx,js,jsx}: Use tabs for indentation with single quotes, 130 character line width, no trailing commas, and avoid arrow function parentheses when possible
Use ESLint with @rocket.chat/eslint-config base including React, React Native, TypeScript, and Jest plugins

Files:

  • app/views/JitsiMeetView/index.tsx
  • app/views/DirectoryView/index.tsx
  • app/containers/ActionSheet/BottomSheetContent.tsx
  • app/containers/MessageComposer/hooks/useEmojiKeyboard.tsx
  • app/containers/ActionSheet/useActionSheetDetents.ts
  • app/containers/ActionSheet/ActionSheet.tsx
  • app/containers/ActionSheet/useActionSheetDetents.test.tsx
app/views/**/*.{ts,tsx}

📄 CodeRabbit inference engine (CLAUDE.md)

Create view components (screens) in app/views/ directory

Files:

  • app/views/JitsiMeetView/index.tsx
  • app/views/DirectoryView/index.tsx
app/containers/**/*.{ts,tsx}

📄 CodeRabbit inference engine (CLAUDE.md)

Create reusable UI components in app/containers/ directory

Files:

  • app/containers/ActionSheet/BottomSheetContent.tsx
  • app/containers/MessageComposer/hooks/useEmojiKeyboard.tsx
  • app/containers/ActionSheet/useActionSheetDetents.ts
  • app/containers/ActionSheet/ActionSheet.tsx
  • app/containers/ActionSheet/useActionSheetDetents.test.tsx
🧠 Learnings (9)
📓 Common learnings
Learnt from: Rohit3523
Repo: RocketChat/Rocket.Chat.ReactNative PR: 6930
File: package.json:101-101
Timestamp: 2026-02-05T13:55:06.688Z
Learning: The RocketChat/Rocket.Chat.ReactNative repository uses a fork of react-native-image-crop-picker (RocketChat/react-native-image-crop-picker) with custom Android edge-to-edge fixes, not the upstream ivpusic/react-native-image-crop-picker package. Dependencies should reference commit pins from the RocketChat fork.
📚 Learning: 2026-04-22T22:57:58.545Z
Learnt from: CR
Repo: RocketChat/Rocket.Chat.ReactNative PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-04-22T22:57:58.545Z
Learning: Applies to {app/sagas/videoConf.ts,app/lib/methods/videoConf.ts} : Implement video conferencing in app/sagas/videoConf.ts and app/lib/methods/videoConf.ts using Redux actions, reducers, and sagas for server-managed Jitsi integration

Applied to files:

  • app/views/JitsiMeetView/index.tsx
📚 Learning: 2026-04-22T22:57:58.545Z
Learnt from: CR
Repo: RocketChat/Rocket.Chat.ReactNative PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-04-22T22:57:58.545Z
Learning: Applies to app/AppContainer.tsx : Use AppContainer.tsx as the root navigation container that switches between authentication states

Applied to files:

  • app/views/JitsiMeetView/index.tsx
📚 Learning: 2026-04-22T22:57:58.545Z
Learnt from: CR
Repo: RocketChat/Rocket.Chat.ReactNative PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-04-22T22:57:58.545Z
Learning: Applies to app/index.tsx : Set up Redux provider, theme, navigation, and notifications in app/index.tsx

Applied to files:

  • app/views/JitsiMeetView/index.tsx
  • app/containers/MessageComposer/hooks/useEmojiKeyboard.tsx
  • app/containers/ActionSheet/ActionSheet.tsx
📚 Learning: 2026-04-22T22:57:58.545Z
Learnt from: CR
Repo: RocketChat/Rocket.Chat.ReactNative PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-04-22T22:57:58.545Z
Learning: Use React 19 with React Native 0.79 and Expo 53

Applied to files:

  • app/views/JitsiMeetView/index.tsx
  • app/containers/MessageComposer/hooks/useEmojiKeyboard.tsx
📚 Learning: 2026-04-04T21:34:30.268Z
Learnt from: Rohit3523
Repo: RocketChat/Rocket.Chat.ReactNative PR: 6808
File: app/containers/MessageComposer/components/ComposerInput.tsx:337-341
Timestamp: 2026-04-04T21:34:30.268Z
Learning: In Rocket.Chat React Native, the markdown composer's autocomplete insertion (ComposerInput.tsx onAutocompleteItemSelected) does NOT need to add a space between an underscore italic delimiter `_` and a `@` or `#` mention sigil. The web platform (using the same rocket.chat/message-parser) does not add such a space either, so parity with web is the correct behavior. The previous learning about "space between `_` and mention sigil" applies only to test/story file content strings, not to the composer's runtime autocomplete behavior.

Applied to files:

  • app/containers/MessageComposer/hooks/useEmojiKeyboard.tsx
📚 Learning: 2026-04-22T22:57:58.545Z
Learnt from: CR
Repo: RocketChat/Rocket.Chat.ReactNative PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-04-22T22:57:58.545Z
Learning: Applies to **/*.{ts,tsx} : Support iOS 13.4+ and Android 6.0+ as minimum target platforms

Applied to files:

  • app/containers/MessageComposer/hooks/useEmojiKeyboard.tsx
  • app/containers/ActionSheet/ActionSheet.tsx
📚 Learning: 2026-04-22T22:57:58.545Z
Learnt from: CR
Repo: RocketChat/Rocket.Chat.ReactNative PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-04-22T22:57:58.545Z
Learning: Applies to app/theme.tsx : Define theming context in app/theme.tsx

Applied to files:

  • app/containers/MessageComposer/hooks/useEmojiKeyboard.tsx
📚 Learning: 2026-04-22T22:57:58.545Z
Learnt from: CR
Repo: RocketChat/Rocket.Chat.ReactNative PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-04-22T22:57:58.545Z
Learning: Applies to app/lib/hooks/useResponsiveLayout/**/*.{ts,tsx} : Implement responsive layouts using useResponsiveLayout hook to switch between master-detail on tablets and single stack on phones

Applied to files:

  • app/containers/ActionSheet/ActionSheet.tsx
🔇 Additional comments (7)
app/views/JitsiMeetView/index.tsx (1)

5-7: Import update looks good.

No concerns in this changed segment; this is a clean import adjustment.

app/containers/ActionSheet/BottomSheetContent.tsx (1)

38-43: Looks good.

Using the safe-area bottom inset as the only bottom padding source matches the edge-to-edge refactor and keeps spacing tied to the device inset.

app/containers/MessageComposer/hooks/useEmojiKeyboard.tsx (1)

79-98: Looks good.

The new bottom-based notch handling keeps keyboard spacing consistent across platforms and lines up with the safe-area driven refactor.

app/containers/ActionSheet/useActionSheetDetents.test.tsx (1)

41-71: Looks good.

The updated expectations now match the hook's no-bottomInset formula.

app/containers/ActionSheet/ActionSheet.tsx (1)

4-9: Looks good.

The new disableContentPanning wiring and iOS-only contentMinHeight behavior align with the updated detent and inset flow.

Also applies to: 79-92

app/views/DirectoryView/index.tsx (1)

172-185: Looks good.

Removing the explicit enableContentPanningGesture override keeps this screen aligned with the new ActionSheet default behavior.

android/gradle.properties (1)

48-51: Verify the host activity before enabling this flag.

edgeToEdgeEnabled only takes effect with ReactActivity; if the Android entry point uses a custom activity, this property will be ignored and the edge-to-edge change won't ship.

@github-actions

Copy link
Copy Markdown

@github-actions

Copy link
Copy Markdown

iOS Build Available

Rocket.Chat 4.74.0.109245

const numColumns = Math.trunc(parentWidth / EMOJI_BUTTON_SIZE);
const marginHorizontal = (parentWidth % EMOJI_BUTTON_SIZE) / 2;
const contentPaddingBottom = bottomSheet ? Math.max(0, MIN_BOTTOM_SHEET_BREATHING_ROOM - bottom) : undefined;
const contentPaddingBottom = bottomSheet ? MIN_BOTTOM_SHEET_BREATHING_ROOM : undefined;

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Removed Math.max because we do a fixed value addition in MIN_BOTTOM_SHEET_BREATHING_ROOM which is always > 0

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

but you also removed the MIN_BOTTOM_SHEET_BREATHING_ROOM - bottom ... is it not necessary? why?

Comment thread app/views/DirectoryView/styles.ts
Comment thread app/views/UserNotificationPreferencesView/ListPicker.tsx
Comment thread app/views/StatusView/ClearAfterPicker/ClearAfterSheetContent.tsx
@github-actions

github-actions Bot commented Jul 1, 2026

Copy link
Copy Markdown

@github-actions

github-actions Bot commented Jul 1, 2026

Copy link
Copy Markdown

iOS Build Available

Rocket.Chat 4.75.0.109253

Comment thread app/containers/markdown/Markdown.test.tsx
@github-actions

github-actions Bot commented Jul 1, 2026

Copy link
Copy Markdown

@github-actions

github-actions Bot commented Jul 2, 2026

Copy link
Copy Markdown

iOS Build Available

Rocket.Chat 4.75.0.109274

Comment thread app/views/LanguageView/index.tsx Outdated
const numColumns = Math.trunc(parentWidth / EMOJI_BUTTON_SIZE);
const marginHorizontal = (parentWidth % EMOJI_BUTTON_SIZE) / 2;
const contentPaddingBottom = bottomSheet ? Math.max(0, MIN_BOTTOM_SHEET_BREATHING_ROOM - bottom) : undefined;
const contentPaddingBottom = bottomSheet ? MIN_BOTTOM_SHEET_BREATHING_ROOM : undefined;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

but you also removed the MIN_BOTTOM_SHEET_BREATHING_ROOM - bottom ... is it not necessary? why?

@Rohit3523

Copy link
Copy Markdown
Member Author

Regarding latest comment

The bottom sheet already handle safe area internally, - bottom was double-correcting and collapsing the breathing room on notch devices.
Screenshot 2026-07-03 at 3 32 09 AM

@github-actions

github-actions Bot commented Jul 3, 2026

Copy link
Copy Markdown

@github-actions

github-actions Bot commented Jul 3, 2026

Copy link
Copy Markdown

iOS Build Available

Rocket.Chat 4.75.0.109280

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants