Add support for MSC4133 pronoun and timezone fields
Description
This PR makes several changes to add support for MSC4133:
- Adds timezone and pronoun settings to the Account section of the Settings dialog.
- Redesigns the Profile card in the Account section of the Settings dialog to resemble the new user cards added in Cinny 4.9.0, allowing changes to profile fields (including both the new fields and the old avatar and display name) to be previewed before being saved.
- Adds new UI elements to user cards which display other users' pronouns and timezones.
- Adds a new section to Developer Tools, allowing direct editing of profile fields.
Type of change
- [ ] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
- [ ] This change requires a documentation update
Checklist:
- [x] My code follows the style guidelines of this project
- [x] I have performed a self-review of my own code
- [x] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
Preview: https://2487--pr-cinny.netlify.app ⚠️ Exercise caution. Use test accounts. ⚠️
I don't imagine this is within the scope of this PR, but with the addition of exposing the pronouns field to Cinny, it'd theoretically be possible to substitute in a user's preferred pronouns in place of 'their' in system messages such as "<User> changed their avatar" I think src/app/hooks/useMemberEventParser.tsx is the main place these messages are found. It's super not important for functionality's sake, but since this PR makes the field available, it'd be an appreciated Quality of Life addition.
I don't imagine this is within the scope of this PR, but with the addition of exposing the pronouns field to Cinny, it'd theoretically be possible to substitute in a user's preferred pronouns in place of 'their' in system messages such as " changed their avatar" I think src/app/hooks/useMemberEventParser.tsx is the main place these messages are found. It's super not important for functionality's sake, but since this PR makes the field available, it'd be an appreciated Quality of Life addition.
I do agree. That would make more it useful and not just another "that could have been in your bio" thing. (looking at you, Discord)