[BYOC] Bulk assign cards - Update assign card flow in RHP#77931
[BYOC] Bulk assign cards - Update assign card flow in RHP#77931carlosmiceli merged 54 commits intobyoc-bulk-card-assign-r1from
Conversation
|
One thing I noticed during testing is, sometimes Screen.Recording.2025-12-18.at.16.36.16.mov |
|
Not related to this PR but I think it's good to fix it (if you think it's under the scope of this PR), we have similiar issue here, but looks like they don't fix it in every other places. Bug: App crashes when reloading card details bug
Screen.Recording.2025-12-18.at.16.46.11.mov |
Co-authored-by: Hans <hungvu193@users.noreply.github.com>
|
Another thing I ,guess we should need to fix, user can still assign the card when the card connection is broken:
Screen.Recording.2025-12-18.at.22.54.27.mov |
Co-authored-by: Hans <hungvu193@users.noreply.github.com>
…leton Implement loading skeleton for Company Cards table
|
Bug: Card name is overflow when it's too long
Screen.Recording.2025-12-19.at.00.06.06.mov |
|
🚧 @dylanexpensify 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, Desktop, and Web. Happy testing! 🧪🧪
|
| @@ -51,7 +53,10 @@ function ConfirmationStep({policyID, feed, backTo}: ConfirmationStepProps) { | |||
| const [cardFeeds] = useCardFeeds(policyID); | |||
|
|
|||
| const data = assignCard?.data; | |||
There was a problem hiding this comment.
I don't think this constant is valuable. I would update everything to reference assigneCard?.data (which some places do already).
| const backTo = route?.params?.backTo; | ||
| if (backTo) { | ||
| Navigation.goBack(backTo); | ||
| return; | ||
| } |
There was a problem hiding this comment.
There is a pretty big refactoring underway to remove backTo. I don't think the necessary foundation is in place yet to refactor this, so it will probably need to remain as-is for now.
| onPress={() => { | ||
| if (!assignedCard) { | ||
| onAssignCard(cardIdentifier); | ||
| return; | ||
| } | ||
|
|
||
| if (!assignedCard?.accountID || !assignedCard?.fundID) { | ||
| return; | ||
| } | ||
|
|
||
| return Navigation.navigate( | ||
| ROUTES.WORKSPACE_COMPANY_CARD_DETAILS.getRoute( | ||
| policyID, | ||
| assignedCard.cardID.toString(), | ||
| getCompanyCardFeedWithDomainID(assignedCard?.bank as CompanyCardFeed, assignedCard.fundID), | ||
| ), | ||
| ); | ||
| }} |
There was a problem hiding this comment.
Can you please move this function to be declared outside of return ()?
| return ( | ||
| <WorkspaceCompanyCardsFeedAddedEmptyPage | ||
| shouldShowGBDisclaimer={shouldShowGBDisclaimer} | ||
| handleAssignCard={onAssignCard} |
There was a problem hiding this comment.
All other places in this PR the code is andleAssignCard={() => onAssignCard()}. Is this OK like this? I assume it's passing a cardID to the callback and the other references are specifically NOT passing a cardID?
|
♻️ Checking comments / issues reported by @hungvu193 & @tgolen and addressing them... |
|
🐛 BUG: Somehow this card ended up with an empty Card name field (kinda). I'm not really sure how to reproduce this as this is just kinda how the feed loaded in for me. CardNameEmptySomehow.mp4 |
|
🐛 BUG: Clicking update card for a card after assigning doesn't result in an updated timestamp Screen.Recording.2025-12-18.at.4.19.36.PM.mov |
|
🐛 BUG: Going offline while on plaid card feed and navigating to commercial card feeds throws an Screen.Recording.2025-12-18.at.4.21.42.PM.mov |
|
🐛 BUG: When I simulate failed network requests, the assign button doesn't do anything. NothingHappensWhenRequestFails.mp4 |
|
🧼 Polish / 🐛 Bug: There are no slide transitions on the RHP screens, the screens just change instantly. NoTransitions.mp4 |
|
🧼 Polish: transition for unassigning card can be quicker/more seamless. Currently it disappears and reappears. Screen.Recording.2025-12-18.at.4.25.09.PM.mov |
|
🧼 Polish: Card icon reloads for every kind of filtering transition: IconReloading.mp4cc @chrispader |
70531b6
into
byoc-bulk-card-assign-r1
|
🚀 Deployed to staging by https://github.com/carlosmiceli in version: 9.2.86-0 🚀
|
|
🚀 Deployed to production by https://github.com/marcaaron in version: 9.2.86-4 🚀
|


Explanation of Change
New card assignment flow:
Fixed Issues
$ #77796
PROPOSAL:
Tests
Offline tests
QA Steps
// 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