Implement system message for card freeze and unfreeze actions#85016
Implement system message for card freeze and unfreeze actions#85016MariaHCD merged 5 commits intoExpensify:mainfrom
Conversation
…ze-systemmessage # Conflicts: # src/pages/inbox/report/PureReportActionItem.tsx
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 68bfc12949
ℹ️ 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".
| } else if (action.actionName === CONST.REPORT.ACTIONS.TYPE.CARD_FROZEN || action.actionName === CONST.REPORT.ACTIONS.TYPE.CARD_UNFROZEN) { | ||
| children = ( | ||
| <ReportActionItemBasicMessage message=""> | ||
| <RenderHTML html={`<comment><muted-text>${getReportActionHtml(action)}</muted-text></comment>`} /> |
There was a problem hiding this comment.
Render fallback text for empty card freeze message arrays
This branch renders card freeze/unfreeze actions from getReportActionHtml(action), but that helper only reads the first entry of action.message; when the backend sends these actions with message: [] and only originalMessage.html (the scenario covered by the new tests), this produces an empty <muted-text> block so the visible system message is blank. In practice, users will see an empty action row instead of the freeze/unfreeze notice unless the message array is populated.
Useful? React with 👍 / 👎.
Codecov Report❌ Looks like you've decreased code coverage for some files. Please write tests to increase, or at least maintain, the existing level of code coverage. See our documentation here for how to interpret this table.
|
Reviewer Checklist
Screenshots/VideosAndroid: HybridAppAndroid: mWeb ChromeiOS: HybridAppiOS: mWeb SafariMacOS: Chrome / Safari |
|
🚧 @MariaHCD has triggered a test Expensify/App build. You can view the workflow run here. |
|
🧪🧪 Use the links below to test this adhoc build on Android, iOS, and Web. Happy testing! 🧪🧪
|
|
✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release. |
|
🚀 Deployed to staging by https://github.com/MariaHCD in version: 9.3.53-0 🚀
Bundle Size Analysis (Sentry): |
|
Yes, help site changes are needed. The card freeze/unfreeze feature exists in the app but was not documented in any help articles. I created a draft PR with the required updates: #87193 Changes made across three articles:
All button labels (Freeze card, Unfreeze card, Ask to unfreeze, Frozen) match the exact UI text from Please mark it as "Ready for review" when it is ready for review. |
|
🚀 Deployed to staging by https://github.com/MariaHCD in version: 9.3.53-0 🚀
Bundle Size Analysis (Sentry): |
|
🚀 Deployed to production by https://github.com/roryabraham in version: 9.3.53-7 🚀
|

Explanation of Change
Implement system message for card freeze and unfreeze actions
Fixed Issues
$ #84861
PROPOSAL:
Tests
Offline tests
QA Steps
Same.
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