Skip to content

Conversation

@OtavioStasiak
Copy link
Contributor

@OtavioStasiak OtavioStasiak commented Dec 30, 2025

Proposed changes

Issue(s)

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

How to test or reproduce

Screenshots

Types of changes

  • Bugfix (non-breaking change which fixes an issue)
  • Improvement (non-breaking change which improves a current function)
  • New feature (non-breaking change which adds functionality)
  • Documentation update (if none of the other choices apply)

Checklist

  • I have read the CONTRIBUTING doc
  • I have signed the CLA
  • Lint and unit tests pass locally with my changes
  • I have added tests that prove my fix is effective or that my feature works (if applicable)
  • I have added necessary documentation (if applicable)
  • Any dependent changes have been merged and published in downstream modules

Further comments

Summary by CodeRabbit

  • New Features

    • Added translation control options for browser settings labels.
  • Changes

    • Simplified alert notification settings by removing a display type option.

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Dec 30, 2025

Walkthrough

Two view files were modified: a List.Section with a ListPicker was removed from AccessibilityAndAppearanceView while updating its value fallback operator, and two new optional boolean props (translateTitle, translateSubtitle) were added to the List.Radio component interface in DefaultBrowserView.

Changes

Cohort / File(s) Summary
AccessibilityAndAppearanceView Updates
app/views/AccessibilityAndAppearanceView/index.tsx
Removed a complete List.Section containing a ListPicker for alert display type. Updated the remaining ListPicker's value fallback from nullish coalescing (??) to logical OR (||) operator.
DefaultBrowserView Component Props
app/views/DefaultBrowserView/index.tsx
Added two new optional boolean props to List.Radio component interface: translateTitle and translateSubtitle, both initialized to false. Controls translation behavior for radio item titles and subtitles.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

Poem

🐰 A section hops away, a logical twist,
Two translation toggles—nothing missed!
Props spring to life with boolean grace,
UI refinements find their place.

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The PR title accurately reflects the main changes: removal of a duplicated picker in AccessibilityAndAppearanceView and addition of translation control props to DefaultBrowserView.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix.translation_and_duplicated_picker

📜 Recent review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Jira integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 6db5ffb and ce7dfe3.

📒 Files selected for processing (2)
  • app/views/AccessibilityAndAppearanceView/index.tsx
  • app/views/DefaultBrowserView/index.tsx
💤 Files with no reviewable changes (1)
  • app/views/AccessibilityAndAppearanceView/index.tsx
🧰 Additional context used
🧠 Learnings (2)
📓 Common learnings
Learnt from: OtavioStasiak
Repo: RocketChat/Rocket.Chat.ReactNative PR: 6499
File: app/containers/ServerItem/index.tsx:34-36
Timestamp: 2025-12-17T15:56:22.578Z
Learning: In the Rocket.Chat React Native codebase, for radio button components on iOS, include the selection state ("Selected"/"Unselected") in the accessibilityLabel instead of using accessibilityState={{ checked: hasCheck }}, because iOS VoiceOver has known issues with accessibilityRole="radio" + accessibilityState that prevent correct state announcement.
📚 Learning: 2025-12-17T15:56:22.578Z
Learnt from: OtavioStasiak
Repo: RocketChat/Rocket.Chat.ReactNative PR: 6499
File: app/containers/ServerItem/index.tsx:34-36
Timestamp: 2025-12-17T15:56:22.578Z
Learning: In the Rocket.Chat React Native codebase, for radio button components on iOS, include the selection state ("Selected"/"Unselected") in the accessibilityLabel instead of using accessibilityState={{ checked: hasCheck }}, because iOS VoiceOver has known issues with accessibilityRole="radio" + accessibilityState that prevent correct state announcement.

Applied to files:

  • app/views/DefaultBrowserView/index.tsx
⏰ 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). (1)
  • GitHub Check: ESLint and Test / run-eslint-and-test
🔇 Additional comments (1)
app/views/DefaultBrowserView/index.tsx (1)

95-96: Call I18n.t() explicitly before disabling automatic translation.

The titles 'In_app' and 'System_default' are valid i18n keys and should be translated. With translateTitle={false} and no explicit I18n.t() call, they display as raw strings instead of their translations (e.g., "In-app" in English, "In-App-Browser" in German).

Compare to Item.tsx which uses the correct pattern: title={I18n.t(title, { defaultValue: title })} followed by translateTitle={false}. Apply the same approach here.

Additionally, translateSubtitle={false} is unnecessary since no subtitle prop is passed.


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 and usage tips.

@OtavioStasiak OtavioStasiak had a problem deploying to experimental_android_build December 30, 2025 14:35 — with GitHub Actions Error
@OtavioStasiak OtavioStasiak had a problem deploying to experimental_android_build December 30, 2025 16:57 — with GitHub Actions Error
@OtavioStasiak OtavioStasiak requested a deployment to experimental_ios_build December 30, 2025 18:34 — with GitHub Actions Waiting
@OtavioStasiak OtavioStasiak temporarily deployed to experimental_android_build December 30, 2025 18:34 — with GitHub Actions Inactive
@OtavioStasiak OtavioStasiak temporarily deployed to official_android_build December 30, 2025 18:34 — with GitHub Actions Inactive
@OtavioStasiak OtavioStasiak requested a deployment to upload_experimental_android December 30, 2025 19:32 — with GitHub Actions Waiting
@github-actions
Copy link

Android Build Available

Rocket.Chat Experimental 4.68.0.107961

Internal App Sharing: https://play.google.com/apps/test/RQVpXLytHNc/ahAO29uNQNJTbC9wRZs5G6R4iJfO4Mc1b76ZoW5TkmbR78qWys2s9dMuSBVfjdRIjCS2YEJxssiAeztvFDxEa6cdRV

@github-actions
Copy link

iOS Build Available

Rocket.Chat 4.68.0.107960

@OtavioStasiak OtavioStasiak requested a deployment to upload_official_android December 30, 2025 20:25 — with GitHub Actions Waiting
@github-actions
Copy link

@diegolmello diegolmello merged commit 3315fb4 into develop Dec 30, 2025
94 of 141 checks passed
@diegolmello diegolmello deleted the fix.translation_and_duplicated_picker branch December 30, 2025 23:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants