* Add custom types for queries, mutations and infinite queries.
* Migrate all queries to use the new type.
* Migrate all infinite queries to useCustomInfiniteQueryOptions.
* Migrate all mutations to use useCustomMutationOptions.
* Add type to all imports in `types` folder.
* feat(profile): add self-serve editing of username and primary email
Users can now update `username` and choose a `primary_email` directly in the
Dashboard profile editor.
Changes:
- Add `username` and `primary_email` fields to the profile form.
- Introduce `Select_Shadcn_` dropdown listing the user's identities
(via `useProfileIdentitiesQuery`) for selecting a primary email.
- Default `primary_email` selection is derived from the current profile.
- Extend form submission to patch `username` and `primary_email` to the
profile API.
- Wire zod schema and react-hook-form defaults for new fields.
* chore: remove unused variable
* fix: disable username & primary_email modification for SSO users
* Small refactors
* Remove hard code
* Refactor to use FormItemLayout
* chore: add descriptions for primary_email and username
* chore: fix format and lint error
* chore: fix lint error
* Use identities to derive user dropdown profile image, and remove profile image from useProfile hook
---------
Co-authored-by: Chris Stockton <chris.stockton@supabase.io>
Co-authored-by: Joshen Lim <joshenlimek@gmail.com>