Skip to content

[Draft] Display Show history button in Concierge side panel on native#92133

Draft
MelvinBot wants to merge 1 commit into
mainfrom
claude-conciergeSidePanelNative
Draft

[Draft] Display Show history button in Concierge side panel on native#92133
MelvinBot wants to merge 1 commit into
mainfrom
claude-conciergeSidePanelNative

Conversation

@MelvinBot
Copy link
Copy Markdown
Contributor

Explanation of Change

This is a draft PR sharing the proposed code diff for issue #89571 so the C+ team can test the changes ahead of approval.

The native Concierge entry-points (SidePanelButton, useOpenConciergeAnywhere) bypass the side-panel flow and open Concierge as a regular report screen. Because <SidePanel/> is never mounted on native (RootNavigatorExtraContent/index.native.tsx returns null), the IsInSidePanelContext.Provider never executes, useIsInSidePanel() always returns false, and ShowPreviousMessagesButton early-returns.

Changes:

  • Mount <SidePanel/> on native via RootNavigatorExtraContent/index.native.tsx (mirroring the web variant). The component self-guards on sidePanelNVP, so it is inert until openSidePanel() is called.
  • Delegate SidePanelButton/index.native.tsx to SidePanelButtonBase, so the help button calls openSidePanel() like web.
  • Align useOpenConciergeAnywhere/index.native.tsx with the web variant (openSidePanel() + isInSidePanel: true).
  • Pass shouldUseModalPaddingStyle={false} to the native SidePanelModal to remove double padding between Modal and ReportScreen (as noted by paulnjs in the issue thread).

Context for reviewers: dukenv0307 flagged in the issue that PR #76277 intentionally removed the native side panel due to edge cases, and mhawryluk confirmed the mobile implementation was deferred until the feature proved useful on web. Mounting <SidePanel/> on native re-enables that infrastructure. Please verify whether re-introducing it is desired before merging.

Fixed Issues

$ #89571
PROPOSAL: #89571 (comment)

Tests

  1. Sign in to an account that has a long Concierge history (prior sessions with messages).
  2. Tap the Concierge help button (top-right) on Android or iOS native.
  3. Verify Concierge opens inside a right-docked side panel (not as a full-screen report).
  4. Verify the "Show history" button appears at the top of the Concierge thread.
  5. Tap "Show history" and verify older messages from prior sessions load.
  6. Close the side panel (back button on Android / swipe-right on iOS) and re-open it; verify the session resets and only the new session messages are visible until "Show history" is tapped again.
  7. From the search router on native, trigger the "Ask Concierge" flow and verify Concierge opens in the side panel.
  • Verify that no errors appear in the JS console

Offline tests

Same as Tests, performed offline. Verify the side panel opens, the empty list renders, and no errors appear.

QA Steps

Same as Tests.

  • Verify that no errors appear in the JS console

PR Author Checklist

  • I linked the correct issue in the ### Fixed Issues section above

Screenshots/Videos

Android: Native
iOS: Native
MacOS: Chrome / Safari

- Mount SidePanel on native via RootNavigatorExtraContent so IsInSidePanelContext is provided
- Delegate native SidePanelButton to SidePanelButtonBase so the help button opens the side panel
- Align native useOpenConciergeAnywhere with web (openSidePanel + isInSidePanel: true)
- Disable Modal padding on the native SidePanel modal to avoid double padding

Co-authored-by: cretadn22 <cretadn22@users.noreply.github.com>
@codecov
Copy link
Copy Markdown

codecov Bot commented May 30, 2026

Codecov Report

✅ Changes either increased or maintained existing code coverage, great job!

Files with missing lines Coverage Δ
...igation/RootNavigatorExtraContent/index.native.tsx 100.00% <100.00%> (ø)
...ponents/SidePanel/SidePanelButton/index.native.tsx 100.00% <100.00%> (ø)
...ponents/SidePanel/SidePanelModal/index.android.tsx 0.00% <ø> (ø)
.../components/SidePanel/SidePanelModal/index.ios.tsx 0.00% <ø> (ø)
...rc/hooks/useOpenConciergeAnywhere/index.native.tsx 66.66% <60.00%> (+66.66%) ⬆️
... and 225 files with indirect coverage changes

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.

2 participants