You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Introduce the MenuItemEntity preset: a row whose leading element is an avatar rather than an icon, with a name as the title and (usually) an email or secondary line as the description. These sites are fewer but distinct — they use avatarID / iconAccountID / iconReportID rather than a static icon.
Work
Extend the composition API with any avatar-specific subcomponents needed — e.g. MenuItem.Avatar (type / size / fallback) — following the same context-driven pattern established in Phase 1.
Add the MenuItemEntity preset on top of the primitives so entity-row callers don't touch raw composition.
Migrate all applicable usages to the preset. Known avatar/entity call sites include:
ConfirmDelegatePage
DelegatorList
VacationDelegateMenuItem
InvoiceSenderField
TaskView
ScheduleCallConfirmationPage
DynamicNewTaskPage
(Sweep for other avatarID / iconAccountID / iconReportIDMenuItem sites and migrate those too.)
Add to the Storybook comparison gallery — old config API vs. new MenuItemEntity preset side by side, so visual parity is verifiable in review (the MenuItemComparison section from Phase 1).
Notes
Incremental, opt-in migration — the legacy <MenuItem … /> config API stays untouched.
Pure component refactor: verify each migrated row renders identically to its old output; no behavioral change.
The solution for this issue has been 🚀 deployed to production 🚀 in version 9.4.68-1 and is now subject to a 7-day regression period 📆. Here is the list of pull requests that resolve this issue:
If no regressions arise, payment will be issued on 2026-09-09. 🎊
The following checklist (instructions) will need to be completed before the issue can be closed. Please copy/paste the Contributor+ Checklist from here into a new comment on this GH and complete it. If you have the K2 extension, you can simply click: [this button]. If no checklist is needed for this issue, you can click: [no checklist button]
Activity
war-in commentedon Aug 25, 2026
@MelvinBot assign @Pujan92
MelvinBot commentedon Aug 25, 2026
🤖 Done — assigned
Pujan92to this issue.view run
[-]MenuItem decomposition Phase 2 — MenuItemEntity preset (avatar rows)[/-][+][Due for payment 2026-09-09] MenuItem decomposition Phase 2 — MenuItemEntity preset (avatar rows)[/+]melvin-bot commentedon Sep 2, 2026
@Pujan92
The solution for this issue has been 🚀 deployed to production 🚀 in version 9.4.68-1 and is now subject to a 7-day regression period 📆. Here is the list of pull requests that resolve this issue:
If no regressions arise, payment will be issued on 2026-09-09. 🎊
The following checklist (instructions) will need to be completed before the issue can be closed. Please copy/paste the Contributor+ Checklist from here into a new comment on this GH and complete it. If you have the K2 extension, you can simply click: [this button]. If no checklist is needed for this issue, you can click: [no checklist button]
melvin-bot commentedon Sep 7, 2026
@Pujan92 Eep! 4 days overdue now. Issues have feelings too...
melvin-bot commentedon Sep 8, 2026
Triggered auto assignment to @mallenexpensify (
Awaiting Payment)melvin-bot commentedon Sep 8, 2026
Payment Summary
Resolving PRs:
[No QA] MenuItem decomposition - usages with avatars #98862
Reviewer: @Pujan92 owed $250 via NewDot
Contributor: @war-in does not require payment (Contractor)
BugZero Checklist (@mallenexpensify)
war-in commentedon Sep 9, 2026
@roryabraham this one is finished and ready for payment
roryabraham commentedon Sep 9, 2026
@mallenexpensify ready for payment
mallenexpensify commentedon Sep 10, 2026
Payment Summary
Contributor+: @Pujan92 due $250 via NewDot
Guessing a test case isn't needed
twisterdotcom commentedon Sep 11, 2026
$250 approved for @Pujan92 in Report ID: R00ETnEtoTkU.
Zapier Logs
Run ID: 00040eee-8b9c-a18d-ef85-337df46e92a4SO: https://stackoverflowteams.com/c/expensify/questions/7582