This address the visual portion of #47043 by splitting the /me/account settings UI into two separate cards.
Unfortunately this is more than a UI change as behind the scenes the data layer handles all these settings as User Settings. Therefore we have had to introduce a means to differentiate between updating a subset of the user settings in order to reflect that state within the UI.
Why are we doing this?
This work is in preparation for adding a new toggle for opting out of Calypso links for the upcoming Nav Unification (see #47043). This will be addressed in a followup.
Changes proposed in this Pull Request
Split /me/account into two card sections for Account Information and Interface Settings.
Move fields into appropriate card section.
Update FormBase mixin to allow for tracking individual forms submitted and disabled state true/false.
Update UserSettings to enable checking for a subset of unsaved changes.
I am nervous about 2 things:
FormBase mixin is used elsewhere in the UI and our changes might have unforeseen consequences.
The <Account /> component is not covered by tests and so manual testing is required to verify the changes.
Use Firefox because Chrome has a bug whereby if you have 2-factor auth enabled it will constantly ask for your auth details 🤦 .