Skip to content

[User Settings] Add new Settings/Profile view #1711

Description

@trjExpensify

If you haven’t already, check out our contributing guidelines for onboarding!


Having added four new menu items to the Settings page, we now need to begin linking those menu items to actual pages. This issue pertains to the Profile page.

The Profile view will be displayed when the "Profile" menu item is clicked. It will display a header with a left-facing arrow on the left-hand side, a title, and an X button to close the view on the right-hand side. The view will contain the following:

  • Non-Editable User Avatar
  • A prompt stating Tell us about yourself, we would love to get to know you!
  • Fields for First Name and Last Name
  • A preferred pronoun dropdown
    • If the user selected Self-select from the dropdown we will display a text field below the dropdown
  • A text field for an email address or phone number, depending on which is the user's primary login
  • A dropdown for selecting a time zone
  • A check box with the label set my timezone automatically
  • A save button

Deliverables

  • Clicking on the Profile menu item on the Settings page will route the user to settings/profile via ROUTES.getSettingsRoute and display the new view
  • Pressing X should close the right-handle modal and redirect the user to their last viewed report
  • Pressing < should route the user back to the main settings page:
  • The first name, last name, pronouns, and timezone should be filled with data from the myPersonalDetails onyx key if it has been filled out
    • If no values have been filled for the first and last name we should display placeholder values John and Doe for the first and last name, respectively.
    • Use the react-native-picker-select library to implement the dropdown for pronouns selection
    • In the user chooses Self-Select then we should display a text field for the user to enter their pronouns of choice

Overall Display:

image

Primary Login:

  • Get the user's primary login from myPersonalDetails.login and display it in the text box associated with that login type (Email/Phone Number). This field should be un-editable.

Pronouns Dropdown:

Pronouns Dropdown Self Select with Text Field

TimeZone:

  • Get timezone.selected and timezone.automatic from the myPersonalDetails onyx key

  • Use moment-timezone to get a list of timezones to display in the timezone dropdown

    • The timezone should default to timezone.selected if it exists and to "America/Los_Angeles" if it doesn't
  • The Set my timezone automatically checkbox should default to timezone.automatic if it exists and true if it doesn't

  • Save:

    • Call PersonalDetails.setPersonalDetails with an object containing the user's avatarURL, first name, last name, pronouns, and timeZone

Upwork Link: https://www.upwork.com/jobs/~0180f7fc7a6469866e

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions