-
Notifications
You must be signed in to change notification settings - Fork 3k
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
Animate payment icon in money request preview #54490
base: main
Are you sure you want to change the base?
Animate payment icon in money request preview #54490
Conversation
…in-money-request-preview
…in-money-request-preview
Some points i want share here:
![]() Let me know if you have any questions or suggestions! |
@abzokhattab, could you please provide an animation video, and cc |
Ignore that silly comment. 😅 @dubielzyk-expensify, when you have time, could you please help review the animation in the video from the author check list? |
Sorry for the delay, I expect to have time to review the code over the weekend, and will try to complete the review early next week. |
Sorry for the delay, yes i attached the animation in the PR let me know if you need other videos |
Good catches, we should make sure those are fixed before this is merged. |
Agree with all the bugs posted above 👍 A few notes as well: The recording on iOS native in the OG post feel perfect to me. That should be what we're aiming for. The last video on this comment labeled I don't think the approved button should have the checkmark in the button. Feels like we should either not use a checkmark there or use the thumbs up there as well (keen to hear @Expensify/design 's thoughts here. I wonder if we should actually just say "Payment complete" and "Approved" without the icon in the button to avoid double icons?): Also there's a weird bug on the video MacOS Desktop video where it goes from paid -> approved -> paid again? CleanShot.2025-01-06.at.15.19.29.mp4 |
Definitely agree that approved should use the thumbs up icon. But I'm not against not including the icon here since the preview gets it. I think in the report header it would be nice to keep the icon in the button, so I'm ALSO not against leaving them and just having the double-icon for a brief moment before the button disappears. But either way, let's make sure the icon matches the action (pay = checkmark, approve = thumbs up). |
Fair points. Let's leave them in the button for now and make all the other changes, then see how it feels 👍 |
Any updates @abzokhattab? |
I’ve been repeatedly testing approval and payment many many times this week, trying to address the flickering issue, and have made some progress. Also, I’ve fixed several small bugs on this PR locally. I expect to need one more workday to test and refine my suggestions. |
Thanks for the update. I agree about the flickering issue (we don't want it). Let's take a bit more time but make things right! |
@abzokhattab, It seems the current PR doesn’t have this local state, so the flickering could still occur? Could you please push that change to let me test? Additionally, I made a few attempts on your branch, please feel free to checkout them, the main changes include:
my commits: https://github.com/ntdiary/expensify-app/commits/keyframe/ Here are some test videos:
|
…in-money-request-preview
I like the new approach using Keyframe... regarding the local state—I removed it because of an issue where "Payment Complete" or "Approved" were no longer occurring. So, in my latest modifications, I removed it from my previous approach to clean up the code: GitHub Commit. Additionally, there's another issue (which I also see in the main branch) where, when the user clicks "Submit," it switches to "Approve," then back to "Submit," and then "Approve" again. |
but for now should we go with the new approach using |
This is a separate issue (#53263), RCA is the
As for the keyframe solution, I personally prefer this approach and am still trying to see if we can get rid of the direct call to @abzokhattab, please feel free to test and optimize it locally. If it works well and you think it's okay, then push it and let us review it again. :) |
Screen.Recording.2025-02-11.at.21.25.31.mov |
I'm not too familiar with how |
This is something I intentionally removed, based on the following considerations:
This is actually controlled by the delay-1000.mov |
Same here. I'm mostly concerned with smoothness and performance. I don't know that I have a strong opinion about the details of how we accomplish that. |
correct i tried yesterday but maybe the device didnt render ... good i think we are ready now .. i disabled the container shrinking when clicking on the approval ... can you please review the changes @ntdiary |
@abzokhattab, could you please share a video of this problem? It would be better if there are stable reproduction steps. BTW, I just noticed a height warning, maybe we need to figure out a way to address it. And If it's not solvable or too complex, we might have to revert to the previous ![]() |
for this issue i thought keyframe would act the same way as in the other way ... however after trying it for couple of times it seems that the height doesnt change so i removed this change in the recent commit other than that, there is an issue in the ![]() so i reverted this commit, let me know if u think otherwise @ntdiary here is the result after the revert: With this i think we can go ahead with the review. |
Good catch, I'm not sure why the modal needs to be modified for this PR. |
we modified it to address this comment #54490 (comment) #54490 (comment) |
Hmm but the comment was just about the button size, not the margins on the modal itself right? |
Either way, we need to fix it. |
Yes i reverted it, but it was a part of the alignment change #54490 (comment) |
@abzokhattab, ESLint check failed. |
done |
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.
@abzokhattab, unfortunately, I’m still seeing the height warning
, so I made some changes to AnimatedSettlementButton
, please feel free to test it locally first, and if everything works fine, you can replace it. I’ll make the full test videos and fill out the check list tomorrow.
Also, here are my latest test videos, I think it’s much smoother than before. :)
position/case | normal | duplicate |
---|---|---|
header | header-normal.mov |
header-duplicate.mov |
preview | preview-normal.mov |
preview-duplicate.mov |
LGTM |
Explanation of Change
Fixed Issues
$ #53474
PROPOSAL: #53474 (comment)
Tests
Scenario one:
Scenario two:
Offline tests
Same as tests
QA Steps
Same as tests
PR Author Checklist
### Fixed Issues
section aboveTests
sectionOffline steps
sectionQA steps
sectiontoggleReport
and notonIconClick
)src/languages/*
files and using the translation methodSTYLE.md
) were followedAvatar
, I verified the components usingAvatar
are working as expected)StyleUtils.getBackgroundAndBorderStyle(theme.componentBG)
)Avatar
is modified, I verified thatAvatar
is working as expected in all cases)Design
label and/or tagged@Expensify/design
so the design team can review the changes.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
Android: Native
Untitled.mov
Android: mWeb Chrome
Screen.Recording.2024-12-24.at.04.31.10.mov
iOS: Native
Screen.Recording.2024-12-24.at.04.42.20.mov
iOS: mWeb Safari
Screen.Recording.2024-12-24.at.04.24.16.mov
MacOS: Chrome / Safari
Screen.Recording.2024-12-24.at.03.35.03.mov
Screen.Recording.2024-12-24.at.03.55.24.mov
MacOS: Desktop
Screen.Recording.2024-12-24.at.05.03.43.mov