Skip to content

Conversation

@dougfabris
Copy link
Member

@dougfabris dougfabris commented Nov 7, 2025

Proposed changes (including videos or screenshots)

Important

This change is under feature preview

Issue(s)

Steps to test or reproduce

Further comments

VGA-20

Summary by CodeRabbit

Bug Fixes

  • Fixed voice call button not displaying in navbar on mobile devices. May require enabling Enhanced navigation experience in feature previews to verify the fix.

@dougfabris dougfabris requested a review from a team as a code owner November 7, 2025 23:27
@changeset-bot
Copy link

changeset-bot bot commented Nov 7, 2025

🦋 Changeset detected

Latest commit: 5de10ff

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 41 packages
Name Type
@rocket.chat/meteor Patch
@rocket.chat/core-typings Patch
@rocket.chat/rest-typings Patch
@rocket.chat/uikit-playground Patch
@rocket.chat/api-client Patch
@rocket.chat/apps Patch
@rocket.chat/core-services Patch
@rocket.chat/cron Patch
@rocket.chat/ddp-client Patch
@rocket.chat/freeswitch Patch
@rocket.chat/fuselage-ui-kit Patch
@rocket.chat/gazzodown Patch
@rocket.chat/http-router Patch
@rocket.chat/livechat Patch
@rocket.chat/model-typings Patch
@rocket.chat/ui-avatar Patch
@rocket.chat/ui-client Patch
@rocket.chat/ui-contexts Patch
@rocket.chat/web-ui-registration Patch
@rocket.chat/account-service Patch
@rocket.chat/authorization-service Patch
@rocket.chat/ddp-streamer Patch
@rocket.chat/omnichannel-transcript Patch
@rocket.chat/presence-service Patch
@rocket.chat/queue-worker Patch
@rocket.chat/stream-hub-service Patch
@rocket.chat/federation-matrix Patch
@rocket.chat/license Patch
@rocket.chat/media-calls Patch
@rocket.chat/omnichannel-services Patch
@rocket.chat/pdf-worker Patch
@rocket.chat/presence Patch
rocketchat-services Patch
@rocket.chat/models Patch
@rocket.chat/network-broker Patch
@rocket.chat/omni-core-ee Patch
@rocket.chat/mock-providers Patch
@rocket.chat/ui-video-conf Patch
@rocket.chat/ui-voip Patch
@rocket.chat/instance-status Patch
@rocket.chat/omni-core Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@dionisio-bot
Copy link
Contributor

dionisio-bot bot commented Nov 7, 2025

Looks like this PR is ready to merge! 🎉
If you have any trouble, please check the PR guidelines

@dougfabris dougfabris added this to the 7.13.0 milestone Nov 7, 2025
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Nov 7, 2025

Walkthrough

The changes fix a missing voice call button in the navbar on mobile screens by introducing a callItem prop to navigation control components and wiring it through a useMediaCallAction hook. A changeset documents the fix.

Changes

Cohort / File(s) Summary
Changeset Documentation
\.changeset/tall-sloths-exercise\.md
Documents patch bump for @rocket.chat/meteor with fix description for missing voice call button on mobile with Enhanced navigation enabled.
Voice Call Integration
apps/meteor/client/NavBarV2/NavBarControls/NavBarControlsWithData\.tsx
Imports useMediaCallAction hook, constructs callItem from call action data, and propagates it to downstream components (NavbarControlsWithCall and NavBarControlsMenu) to restore call button visibility on small screens.
Call Button Display
apps/meteor/client/NavBarV2/NavBarControls/NavBarControlsMenu\.tsx
Adds callItem destructuring from props and introduces a new Voice_Call section containing the call item, with conditional Omnichannel section and filtered sections array to remove empty entries.

Sequence Diagram

sequenceDiagram
    participant NavBarControlsWithData
    participant useMediaCallAction as useMediaCallAction Hook
    participant NavBarControlsMenu
    participant NavbarControlsWithCall
    
    NavBarControlsWithData->>useMediaCallAction: Get media call action
    useMediaCallAction-->>NavBarControlsWithData: Return callAction (if available)
    
    alt callAction exists
        NavBarControlsWithData->>NavBarControlsWithData: Map callAction to callItem<br/>(id, icon, content, onClick)
    else No callAction
        NavBarControlsWithData->>NavBarControlsWithData: callItem = undefined
    end
    
    alt isCallEnabled = true
        NavBarControlsWithData->>NavbarControlsWithCall: Pass callItem + omnichannel items
        NavbarControlsWithCall-->>NavBarControlsWithData: Render with call button
    else isCallEnabled = false
        NavBarControlsWithData->>NavBarControlsMenu: Pass callItem + omnichannel items
        NavBarControlsMenu->>NavBarControlsMenu: Create Voice_Call section with callItem
        NavBarControlsMenu->>NavBarControlsMenu: Filter to remove empty sections
        NavBarControlsMenu-->>NavBarControlsWithData: Render menu with call button
    end
Loading

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

  • NavBarControlsWithData.tsx: Verify useMediaCallAction hook usage and the callItem mapping logic correctly converts action data to menu item structure
  • NavBarControlsMenu.tsx: Confirm the new Voice_Call section conditional rendering and section filtering logic maintains backward compatibility with existing Omnichannel behavior

