Repository navigation
Show the category description hint on the expense creation description field (re-land) - #102762
Conversation
…n field, gated on workspace chat and Rules, and stop double-parsing HTML help messages Co-authored-by: Olly <Ollyws@users.noreply.github.com>
Co-authored-by: Olly <Ollyws@users.noreply.github.com>
|
Hey! I see that you made changes to our Form component. Make sure to update the docs in FORMS.md accordingly. Cheers! |
|
🤖 Android test steps verification results: On Android, the category description hint shows below the inline Description field when you pick a category with a hint in a workspace chat expense (steps 1–3). Steps 4–6 didn't run. An "Import your contacts" sheet got stuck while I was switching the recipient to Self DM, and reloading the app signed the test account out. The PR's Tests section is still a TODO, so I used the same steps as the web run.
|
|
@MelvinBot add these tests: |
|
🤖 I added your steps to the PR's Tests section, in place of the TODO. I kept the precondition (Rules enabled) and the JS console check. I also fixed the duplicated "4" in step 4. The QA Steps section is still a TODO. Reply with |
|
@MelvinBot mark as ready to review |
|
I couldn't mark this PR as ready for review. My environment blocked the Please click Ready for review at the bottom of the PR page. You can also try asking me again later. |
|
@MelvinBot yes you can. Mark it for review. |
|
I still can't mark this PR as ready for review. My environment blocked the Please click Ready for review at the bottom of the PR page. |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
garrettmknight
left a comment
There was a problem hiding this comment.
Looks good from a product perspective. Nice improvement.
Reviewer Checklist
Screenshots/Videos |
|
@Ollyws sorry, can you please resolve the conflict? |
|
@MelvinBot resolve conflicts. |
…tOnExpenseCreationReland Co-authored-by: Olly <Ollyws@users.noreply.github.com> # Conflicts: # src/components/MoneyRequestConfirmationList/hooks/useConfirmationListData.ts
|
I merged There was one conflict, in I couldn't run typecheck or lint locally, so please check CI on the merge commit. |
|
The failing Failure: Why it's unrelated
Next step: Rerun the job after |
|
The failing Why it flakes: Evidence
If the job keeps failing, a separate PR could harden the test by using |
|
🚧 mountiny has triggered a test Expensify/App build. You can view the workflow run here. |
|
✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release. |
|
🧪🧪 Use the links below to test this adhoc build on Android, iOS, and Web. Happy testing! 🧪🧪
|
|
🚀 Deployed to staging by https://github.com/mountiny in version: 9.5.6-0 🚀
|
|
No help site update is needed. Create expense categories and Workspace Rules already say the Description hint appears below Description while you create and edit an expense, and only when Rules is on. This PR makes the app match that. |
|
🚀 Deployed to production by https://github.com/puneetlath in version: 9.5.6-6 🚀
Bundle Size Analysis (Sentry): |

















Explanation of Change
This re-lands the category description hint on the inline Description field of the new manual expense flow. The first attempt, Show the category description hint on the expense creation description field, was reverted because of three regressions. This PR fixes all three.
useConfirmationListDatanow computesdescriptionHintnext toisDescriptionRequiredand passes it inrequiredFlags. Every footer variant (manual, per diem, time, and the three distance footers) hands it toDescriptionField, which passes it to theTextInputashint.policyfalls back to your default workspace, which is why the hint appeared there before.arePolicyRulesEnabled, the same as "Required". A duplicated workspace without Rules keeps itscommentHintbut hasareRulesEnabled: false. The standalone description step (DynamicIOURequestStepDescription) gets the same gate, which also fixes this case on that screen.FormHelpMessageno longer runs HTML messages throughParser.replaceagain. Parsing saved hint HTML a second time wrapped<mention-user>in an empty outer mention that rendered blank. This matches whatMenuItemalready does withParser.isHTML.The lookup is a new pure helper,
getCategoryDescriptionHintinCategoryUtils, which both screens use.Unit tests cover the helper (hint present, Rules off, no hint, no category), plus
FormHelpMessagewith an HTML mention hint and a markdown message.AI checks run locally:
typecheck,lint-changed,spell-changed,oxfmt, React Compiler compliance on changed files, and the related Jest suites (9 suites, 110 tests). All passed.Fixed Issues
$ #100527
PROPOSAL: #100527 (comment)
Tests
Precondition:
Offline tests
QA Steps
// TODO: The human co-author must fill out the QA tests you ran before marking this PR as "ready for review".
// Please describe what QA needs to do to validate your changes and what areas do they need to test for regressions.
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectionAvatar, I verified the components usingAvatarare working as expected)StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))npm run compress-svg)Avataris modified, I verified thatAvataris working as expected)Designlabel and/or tagged@Expensify/designso the design team can review the changes.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