Chat- Thread message is not shown in the detail page adding conditional parsing logic to ReportDetailsPage.tsx #81086
Conversation
|
@eVoloshchak Please copy/paste the Reviewer Checklist from here into a new comment on this PR and complete it. If you have the K2 extension, you can simply click: [this button] |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: ac6ad0f4c7
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
Codecov Report✅ Changes either increased or maintained existing code coverage, great job!
|
…ew per git actions revised lint error src/pgs/reportDetails.tsx line 749 included a sentrylabel per lint requirements clean lint at chnges and ran prettier
Reviewer Checklist
Screenshots/VideosAndroid: HybridAppScreen.Recording.2026-02-09.at.14.11.46.movAndroid: mWeb ChromeScreen.Recording.2026-02-09.at.14.12.31.moviOS: HybridAppScreen.Recording.2026-02-09.at.14.16.09.moviOS: mWeb SafariScreen.Recording.2026-02-09.at.14.13.08.movMacOS: Chrome / SafariScreen.Recording.2026-02-09.at.14.06.42.mov |
I just saw the last screen recording for MAC OS/ https://github.com/Expensify/App/pull/81086#:~:text=Screen.Recording.2026%2D02%2D09.at.14.06.42.mov |
nevermind I tested on main branch, looks like its expected behavior Phew, freaked me out. |
|
🚀 Deployed to staging by https://github.com/yuwenmemon in version: 9.3.16-0 🚀
|
|
🚀 Deployed to production by https://github.com/lakchote in version: 9.3.16-9 🚀
|

Explanation of Change
Modify ReportDetailsPage.tsx to match the conditional parsing logic
ADD_COMMENT threads: Don't parse preserves text exactly as
entered)
Group chats: Don't parse (preserves exact text)
Other cases: Parse with htmlToText() as before
Fixed Issues
$ #75979
PROPOSAL: #75979 (comment)
Tests
Testing Steps
Priority 1: Critical Tests
Test 1: Original Issue
Scenario: Thread detail page shows HTML as user typed it
Steps:
<div>test</div><div>test</div>(not "test")Test 2: Header and Detail Page Parity
Scenario: Thread header and detail page show identical text
Steps:
Test 3: System Messages
Scenario: System-generated HTML still parses correctly
Steps:
Test 4: Regular (Non-Thread) Chat Detail Pages
Scenario: Backward compatibility for normal chats
Steps:
Test 5: Group Chat Thread
Scenario: Group chat threads handle HTML correctly
Steps:
<b>Bold Test</b><b>Bold Test</b>correctlyPriority 2: Important Tests
Test 6: LHN (Left-Hand Navigation) Consistency
Scenario: Thread name in sidebar matches detail page
Steps:
<div>test</div>)Test 7: @Mention in Thread Detail
Scenario: Backend HTML (mentions) display correctly
Steps:
@Username(not raw HTML tags)Test 8: Non-ADD_COMMENT Thread
Scenario: System message threads parse HTML correctly
Steps:
Test 9: Workspace Report Detail Page
Scenario: Workspace contexts unaffected
Steps:
Priority 3: Edge Cases
Test 10: Complex Nested HTML
Scenario: Complex HTML edge cases
Steps:
<div><b>nested</b> tags</div>Test 11: Empty/Null Thread Name
Scenario: Edge case handling
Steps:
Test 12: Search Results Consistency
Scenario: Search results match detail page
Steps:
Offline tests
disconnected network while in production build
Navigate to staging.new.expensify.com
Open a chat
Send a message -
Long press and open reply thread
Go to thread header and open header page
QA Steps
"Same as tests"
// TODO: These must be filled out, or the issue title must include "[No QA]."
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectioncanBeMissingparam foruseOnyxtoggleReportand notonIconClick)src/languages/*files and using the translation methodSTYLE.md) were followedAvatar, I verified the components usingAvatarare working as expected)StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))npm run compress-svg)Avataris modified, I verified thatAvataris working as expected in all cases)Designlabel and/or tagged@Expensify/designso the design team can review the changes.ScrollViewcomponent to make it scrollable when more elements are added to the page.mainbranch was merged into this PR after a review, I tested again and verified the outcome was still expected according to theTeststeps.Screenshots/Videos
Android: Native
Android: mWeb Chrome
iOS: Native
iOS: mWeb Safari
MacOS: Chrome / Safari