Possibly related PRs

  • #37155: Modifies the same NavBarV2 components to restore call button visibility by replacing voipItems with a new callItem and wiring the media call action hook.

Suggested labels

stat: ready to merge, stat: QA assured

Suggested reviewers

  • tassoevan
  • aleksandernsilva

Poem

🐰 A voice call button, hidden away,
On mobile screens, it couldn't stay—
But now with hooks and props so bright,
The call menu shines in navbar's light!
Small screens rejoice, the fix is here! 📱✨

Pre-merge checks and finishing touches

✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The pull request title directly addresses the main change: fixing the missing call button when Enhanced Navigation is enabled on small screens.
Linked Issues check ✅ Passed The code changes successfully address the linked issue VGA-20 by propagating the callItem through NavBarControlsWithData and exposing it in both NavBarControlsMenu and NavbarControlsWithCall components to display the voice call button on mobile.
Out of Scope Changes check ✅ Passed All changes are scoped to implementing the voice call button display fix; no unrelated modifications to other features or components were introduced.
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/missingCallItem

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.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

📜 Review details

Configuration used: CodeRabbit 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 20490af and eacb20a.

📒 Files selected for processing (3)
  • .changeset/tall-sloths-exercise.md (1 hunks)
  • apps/meteor/client/NavBarV2/NavBarControls/NavBarControlsMenu.tsx (1 hunks)
  • apps/meteor/client/NavBarV2/NavBarControls/NavBarControlsWithData.tsx (4 hunks)
🧰 Additional context used
🧬 Code graph analysis (1)
apps/meteor/client/NavBarV2/NavBarControls/NavBarControlsWithData.tsx (1)
packages/ui-voip/src/index.ts (1)
  • useMediaCallAction (5-5)
🪛 LanguageTool
.changeset/tall-sloths-exercise.md

[style] ~6-~6: Consider a more concise word here.
Context: ...navigation experience` feature preview, in order to check it you need to enabled it

(IN_ORDER_TO_PREMIUM)

⏰ 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: 🚀 Notify external services - draft
  • GitHub Check: CodeQL-Build
🔇 Additional comments (7)
apps/meteor/client/NavBarV2/NavBarControls/NavBarControlsMenu.tsx (3)

12-12: LGTM!

The optional callItem prop is properly typed and aligns with the pattern used for omnichannelItems.


15-23: LGTM!

The Voice_Call section is correctly implemented following the existing pattern used for the Omnichannel section. The conditional inclusion of callItem ensures the section only appears when the call action is available.


28-32: LGTM!

The filtering logic correctly removes empty sections and the early return prevents rendering an empty menu, ensuring a clean UI when neither voice call nor omnichannel items are available.

apps/meteor/client/NavBarV2/NavBarControls/NavBarControlsWithData.tsx (3)

2-2: LGTM!

The useMediaCallAction hook is correctly imported and called at the top level, following React hooks best practices.

Also applies to: 17-17


40-47: LGTM!

The callItem construction correctly maps the callAction properties to the GenericMenuItemProps structure, with proper conditional handling to return undefined when no call action is available.


73-76: callItem prop is correctly accepted and passed through the component chain.

The verification confirms that NavbarControlsWithCall accepts the callItem prop through its NavBarControlsMenuProps type definition (line 11 of NavBarControlsWithCall.tsx). The prop is forwarded via ...props to NavBarControlsMenu, which explicitly destructures and uses it to populate the Voice_Call menu section. The prop typing is consistent across all three components and properly handles the optional case.

.changeset/tall-sloths-exercise.md (1)

1-5: LGTM!

The changeset header and description correctly document this patch-level bug fix for the missing voice call button on mobile screens.

@codecov
Copy link

codecov bot commented Nov 7, 2025

Codecov Report

❌ Patch coverage is 42.85714% with 4 lines in your changes missing coverage. Please review.
✅ Project coverage is 68.11%. Comparing base (511a59e) to head (5de10ff).
⚠️ Report is 1 commits behind head on develop.

Additional details and impacted files

Impacted file tree graph

@@             Coverage Diff             @@
##           develop   #37449      +/-   ##
===========================================
- Coverage    68.14%   68.11%   -0.03%     
===========================================
  Files         3364     3364              
  Lines       115749   115755       +6     
  Branches     20907    20910       +3     
===========================================
- Hits         78874    78846      -28     
- Misses       34183    34216      +33     
- Partials      2692     2693       +1     
Flag Coverage Δ
e2e 57.51% <42.85%> (+0.03%) ⬆️
unit 72.12% <ø> (-0.07%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@ggazzo ggazzo added the stat: QA assured Means it has been tested and approved by a company insider label Nov 10, 2025
@dionisio-bot dionisio-bot bot added the stat: ready to merge PR tested and approved waiting for merge label Nov 10, 2025
@ggazzo ggazzo merged commit 7b176ff into develop Nov 10, 2025
61 of 62 checks passed
@ggazzo ggazzo deleted the fix/missingCallItem branch November 10, 2025 15:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

stat: QA assured Means it has been tested and approved by a company insider stat: ready to merge PR tested and approved waiting for merge

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants