-
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
[HOLD for payment 2023-10-13] [$500] Web - Pronouns value not displayed on login #27675
Comments
ProposalPlease re-state the problem that we are trying to solve in this issue.Pronouns value not displayed on login What is the root cause of that problem?We only set
When we open the page via deep link on login, What changes do you think we should make in order to solve the problem?We should subscribe Then we can create a
OPTIONAL: To make the best UI, we can display the loading page before the API is complete or hide the text input until the API is complete What alternative solutions did you explore? (Optional)NA ResultScreencast.from.18-09-2023.17.46.10.webm |
Triggered auto assignment to @joekaufmanexpensify ( |
Job added to Upwork: https://www.upwork.com/jobs/~014246fda785f9f058 |
Bug0 Triage Checklist (Main S/O)
|
Triggered auto assignment to @CortneyOfstad ( |
Triggered auto assignment to Contributor-plus team member for initial proposal review - @thesahindia ( |
ProposalPlease re-state the problem that we are trying to solve in this issue.Pronouns list is not shown initially when accessed from deep link and then logging in What is the root cause of that problem?We are setting the initial App/src/pages/settings/Profile/PronounsPage.js Lines 29 to 35 in c77814f
When we access this page from deep link, initially currentPronounsKey is empty because currentUserPersonalDetails has not been loaded yet.
What changes do you think we should make in order to solve the problem?We should show a loading indicator when the page is loading and the if (!_.has(currentUserPersonalDetails, 'pronouns')) {
return <FullScreenLoadingIndicator />;
} What alternative solutions did you explore? (Optional) |
ProposalPlease re-state the problem that we are trying to solve in this issue.Pronouns list is not shown initially when accessed from deep link and then logging in What is the root cause of that problem?The initial state does not contains the pronouns. App/src/pages/settings/Profile/PronounsPage.js Lines 29 to 36 in ea5f461
When we access this page from deep link, initially currentPronounsKey is empty because currentUserPersonalDetails has not been loaded yet. What changes do you think we should make in order to solve the problem?What we can do is we can use the below code to get the latest values from the currentUserPersonalDetails object. useMemo(() => {
setSearchValue(() => {
const currentPronounsText = _.chain(CONST.PRONOUNS_LIST)
.find((_value) => _value === currentPronounsKey)
.value();
return currentPronounsText ? translate(`pronouns.${currentPronounsText}`) : '';
});
}, [currentPronounsKey]); Also the callback that is passed in the setSearchValue, should be a different fucntion to reduce code redundancy What alternative solutions did you explore? (Optional)N/A |
@joekaufmanexpensify there is a known issue with two assigners for BZ being applied (more info here), so going to remove my assignment as the second one for this issue 👍 |
Sounds good! |
i can reproduce this. Checking internally about something before saying definitively we should change this. |
I chatted with @puneetlath to make sure we should fix this, since this form was designed with a lot intentionality, and confirmed that this is a bug. Next step is for @thesahindia to review proposals! |
Pending review of proposals |
ProposalPlease re-state the problem that we are trying to solve in this issue.Web - Pronouns value not displayed on login What is the root cause of that problem?User info is loaded when the first time login via What changes do you think we should make in order to solve the problem?At withCurrentUserPersonalDetails.js we should get loading status with key return withOnyx({
+ isLoading: {
+ key: ONYXKEYS.IS_LOADING_APP,
+ },
personalDetails: {
key: ONYXKEYS.PERSONAL_DETAILS_LIST,
},
session: {
key: ONYXKEYS.SESSION,
},
})(withCurrentUserPersonalDetails); also config propTypes and defaultProp for isLoading ...
+ if(props.isLoading) {
+ return <FullScreenLoadingIndicator />
+ }
return (
...
) We should add a loading state to prevent users can editing before the data loaded while a slow network update code from App/src/pages/settings/Profile/PronounsPage.js Lines 29 to 36 in bb32cc5
to const currentPronounsText = useMemo(() => {
const currentPronounsText = _.chain(CONST.PRONOUNS_LIST)
.find((_value) => _value === currentPronounsKey)
.value();
return currentPronounsText ? translate(`pronouns.${currentPronounsText}`) : '';
}, [currentPronounsKey]);
const [searchValue, setSearchValue] = useState(currentPronounsText);
useEffect(() => {
if (!isLoading && currentPronounsText) {
setSearchValue(currentPronounsText);
}
}, [isLoading, currentPronounsText]); A lot of pages use withCurrentUserPersonalDetails so we should add isLoading status into withCurrentUserPersonalDetails.js to be aware of using it for the next feature or fix issues the same with this What alternative solutions did you explore? (Optional)Create withCurrentUserPersonalDetailsAndLoadingState.js the same withCurrentUserPersonalDetails and same isLoading config from the primary solution function WithCurrentUserPersonalDetails(props) {
const accountID = props.session.accountID;
const accountPersonalDetails = props.personalDetails[accountID];
const currentUserPersonalDetails = useMemo(() => ({...accountPersonalDetails, accountID}), [accountPersonalDetails, accountID]);
+ if (props.isLoading) {
+ return <FullScreenLoadingIndicator />;
+ }
return (
<WrappedComponent
...
/>
);
} |
@thesahindia could you take a look at these proposals when you have a sec? TY! |
I have updated my proposal and explain for each change |
Pending review of proposals |
📣 It's been a week! Do we have any satisfactory proposals yet? Do we need to adjust the bounty for this issue? 💸 |
@dukenv0307's proposal looks good to me! 🎀 👀 🎀 C+ reviewed |
Got it. I will review the timing before we issue payment. We still need @allroundexperts to complete the BZ checklist here before we can issue payment. |
Bumped in Slack |
Checklist
Regression test
Do we 👍 or 👎 ? |
TY! IMO, we can punt the regression test here, as it doesn't seem realistic to me that many/any users will be frequently trying to deeplink login specifically to the pronouns page. This feels like a significant edge case to me, so no need to include it in every regression run. |
Going to sort through the questions about contributor bounty, and whether the speed bonus applies here tomorrow. Once those are resolved, we'll be all set to issue payment! |
Okay, chatted about the speed bonus internally, and we will offer that here, since both @allroundexperts and @dukenv0307 prioritized this one with urgency. |
We are still discussing this a bit, and will issue payment as soon as that is resolved! |
@dukenv0307 checking in on this. After further discussions, it sounds like the PR you ultimately implemented used some aspects of the other contributor's proposal. No worries about this! But we're discussing splitting the $500 bounty with them, and want to make sure you don't have any significant concerns with that? TY! |
@amyevans, @allroundexperts, @joekaufmanexpensify, @dukenv0307 Uh oh! This issue is overdue by 2 days. Don't forget to update your issues! |
@dukenv0307 could you please review this and let us know your thoughts? TY! |
Okay, while we wait for the contributor payments to be sorted out (via Upwork), we can handle @allroundexperts payment now. They will get $750 ($500 for C+ review + $250 speed bonus), paid via NewDot |
@joekaufmanexpensify I agree with this . |
$750 payment approved for @allroundexperts based on summary above. |
Great, thanks for confirming. That means we still need to issue the following payments:
|
@suneox offer sent for $250! |
@dhanashree-sawant offer sent for $50! |
@joekaufmanexpensify I think the bonus should be $250 and we only split $500 between me and @suneox. Correct me if I missed something. |
@dukenv0307 the urgency bonus is 50% of the bounty earned by the contributor who raised the PR, rather than a static bonus. Since you raised the PR, and are earning a $250 bounty for this issue, your 50% bonus for the PR is $125. A $250 bonus on your $250 bounty would be a 100% bonus. @suneox isn't earning a bonus since they were not involved in the collaborative process of raising the PR quickly. LMK if you have any other questions! |
@dukenv0307 $375 sent and contract ended! |
@suneox $250 sent and contract ended! |
@dhanashree-sawant $50 sent and contract ended! |
Upwork job closed |
Bug is fixed, BZ checklist complete, and all payment issued. Closing as this is all set. Thanks everyone! |
@joekaufmanexpensify my take is that as we're splitting original bounty, we also share responsibility of getting a PR up and merged and will jointly be eligible for the $250 bonus if within 3 days. But 1 of us does not participate in the PR, only I handle the PR from start to end and strive to get it merged asap, I bear the whole responsibility (which by right should be split similar to the reward). So it makes sense that I'll be eligible for the full bonus of the "PR responsibility" which is $250. I have seen that in other issues like this one. Could you kindly give this a second look, thanks! |
@dukenv0307 I definitely understand where you're coming from. However, the previous guidance on the urgency bonus is fairly clear. It is a 50% bonus applied to the bounty earned to incentivize the individual writing the PR to get it done quickly. It scaled down with the various compensation changes we've made to the contributor program as well. I think we handled the urgency bonus in that other issue incorrectly, so I don't think we'd issue a 100% urgency bonus here based on that. We appreciate your understanding. Let me know if you have any other questions! |
If you haven’t already, check out our contributing guidelines for onboarding and email [email protected] to request to join our Slack channel!
Action Performed:
Expected Result:
App should display pronouns value if present on login
Actual Result:
App does not display pronouns value if present on login on login with pronouns page
Workaround:
Unknown
Platforms:
Which of our officially supported platforms is this issue occurring on?
Version Number: 1.3.71.4
Reproducible in staging?: y
Reproducible in production?: y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
No.pronouns.value.on.login.mp4
Recording.4559.mp4
Expensify/Expensify Issue URL:
Issue reported by: @dhanashree-sawant
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1694889012343609
View all open jobs on GitHub
Upwork Automation - Do Not Edit
The text was updated successfully, but these errors were encountered: