-
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
WS plan type and upgrade common features view Pages #53343
WS plan type and upgrade common features view Pages #53343
Conversation
@jayeshmangwani @carlosmiceli How can we handle this PR to get it merged? Should we create a flag to hide this feature and only display these pages when all done |
Yes, that sounds correct to me. We can either hide this feature by hardcoding it |
Hi @carlosmiceli , Following this discussion https://expensify.slack.com/archives/C02NK2DQWUX/p1731682677445059 , we concluded that we will display the locked plan UI only if the user has an annual control plan and their first billing is completed. I'll need your help to determine from the backend whether the first billing has been completed for the user. Which parameter would be best to use to get this status? I noticed the |
Gotcha! Let me find that for you and report back. |
@carlosmiceli we also need to confirm the next step on this problem |
this option looks fine to me because of simpleness |
Sounds good, once it's all ready to be tested in dev we can change the hardcoded code. Let's make sure to add a comment where we do it. |
Great @carlosmiceli @DylanDylann! |
@jayeshmangwani it's looking like this will need a BE change, and we can send a |
@jayeshmangwani bump ☝️ |
@carlosmiceli I'm not entirely sure, but in my opinion, we may need to create a new command for this. The command would return the |
@jayeshmangwani I like that idea, just asked in Slack for some feedback in case there's some risk I'm not seeing, will report back. |
@jayeshmangwani a couple of questions to confirm, I'm building the new command:
|
I’m attaching the responses below from the ReconnectApp Response{
"key": "nvp_private_subscription",
"onyxMethod": "merge",
"value": {
"autoRenew": true,
"autoRenewLastChangedDate": "2024-12-04 06:41:53",
"endDate": "2025-12-01",
"startDate": "2024-12-01",
"type": "yearly2018"
}
}, OpenSubscriptionPage Response{
"accountID": 12685249,
"authToken": "659A2AF019C7E6EDCF97155BDBA5FD7B64C7065A4FF42E993A3DE454E16BF899E0E39ABA9D72BA0B31DC0677DE570A580C20F31F915E62F5DEE7131EAF29075741EAD2A2D3518AD76C63F30FD1B8B0AB15BD4ACABDE076DB3C9BB91EAED7A4C84AFDBA2261E80EBB663803BAC09D0B0E515C94FD4ADE2310F3752232BDA5C62B35169405D888CB15ACBB9E707B063CA69D4AC3F8558F9F9CBB2913628A59A9128E51E4E498D2A930FB0AFAECA5F5BB2E24A2DCE238AC0A9FF305D701F93BF37A0C9A0CE54E9887EAE296B65F9608012A66AABF993433A38F28EB2FC7CB74273845251C601D4EE7F16E54A28698FDF6AEAE03B14D1A972506D7DF224FF000C7D07EA6F3799373A991B6D794AD3136B43BD1ED6E1CF154B3E2AF16E4951BA0F6892A3886697C5B89684124112C3E8D5E5347AB683EF5501A9C9F3BB6626DFDE1858E4115C5F1A2349292CF6E175C920546304530AC4F0FE85E6108CF440A87F862",
"email": "[email protected]",
"onyxData": [
{
"key": "nvp_private_subscription",
"onyxMethod": "merge",
"value": {
"autoRenew": true,
"autoRenewLastChangedDate": "2024-12-04 06:41:53",
"endDate": "2025-12-01",
"startDate": "2024-12-01",
"type": "yearly2018"
}
},
{
"key": "nvp_private_amountOwed",
"onyxMethod": "merge",
"value": 2000
},
{
"key": "nvp_private_stripeCustomerID",
"onyxMethod": "merge",
"value": null
},
{
"key": "nvp_private_billingDisputePending",
"onyxMethod": "merge",
"value": null
},
{
"key": "nvp_private_billingStatus",
"onyxMethod": "merge",
"value": {
"action": "failed",
"periodMonth": 10,
"periodYear": 2024
}
},
{
"key": "nvp_private_billingGracePeriodEnd",
"onyxMethod": "merge",
"value": 1730903003
},
{
"key": "nvp_private_disableAutoRenewReasons",
"onyxMethod": "merge",
"value": null
},
{
"key": "nvp_private_cancellationDetails",
"onyxMethod": "merge",
"value": null
},
{
"key": "account",
"onyxMethod": "merge",
"value": {
"canDowngrade": true,
"hasPurchases": true,
"isApprovedAccountant": false,
"isApprovedAccountantClient": false,
"isEligibleForRefund": false
}
},
{
"key": "fundList",
"onyxMethod": "merge",
"value": {}
}
],
"httpCode": 200,
"jsonCode": 200,
"authResponseMessage": "200 OK",
"requestID": "8eea18b36e7f3b8b-BOM"
} |
@jayeshmangwani both BE PRs are now in review, but here's how it works so you can make the changes to this and other PRs that need this command:
|
@carlosmiceli @DylanDylann, New command was added to the PR, but now many files are failing ESLint due to this new rule default-value-for-inexistent-IDs. We've already made changes to 20+ files on this PR and several of them failing ESLint. Currently, I’m working on fixing these ESLint issues. |
Thanks for the update Jayesh! Let us know if you need more help. |
…ID value is not available
@DylanDylann I've resolved the ESLint errors in our PR related to the default string. Feel free to review the changes and share your feedback. |
@jayeshmangwani All good. But we got conflict |
Thanks for review @DylanDylann 🙌 , I've merged the main and resolved the conflicts. |
@carlosmiceli All yours |
✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release. |
Note: QA won't be able to test this feature yet, as it's still ongoing. We need to implement the downgrade API before it's ready for testing. |
🚀 Deployed to staging by https://github.com/carlosmiceli in version: 9.0.78-0 🚀
|
🚀 Deployed to staging by https://github.com/carlosmiceli in version: 9.0.78-0 🚀
|
2 similar comments
🚀 Deployed to staging by https://github.com/carlosmiceli in version: 9.0.78-0 🚀
|
🚀 Deployed to staging by https://github.com/carlosmiceli in version: 9.0.78-0 🚀
|
🚀 Deployed to staging by https://github.com/carlosmiceli in version: 9.0.78-0 🚀
|
🚀 Deployed to staging by https://github.com/carlosmiceli in version: 9.0.78-0 🚀
|
🚀 Deployed to staging by https://github.com/carlosmiceli in version: 9.0.78-0 🚀
|
🚀 Deployed to production by https://github.com/jasperhuangg in version: 9.0.78-6 🚀
|
Explanation of Change
Fixed Issues
$ #51768
PROPOSAL:
Tests
Test 1: Plan Type
Test 2: For Locked Plan Type
Precondition: The user must have an active annual Control Plan subscription and must have been billed at least once.
Offline tests
Same as Tests
QA Steps
// TODO: These must be filled out, or the issue title must include "[No QA]."
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
Android.mov
Android: mWeb Chrome
mweb-chrome.mov
iOS: Native
ios.mov
iOS: mWeb Safari
mweb-safari.mov
MacOS: Chrome / Safari
web.mov
MacOS: Desktop
desktop.mov