* Convert default.vue to composition API
* Add translations to default page layout
* Generate index.json
* Fix sign up page
* Generate index.json
* Fix atUserLabel
* Fix composition API port
* Follow-up fixes for #1616 (#1618)
* Re-organize default layout messages
- Group some of the messages by their appearance (like banners)
Grouping makes avoids having to think too much about the property
names, keeps declarations clean, and also can be minified better,
since variable names, unlike property names, can be easily mangled.
- Remove needless type specification in property name[^1]
It's already clear from where the message is formatted what it does,
and if you need clarification, you can Ctrl+hover and see the type in
the key.
- Change some keys to conform to conventions
We generally follow the pattern location > kind?. Things like 'label'
are unnecessary, as everything is assumed to be label by default; the
same applies to things like 'button', which are also often unnecessary
as they're part of the location compound.
- Remove message for handle, which should not be translatable
It's very unlikely user handle format changes between any of the
locales.
[^1]: Common messages are pending restructuring that would fix this
* Fix navRoutes not being computed in default layout
* Fix untranslated Get Modrinth App buttons in default layout
* Make legal disclaimer in the default layout translatable
It wouldn't make much sense to leave it untranslated since it is meant
for the end users too. It is also so small that it's unlikely to be
mistranslated.
* Extract missed legal disclaimer message from default layout
* Make SEO strings in default layout translatable
---------
Co-authored-by: Sasha Sorokin <10401817+brawaru@users.noreply.github.com>
* Begin Work
* WIP
* WIP
* WIP
* Use error notification keys
* Finish & fix error
* Fix lint error
* Normalize message IDs (#9)
It makes sense to compose message IDs in order:
- Place (page, sub page / "modal")
- Thing
- (optionally) Relation to the thing
For example, a label for a password field would be:
- auth.sign-in (on sign-in subpage of auth)
- password (password field)
- label (is a label for the field)
Another example - button to sign in:
- auth.sign-in
- action (this is an action to do something)
- sign-in (action to sign in)
This helps keep the IDs closer to the actual structure of the page,
oftentimes smaller in the code, and easier to understand by translators.
---------
Co-authored-by: Sasha Sorokin <10401817+brawaru@users.noreply.github.com>
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
* Begin Work
* Begin Work
* WIP
* Finish Work
* Fix lint error
* Re-organize keys on E-mail verification page (#12)
- Group messages by the step
- Use simpler keys for message properties as they're not public
- Change message keys to conform to conventions
---------
Co-authored-by: Sasha Sorokin <10401817+brawaru@users.noreply.github.com>
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
* Begin Work
* Add email sent notification keys
* Finish adding notification keys
* Fix lint error
* Finish work (I think)
* Remove password label (generic)
* Add password label key
* Re-organize Reset password page messages (#11)
- Group messages by their use
- Change some of the keys for clarity
- Change some keys to conform to conventions
---------
Co-authored-by: Sasha Sorokin <10401817+brawaru@users.noreply.github.com>
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
* adjust existing sign-in flow
* test fetching of oauth client
* allow for apiversion override
* getAuthUrl refactor
* Adjust auth to accept complex url redirections
* introduce scopes
* accept oauth flow
* rename login/oauth to authorize
* conform to labrinth spec and oauth2 spec
* use cute icons for scope items
* applications pages
* Modal for copy client secret on creation
* rip out old state
* add authorizations
* add flow error state and implement feedback
* implement error notifications on error
* Client secret modal flow aligned with PAT copy
* Authorized scopes now aligned with Authorize screen
* Fix spelling and capitalization
* change redirect uris to include the input field
* refactor 2fa flow to be more stable
* visual adjustments for authorizations
* Fix empty field submission bug
* Add file upload for application icon
* Change shape of editing/create application
* replace icon with Avatar component
* Refactor authorization card styling
* UI feedback
* clean up spacing, styling
* Create a "Developer" section of user settings
* Fix spacing and scope access
* app description and url implementations
* clean up imports
* Update authorization endpoint
* Update placeholder URL in applications.vue
* Remove app information from authorization page
* Remove max scopes from application settings
* Fix import statement and update label styles
* Replace useless headers
* Update pages/auth/authorize.vue
Co-authored-by: Calum H. <contact@mineblock11.dev>
* Update pages/auth/authorize.vue
Co-authored-by: Calum H. <contact@mineblock11.dev>
* Finish PR
---------
Co-authored-by: Calum H. <contact@mineblock11.dev>
Co-authored-by: Jai A <jaiagr+gpg@pm.me>
* Refine the auth design; clean up the layout and styles there
* It doesn't really sing, does it
* Tweak auth form spacing and wording
* Final tweaks to improved auth design
* Merge
* fix lockfile
---------
Co-authored-by: Prospector <prospectordev@gmail.com>
* Begin UI for threads and moderation overhaul
* Hide close button on non-report threads
* Fix review age coloring
* Add project count
* Remove action buttons from queue page and add queued date to project page
* Hook up to actual data
* Remove unused icon
* Get up to 1000 projects in queue
* prettier
* more prettier
* Changed all the things
* lint
* rebuild
* Add omorphia
* Workaround formatjs bug in ThreadSummary.vue
* Fix notifications page on prod
* Fix a few notifications and threads bugs
* lockfile
* Fix duplicate button styles
* more fixes and polishing
* More fixes
* Remove legacy pages
* More bugfixes
* Add some error catching for reports and notifications
* More error handling
* fix lint
* Add inbox links
* Remove loading component and rename member header
* Rely on threads always existing
* Handle if project update notifs are not grouped
* oops
* Fix chips on notifications page
* Import ModalModeration
* finish threads
* New authentication (#1234)
* Initial new auth work
* more auth pages
* Finish most
* more
* fix on landing page
* Finish everything but PATs + Sessions
* fix threads merge bugs
* fix cf pages ssr
* fix most issues
* Finish authentication
* Fix merge
---------
Co-authored-by: triphora <emma@modrinth.com>
Co-authored-by: Jai A <jaiagr+gpg@pm.me>
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>