-
Notifications
You must be signed in to change notification settings - Fork 2.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
create the Expensify card page #26915
Conversation
3093612
to
9d995fb
Compare
9d995fb
to
449b339
Compare
ba54c75
to
0ce9139
Compare
cc @grgia |
@narefyev91 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] |
0ce9139
to
760fcb3
Compare
@pac-guerreiro can you please fill checklist and record video - does this PR ready to be reviewed? |
426f347
to
9e92a54
Compare
Rebased to solve conflicts |
Reviewer Checklist
Screenshots/VideosWebwebmov.movMobile Web - Chromeandroid-web.movMobile Web - Safariios-web.movDesktopdesktop.moviOSios.movAndroidandroid.mov |
@joekaufmanexpensify Hey! Most of the logic working fine. During testing discovered a crash - if user will directly navigate to this page without either virtual or physical card - code will be broken - @pasyukevich already working on the fix Also we need to ask design team to review current page @shawnborton : |
@narefyev91 applied fix to prevent app crash |
3e7b2db
to
b1d193e
Compare
Feels good to me. Can you show me an example with a really long card holder name though? |
@pasyukevich heads up on merge conflicts! |
@pasyukevich i.e.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Crash was fixed
LGTM!
🎀 👀 🎀 C+ reviewed
@pasyukevich when a user navigates to the card page without a physical or virtual card, let's show the page not found page instead. You can reference this pattern in |
@grgia conflict fixed! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These changes look pretty great to me overall 👍
legalFirstName: PropTypes.string, | ||
legalLastName: PropTypes.string, | ||
}), | ||
session: PropTypes.shape({ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we add a doc above this for completeness?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Added
}; | ||
|
||
function CardPreview({privatePersonalDetails: {legalFirstName, legalLastName}, session: {email}}) { | ||
usePrivatePersonalDetails(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
NAB, but maybe this should be useFetchPrivatePersonalDetails()
or something that maybe better explains what this does. Started some conversation here but not a blocker for this PR.
There are some conflicts again, thanks! |
@marcaaron conflicts solved |
Testing locally now! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Changes look good, thank you!
@narefyev91 could you take a look at the latest changes before I merge |
sure thing - will do asap |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release. |
@@ -7,149 +7,168 @@ import CONST from './CONST'; | |||
|
|||
// prettier-ignore | |||
export default { | |||
HOME: '', |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why was all the whitespace removed from this file? It was intentional and this file is now difficult to read.
🚀 Deployed to staging by https://github.com/grgia in version: 1.3.75-0 🚀
|
🚀 Deployed to production by https://github.com/mountiny in version: 1.3.75-12 🚀
|
Should these be marked as No QA as they cannot be QAed in staging? |
🚀 Deployed to staging by https://github.com/grgia in version: 1.3.76-0 🚀
|
🚀 Deployed to production by https://github.com/mountiny in version: 1.3.76-6 🚀
|
* @returns collection of assigned cards grouped by domain | ||
*/ | ||
function getDomainCards(cardList: Record<string, OnyxTypes.Card>) { | ||
// eslint-disable-next-line you-dont-need-lodash-underscore/filter |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Underscore/Lodash should no longer be used in Typescript files @pasyukevich
This issue was not handled in this PR. Issue: "Physical card number" row is showing when the user has not completed their shipping details yet It was handled by https://github.com/Expensify/App/pull/34040/files. |
Details
Fixed Issues
$ #22873
PROPOSAL:
Tests
InitialSettingsPage
Offline tests
QA Steps
PR Author Checklist
### Fixed Issues
section aboveTests
sectionOffline steps
sectionQA steps
sectiontoggleReport
and notonIconClick
)myBool && <MyComponent />
.src/languages/*
files and using the translation methodWaiting for Copy
label for a copy review on the original GH to get the correct copy.STYLE.md
) were followedAvatar
, I verified the components usingAvatar
are working as expected)/** comment above it */
this
properly so there are no scoping issues (i.e. foronClick={this.submit}
the methodthis.submit
should be bound tothis
in the constructor)this
are necessary to be bound (i.e. avoidthis.submit = this.submit.bind(this);
ifthis.submit
is never passed to a component event handler likeonClick
)StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG)
)Avatar
is modified, I verified thatAvatar
is working as expected in all cases)ScrollView
component to make it scrollable when more elements are added to the page.main
branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to theTest
steps.Screenshots/Videos
Web
web.mp4
Mobile Web - Chrome
Untitled.mp4
Mobile Web - Safari
ios-web.mp4
Desktop
desktop.mov
iOS
ios-native.mp4
Android
android.card.native.webm