Compare commits

...

2420 Commits

Author SHA1 Message Date
fetch
11a2ad61b8 Include region in user subscription metadata 2025-06-02 00:26:34 -04:00
Emma Alexia
7b535a1c2a Enable charity payouts through Tremendous (#3732) 2025-06-01 23:53:45 +00:00
Alejandro González
0aa76567a6 docs(issue template): do not skip closed issues in link to existing issues (#3728)
When an issue has been already handled by our part, and thus gets
closed, but affects many users and the fix takes a while to be rolled
out, it usually happens that those who notice the matter later on don't
notice previous reports and create duplicate issues.

Let's try to improve a little bit on that by not filtering out closed
issues in the links for checking whether the same issue was already
reported before. This should make it more obvious to users who follow
the link whether an issue for their problem already exists.
2025-06-01 14:51:00 +00:00
Alejandro González
6fa1369c49 fix(labrinth): tentative billing period update fix (#3722)
* fix(labrinth/billing): add Spain and Singapore to the list of countries for currency inferences

This should fix payments in those countries not going through with their
local currencies for products that do not have USD-only pricing.

* fix(labrinth/billing): tentative fix for subscription periods not updating
2025-05-31 09:00:08 +00:00
Emma Alexia
b66d99c59c Improve error when Modrinth's PayPal account is out of funds (#3718)
* Improve error when Modrinth's PayPal account is out of funds

* improve msg
2025-05-30 16:28:00 +00:00
Alejandro González
a9cfc37aac Some small Labrinth refactors and fixes (#3698)
* chore(labrinth): fix typos, simplify out `remove_duplicates` func

* fix(labrinth): implement `capitalize_first` so that it can't panic on wide chars

* chore(labrinth): refactor out unneeded clone highlighted by nightly Clippy lints

* chore(labrinth): simplify `capitalize_first` implementation

* fix(labrinth): preserve ordering when deduplicating project field values

This addresses an unintended behavior change on
157647faf2.

* fix(labrinth/tests): make `index_swaps` test run successfully

I wonder why we don't run these more often...

* refactor: rename `.env.example` files to `.env.local`, make local envs more consistent between frontend and backend

* chore(labrinth/.env.local): proper email verif. and password reset paths
2025-05-29 20:51:30 +00:00
Alejandro González
be37f077d3 feat(labrinth): quarterly billing support (#3714) 2025-05-28 22:18:24 +00:00
François-Xavier Talbot
f52d020a3c Support specifying a region when creating servers (#3709)
* Support specifying a region when creating servers

* Remove hardcoded default server region
2025-05-26 21:21:52 +00:00
Emma Alexia
74cf3f076e Automatically fail payments that are older than 30 days (#3697) 2025-05-25 19:36:19 +00:00
Emma Alexia
84adf79564 Fix resubscription of servers with failed payments (#3696)
* Fix resubscription of servers with failed payments

Resolves MOD-55

* run fix
2025-05-25 19:36:14 +00:00
Emma Alexia
dc0d923cee Automatically cancel servers with failed payments older than 30d (#3695) 2025-05-25 19:36:11 +00:00
Emma Alexia
2ffd7476aa Get rid of a bit of dead code around server suspensions (#3693)
Might fix some issues with people getting errors saying their servers are suspended when it's actually upgrading
2025-05-25 19:36:07 +00:00
jade
034fd06284 fix: make insufficient gallery images checklist item always show (#3692)
* fix(moderation): make insufficient gallery images checklist item always show

* fix(moderation): Make gallery ordering more consistent
2025-05-25 19:36:03 +00:00
Emma Alexia
49aac6bdca Fix {{ email_description }} in Modrinth emails (#3703) 2025-05-25 19:34:46 +00:00
Josiah Glosson
4e4a7be7ef Commonize and distinguish a lot of struct names in labrinth::database::models (#3691) 2025-05-24 09:38:43 +00:00
Josiah Glosson
9c1bdf16e4 Update Redis dependencies (#3682) 2025-05-22 15:01:47 +00:00
Josiah Glosson
9e527ff141 Labrinth ID cleanup (#3681)
* Put all ID types in the labrinth::models::ids, and reduce code duplication with them

* Rewrite labrinth::database::models::ids and rename most DB interface ID structs to be prefixed with DB

* Run sqlx prepare

---------

Co-authored-by: Alejandro González <7822554+AlexTMjugador@users.noreply.github.com>
2025-05-22 08:34:36 +00:00
Alejandro González
c6022ad977 fix(labrinth): prevent division by zero panic on analytics routes (#3668) 2025-05-19 19:14:51 +00:00
Alejandro González
ea9a3539eb Minor Labrinth documentation and missing Sendy configuration handling tweaks (#3667)
* docs(contributing/labrinth): mention SMTP vars, add helpful Redis note

* chore(labrinth): short-circuit Sendy usage successfully when not setup

* chore: get rid of deprecated `docker-compose` version parameter
2025-05-18 11:36:05 +00:00
Alejandro González
e4f0dddf82 PR 3655 regression fixes (#3664)
* chore: undo unintended updater `zip` feature drop, tweak comment

* fix: correct unintended regression on version and project validation

This was caused by a mistake when coalescing mostly copied and pasted
`RE_URL_SAFE` regexes into one.
2025-05-16 21:44:03 +00:00
jade
be425cff6f feat(moderation): Add more checklist messages (#3662) 2025-05-16 18:58:24 +00:00
Calum H.
e225bc9f66 feat: standardized page banners (#3610)
* feat: standardized site banners

* fix: lint issues

* fix: deduplicate SCSS with variant map

* feat: color shades + reduced scss

* feat: fix theming

* chore: Remove shades-generator.ts

* fix: lint issues

---------

Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2025-05-16 10:12:34 +00:00
Alejandro González
f19643095e Inherit dependencies from workspace manifest, and optimize some out (#3655)
* chore: inherit dependencies from workspace, optimize some deps out

* Update bitflags from 2.9.0 to 2.9.1

* Fix temp directory leak in check_java_at_filepath

* Fix build

* Fix lint

* chore(app-lib): refactor overkill `futures` executor usage to Tokio MPSC

* chore: fix Clippy lint

* tweak: optimize out dependency on OpenSSL source build

Contrary to what I expected before, this was caused due to the Tauri
updater plugin using a different TLS stack than everything else.

* chore(labrinth): drop now unused dependency

* Update zip because 2.6.1 got yanked

* Downgrade weezl to 0.1.8

* Mention that p256 is also a blocker for rand 0.9

* chore: sidestep GitHub review requirements

* chore: sidestep GitHub review requirements (2)

* chore: sidestep GitHub review requirements (3)

---------

Co-authored-by: Josiah Glosson <soujournme@gmail.com>
2025-05-15 20:47:29 +00:00
lumiscosity
37cc81a36d chore: optimize PNGs (#3647) 2025-05-15 11:49:01 +00:00
Emma Alexia
863bf62f8d Fix updated field including deleted versions (#3643)
* Fix `updated` field including deleted versions

Four years ago, I created issue modrinth/labrinth#200. Today, while it adorns a different name (modrinth/code#2766), the issue remains the same. In celebration of Modrinth's oldest bug report, here is a fix.

Instead of having a separate `updated` field, it simply pulls the publish date of the most recent version. This should also allow the `updated` column on the `mods` table to be dropped at a later date, but I would rather get confirmation that it works before we go ahead with that.

Fixes #2766

* Update apps/labrinth/src/database/models/project_item.rs

Co-authored-by: Alejandro González <7822554+AlexTMjugador@users.noreply.github.com>
Signed-off-by: Emma Alexia <wafflecoffee7@gmail.com>

---------

Signed-off-by: Emma Alexia <wafflecoffee7@gmail.com>
Co-authored-by: Alejandro González <7822554+AlexTMjugador@users.noreply.github.com>
2025-05-12 18:19:30 +00:00
Emma Alexia
9a6390bb4d Fix organization projects route properly (#3633)
* Revert "fix: capitalization of ID org route breaks projects list (#3621)"

This reverts commit e4adbb9469.

* Fix organization projects route properly

Reverted #3621 because it caused more bugs to be created, in the form of organizations with capital letters not showing any projects

* Update apps/labrinth/src/routes/v3/organizations.rs

Co-authored-by: Alejandro González <7822554+AlexTMjugador@users.noreply.github.com>
Signed-off-by: Emma Alexia <wafflecoffee7@gmail.com>

* fix copy-paste error

---------

Signed-off-by: Emma Alexia <wafflecoffee7@gmail.com>
Co-authored-by: Alejandro González <7822554+AlexTMjugador@users.noreply.github.com>
2025-05-09 23:28:52 +00:00
Josiah Glosson
62de07e4e6 Version updates (#3626)
* Update some Labrinth dependencies

* Update some Labrinth dependencies

* Update some Labrinth dependencies

* Update zip in Labrinth

* Update itertools in Labrinth

* Update validator in labrinth

* Update thiserror in labrinth

* Update rust_decimal, redis, and deadpool-redis in labrinth

* Update totp-rs and spdx in labrinth

* Update maxminddb and tar in labrinth

* Update sentry and sentry-actix in labrinth

* Update image in labrinth

* Update lettre in labrinth

* Update derive-new and rust_iso3166 in labrinth

* Update async-stripe and json-patch in labrinth

* Update clap and iana-time-zone in labrinth

* Update labrinth to Rust 2024

* Cargo fmt

* Just do a full cargo update

* Update daedelus to Rust 2024

* Update daedelus_client to Rust 2024

* Set the formatting edition to 2024

* Fix formatting

IntelliJ messed up my formatting
2025-05-09 12:27:55 +00:00
Calum H.
6e46317a37 feat(frontend): refactor and modernize welcome page (#3614)
* feat(frontend): refactor and modernize welcome page - also fixes navbar issue.

Closes: #1533

* fix(frontend): lint issues & use standard variables instead of the constants from error.vue

* fix(frontend): remove creator count as it's not a count of all users

* fix(frontend): lang reshuffle

* feat: rinthbot

* fix: lint issues

* fix: sizing of bot on mobile & scss cleanup for error.vue

* fix: lint issues

* fix: ui lint
2025-05-08 16:14:25 +00:00
Prospector
b59f208e91 Update changelog 2025-05-08 08:50:29 -07:00
Prospector
8fdc7403b1 Allow unlimited items to show in multiselect for game version and loader selection Closes #1964 2025-05-07 19:43:33 -07:00
Prospector
895cd11e30 Updated changelog 2025-05-07 19:25:11 -07:00
Prospector
58ce3a4967 Fix Views showing Hidden instead of other 2025-05-07 19:24:31 -07:00
Prospector
bdd4deb302 Fix updateCurrentDate undefined 2025-05-07 19:24:21 -07:00
Prospector
ec2a56cd73 intl:extract 2025-05-07 19:18:13 -07:00
Prospector
10a5864a47 Update changelog 2025-05-07 19:17:12 -07:00
Prospector
16766be82f Add server unzipping (#3622)
* Initial unzipping feature

* Remove explicit backup provider naming from frontend

* CF placeholder

* Use regex for CF links

* Lint

* Add unzip warning for conflicting files, fix hydration error

* Adjust conflict modal ui

* Fix old queued ops sticking around, remove conflict warning

* Add vscode "editor.detectIndentation": true
2025-05-07 19:08:38 -07:00
Calum H.
1884410e0d fix: standardize relative timestamping (#3612)
* fix(frontend): relative timestamps are incorrectly rounded.

Closes: #1371

* fix(all): remove legacy fromNow for proper relative timestamp creation

Closes: #1395
2025-05-07 21:37:35 +00:00
Calum H.
6d57da2053 fix: notification dashboard issues (#3624)
* refactor: Notification helper refactor, fixes a lot of issues.

* fix: lint issues
2025-05-07 21:08:47 +00:00
Calum H.
e4adbb9469 fix: capitalization of ID org route breaks projects list (#3621)
Closes: #3615
2025-05-07 21:01:54 +00:00
Calum H.
8ee621295c fix: country composable not working due to nuxt routing. (#3623)
Closes: #2263
2025-05-07 21:01:25 +00:00
ThatGravyBoat
32920dd825 fix: changelog margins overlapping link (#3593)
* fix: changelog margins overlapping link

* dont start gradient 8rem away
2025-05-07 20:58:00 +00:00
Josiah Glosson
2d5d2d5df8 Fix to attached world data (#3618)
* Add AttachedWorldData::remove_for_world

* Box the S3 error for daedelus_client ErrorKind::S3

* Delete attached world data on world deletion
2025-05-06 15:06:46 +00:00
Alejandro González
8dd32bbe98 Fix macOS Theseus build issue, cleanup platform specific code (#3604)
* chore(theseus): significantly cleanup MacOS-specific code

* fix(labrinth): only use jemalloc allocator for Linux targets

The upstream crate asserts that its tests only pass for Linux targets,
and there's little point in supporting other OS for now since practical
Labrinth deployments run under a Linux environment anyway. This change
made it easier for me to cross-compile Labrinth.

* chore(theseus): tweak traffic lights pos according to c39bb78e38

As far as I understand it, that PR introduced the seemingly ad-hoc
additions of 6 and 12 units to the traffic light position calculations,
not directly modifying the `const` values introduced by
d6a72fbfc4.

* fix: re-enable app window shadows on Linux

* chore: log `window.set_shadow` errors

* chore: trigger CI
2025-05-05 19:38:10 +00:00
Emma Alexia
f71830e0fa Add helpful functions for interacting with db manually (#3602)
Brought over from modrinth/labrinth#862
2025-05-03 12:15:15 +00:00
ToBinio
bd0d6a9ac0 chore(theseus): add https://*.githubusercontent.com to frame-src (#1298)
* chore: add https://*.githubusercontent.com to frame-src

* chore(app): move `githubusercontent.com` CSP allowance to the proper media category

---------

Co-authored-by: Alejandro González <me@alegon.dev>
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2025-05-02 16:53:52 +00:00
Prospector
dfef0df464 Update changelog
(cherry picked from commit ca2179c163244b2ed45fde57e5c9408a6b70605a)
2025-05-02 09:24:14 -07:00
Alejandro González
9821737431 chore: fix Docker build (#3594) 2025-05-02 15:40:34 +00:00
Erb3
f932ce7706 chore: move to .env.example (#3592)
* chore: move to .env.example

* docs: meniton copying .env.example

* chore: app-lib env example

Co-authored-by: Alejandro González <7822554+AlexTMjugador@users.noreply.github.com>

Signed-off-by: Erb3 <49862976+Erb3@users.noreply.github.com>

---------

Signed-off-by: Erb3 <49862976+Erb3@users.noreply.github.com>
2025-05-02 14:20:40 +00:00
Josiah Glosson
de3019e92b Theseus build updates (#3588)
* Add launcher_feature_version to Profile

* Misc fixes

- Add typing to theme and settings stuff
- Push instance route on creation from installing a modpack
- Fixed servers not reloading properly when first added

* Make old instances scan the logs folder for joined servers on launcher startup

* Create AttachedWorldData

* Change AttachedWorldData interface

* Rename WorldType::World to WorldType::Singleplayer

* Implement world display status system

* Fix Minecraft font

* Fix set_world_display_status Tauri error

* Add 'Play instance' option

* Add option to disable worlds showing in Home

* Fixes

- Fix available server filter only showing if there are some available
- Fixed server and singleplayer filters sometimes showing when there are only servers or singleplayer worlds
- Fixed new worlds not being automatically added when detected
- Rephrased Jump back into worlds option description

* Fixed sometimes more than 6 items showing up in Jump back in

* Fix servers.dat issue with instances you haven't played before

* Update a bunch of app dependencies in non-breaking ways

* Update dependencies in app-lib that had breaking updates

* Update dependencies in app that had breaking updates

* Fix too large of bulk requests being made, limit max to 800 #3430

* Also update tauri-plugin-opener

* Update app-lib to Rust 2024

* Non-breaking updates in ariadne

* Breaking updates in ariadne

* Ariadne Rust 2024

* Add hiding from home page, add types to Mods.vue

* Make recent worlds go into grid when display is huge

* Fix lint

* Remove redundant media query

* Fix protocol version on home page, and home page being blocked by pinging servers

* Clippy fix in app-lib

* Clippy fix in app

* Clippy fix

* More Clippy fixes

* Fix Prettier lints

* Undo `from_string` changes

* Update macos dependencies

* Apply updates to app-playground as well

* Update Wry + Tauri

* Update sysinfo

* Update theseus_gui to Rust 2024

* Downgrade rand in ariadne to fix labrinth

Labrinth can't use rand 0.9 due to argon2

* Cargo format

---------

Signed-off-by: Josiah Glosson <soujournme@gmail.com>
Co-authored-by: Prospector <prospectordev@gmail.com>
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
Co-authored-by: Alejandro González <me@alegon.dev>
2025-05-02 09:51:17 +00:00
Prospector
20b616a7c4 Update changelog 2025-05-01 18:25:46 -07:00
Prospector
4180544e0a Bump version 2025-05-01 17:49:31 -07:00
Prospector
9168d349fc Fix filter bar showing up with no options 2025-05-01 16:27:18 -07:00
Prospector
3dad6b317f MR App 0.9.5 - Big bugfix update (#3585)
* Add launcher_feature_version to Profile

* Misc fixes

- Add typing to theme and settings stuff
- Push instance route on creation from installing a modpack
- Fixed servers not reloading properly when first added

* Make old instances scan the logs folder for joined servers on launcher startup

* Create AttachedWorldData

* Change AttachedWorldData interface

* Rename WorldType::World to WorldType::Singleplayer

* Implement world display status system

* Fix Minecraft font

* Fix set_world_display_status Tauri error

* Add 'Play instance' option

* Add option to disable worlds showing in Home

* Fixes

- Fix available server filter only showing if there are some available
- Fixed server and singleplayer filters sometimes showing when there are only servers or singleplayer worlds
- Fixed new worlds not being automatically added when detected
- Rephrased Jump back into worlds option description

* Fixed sometimes more than 6 items showing up in Jump back in

* Fix servers.dat issue with instances you haven't played before

* Fix too large of bulk requests being made, limit max to 800 #3430

* Add hiding from home page, add types to Mods.vue

* Make recent worlds go into grid when display is huge

* Fix lint

* Remove redundant media query

* Fix protocol version on home page, and home page being blocked by pinging servers

* Clippy fix

* More Clippy fixes

* Fix Prettier lints

* Undo `from_string` changes

---------

Co-authored-by: Josiah Glosson <soujournme@gmail.com>
Co-authored-by: Alejandro González <me@alegon.dev>
2025-05-01 16:13:13 -07:00
Prospector
4a2605bc1e Add ability to switch payment interval for Modrinth+ (#3581) 2025-05-01 17:36:51 +00:00
jade
41543e3af0 Use project/user/org permalinks in moderation queue page (#3586) 2025-05-01 00:46:54 +00:00
Prospector
6003f1a10e Update changelog 2025-04-29 08:13:36 -07:00
Prospector
3d9be0cc3f Fix duplicate hidden entries in analytics (#3576) 2025-04-29 08:12:38 -07:00
Prospector
5e7444f115 intl:extract 2025-04-28 19:42:16 -07:00
Prospector
20fcf70e90 Update changelog, fix overflowing maven coords 2025-04-28 19:41:08 -07:00
Emma Alexia
0508f13cb6 Quick moderation fixes (#3556)
* Quick moderation fixes

* Fix Odyssey mods linking
* Add "Copy permanent link" button to orgs, users, projects
* Use permanent links for Slack webhooks

* Update apps/frontend/src/pages/organization/[id].vue

Co-authored-by: Alejandro González <7822554+AlexTMjugador@users.noreply.github.com>
Signed-off-by: Emma Alexia <wafflecoffee7@gmail.com>

* Run Prettier

---------

Signed-off-by: Emma Alexia <wafflecoffee7@gmail.com>
Co-authored-by: Alejandro González <7822554+AlexTMjugador@users.noreply.github.com>
Co-authored-by: Alejandro González <me@alegon.dev>
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2025-04-29 01:18:43 +00:00
Emma Alexia
2f68c62b3a Improve wording about unprovisioned servers (#3574) 2025-04-29 01:13:44 +00:00
Prospector
ea64e08791 Add support for snapshots with Modrinth Servers (#3570)
* Add support for snapshots with Modrinth Servers

* Fix snapshots without dots

* Fix loader version not resetting when no longer valid

* Fix collapsing margins on Report page
2025-04-28 18:14:04 -07:00
Alejandro González
6f485d62ad Simplify Mac app download links (#3519)
* tweak(frontend/app): simplify download links, remove dead code

* chore: apply @triphora's suggestion

Co-authored-by: Emma Alexia <emma@modrinth.com>
Signed-off-by: Alejandro González <7822554+AlexTMjugador@users.noreply.github.com>

---------

Signed-off-by: Alejandro González <7822554+AlexTMjugador@users.noreply.github.com>
Co-authored-by: Emma Alexia <emma@modrinth.com>
2025-04-27 23:03:13 +00:00
Prospector
362fc11c81 Update changelog for 0.9.4 2025-04-26 19:28:44 -07:00
Jai A
9e9fb0a9fc Bump app version + update posthog URL 2025-04-26 18:14:17 -07:00
Prospector
ff4c7f47b2 Direct World Joining (#3457)
* Begin work on worlds backend

* Finish implementing get_profile_worlds and get_server_status (except pinning)

* Create TS types and manually copy unparsed chat components

* Clippy fix

* Update types.d.ts

* Initial worlds UI work

* Fix api::get_profile_worlds to take in a relative path

* sanitize & security update

* Fix sanitizePotentialFileUrl

* Fix sanitizePotentialFileUrl (for real)

* Fix empty motd causing error

* Finally actually fix world icons

* Fix world icon not being visible on non-Windows

* Use the correct generics to take in AppHandle

* Implement start_join_singleplayer_world and start_join_server for modern versions

* Don't error if server has no cached icon

* Migrate to own server pinging

* Ignore missing server hidden field and missing saves dir

* Update world list frontend

* More frontend work

* Server status player sample can be absent

* Fix refresh state

* Add get_profile_protocol_version

* Add protocol_version column to database

* SQL INTEGER is i64 in sqlx

* sqlx prepare

* Cache protocol version in database

* Continue worlds UI work

* Fix motds being bold

* Remove legacy pinging and add a 30-second timeout

* Remove pinned for now and match world (and server) parsing closer to spec

* Move type ServerStatus to worlds.ts

* Implement add_server_to_profile

* Fix pack_status being ignored when joining from launcher

* Make World path field be relative

* Implement rename_world and reset_world_icon

* Clippy fix

* Fix rename_world

* UI enhancements

* Implement backup_world, which returns the backup size in bytes

* Clippy fix

* Return index when adding servers to profile

* Fix backup

* Implement delete_world

* Implement edit_server_in_profile and remove_server_from_profile

* Clippy fix

* Log server joins

* Add edit and delete support

* Fix ts errors

* Fix minecraft font

* Switch font out for non-monospaced.

* Fix font proper

* Some more world cleanup, handle play state, check quickplay compatibility

* Clear the cached protocol version when a profile's game version is changed

* Fix tint colors in navbar

* Fix server protocol version pinging

* UI fixes

* Fix protocol version handler

* Fix MOTD parsing

* Add worlds_updated profile event

* fix pkg

* Functional home screen with worlds

* lint

* Fix incorrect folder creation

* Make items clickable

* Add locked field to SingleplayerWorld indicating whether the world is locked by the game

* Implement locking frontend

* Fix locking condition

* Split worlds_updated profile event into servers_updated and world_updated

* Fix compile error

* Use port from resolve SRV record

* Fix serialization of ProfilePayload and ProfilePayloadType

* Individual singleplayer world refreshing

* Log when worlds are perceived to be updated

* Push logging + total refresh lock

* Unlisten fixes

* Highlight current world when clicked

* Launcher logs refactor (#3444)

* Switch live log to use STDOUT

* fix clippy, legacy logs support

* Fix lint

* Handle non-XML log messages in XML logging, and don't escape log messages into XML

---------

Co-authored-by: Josiah Glosson <soujournme@gmail.com>

* Update incompatibility text

* Home page fixes, and unlock after close

* Remove logging

* Add join log database migration

* Switch server join timing to being in the database instead of in a separate log file

* Create optimized get_recent_worlds function that takes in a limit

* Update dependencies and fix Cargo.lock

* temp disable overflow menus

* revert home page changes

* Enable overflow menus again

* Remove list

* Revert

* Push dev tools

* Remove default filter

* Disable debug renderer

* Fix random app errors

* Refactor

* Fix missing computed import

* Fix light mode issues

* Fix TS errors

* Lint

* Fix bad link in change modpack version modal

* fix lint

* fix intl

---------

Co-authored-by: Josiah Glosson <soujournme@gmail.com>
Co-authored-by: Jai A <jaiagr+gpg@pm.me>
Co-authored-by: Jai Agrawal <18202329+Geometrically@users.noreply.github.com>
2025-04-26 18:09:58 -07:00
Prospector
25016053ca Update changelog 2025-04-25 19:41:41 -07:00
Emma Alexia
f9c0c1bc53 Clarify that Modrinth Servers prices are in USD (#3553)
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2025-04-26 02:35:30 +00:00
Prospector
73e54a5fbb Add Servers cancellation survey (#3551) 2025-04-25 19:31:36 +00:00
Erb3
6f902e2107 feat(labrinth): environment variables for more customizable SMTP (#2886)
* refactor: move .env to .env.example

* refactor(labrinth): allow setting SMTP port and TLS

This will help setting up labrinth for local development. You can now use a mock SMTP server such as smtp4dev. The TLS options will stay the same as before if set to `true`, and disabled when `false`.

Depends on #2883

* chore(labrinth): lint

* chore(labrinth): conflicts

* chore(labrinth): conflicts

* fix: use TLS port by default

Co-authored-by: AlexTMjugador<me@alegon.dev>

Co-authored-by: Alejandro González <7822554+AlexTMjugador@users.noreply.github.com>
Signed-off-by: Erb3 <49862976+Erb3@users.noreply.github.com>

* fix(labrinth): correct deafult SMTP port in .env

* feat(labrinth): expose all SMTP TLS settings

Replaced if/else with a switch statement. The new values for `SMPT_TLS` are `none`, `opportunistic_start_tls`, `requires_start_tls`, `tls`. When none of these values are supplied, it defaults to full TLS (`tls`), and throws a warning.

Resolves PR review

* fix(labrinth): correct SMTP TLS example .env setting

Signed-off-by: Erb3 <49862976+Erb3@users.noreply.github.com>

* fix(labrinth) SMTP tls env var check

Co-authored-by: Alejandro González <7822554+AlexTMjugador@users.noreply.github.com>
Signed-off-by: Erb3 <49862976+Erb3@users.noreply.github.com>

---------

Signed-off-by: Erb3 <49862976+Erb3@users.noreply.github.com>
Co-authored-by: Alejandro González <7822554+AlexTMjugador@users.noreply.github.com>
2025-04-22 11:29:14 +00:00
Alejandro González
ecb1379585 enh(labrinth): proper Clickhouse user setup for local development (#3545) 2025-04-21 15:44:24 +00:00
Alejandro González
068711e7a9 enh(labrinth): disable hCaptcha verification when secret is unset (#3544) 2025-04-21 15:42:17 +00:00
maksimetny
f695fe0ee7 Adds drag region support for touch screens (#3178)
https://github.com/tauri-apps/tauri/issues/4746#issuecomment-2007114269

Signed-off-by: maksimetny <46288028+maksimetny@users.noreply.github.com>
2025-04-19 19:18:37 +00:00
Aaron Müller
6cdc07406d Use the new ConfirmModal (#3458)
* style: copy from old modal

* chore: move to new modals

* eslint: fix sorting

---------

Signed-off-by: Aaron Müller <160637865+amueller0@users.noreply.github.com>
2025-04-19 14:50:30 +00:00
Erb3
daf6999111 Document usage of OAuth (#3342)
* docs: hitchhiker's guide to OAuth

* docs: remove old OAuth guide from OpenApi spec

* fixup! docs: remove old OAuth guide from OpenApi spec

* docs: mention /user endpoint in oauth

* docs: oauth flow overview

* docs: mention PAT

* docs: fix reviews

* docs: support portal over github issue

Signed-off-by: Erb3 <49862976+Erb3@users.noreply.github.com>

---------

Signed-off-by: Erb3 <49862976+Erb3@users.noreply.github.com>
2025-04-19 13:51:01 +00:00
Magnus Jensen
42731521f1 fix: instance project author link not checking for organizations (#3315)
Co-authored-by: Emma Alexia <emma@modrinth.com>
2025-04-19 13:44:46 +00:00
Calum H.
182119aedf feat: modrinth maven developer mode additions (#3498)
* feat: modrinth maven copy string in developer mode

* feat: Modrinth maven in versions list dropdown for developer mode.

* fix: lint
2025-04-19 13:10:34 +00:00
MikeyPants
59e18b3104 fix(apps/frontend): error data can be undefined (#3513) 2025-04-19 13:05:43 +00:00
Emma Alexia
5c1f198397 Add ability to delete user icon (#3383)
* Add user icon delete route

By request of moderation, but also just generally nice to have

* Add relevant docs and frontend

* Add v2 version
2025-04-19 12:49:23 +00:00
Emma Alexia
3cd6718384 Fix inverted condition with refunds (#3539)
Signed-off-by: Emma Alexia <emma@modrinth.com>
2025-04-19 12:25:43 +00:00
Prospector
1903980b71 Update Servers marketing page (#3535)
* Update Servers marketing page

* Add burst FAQ

* Updated phrasing again

* Fix servers page when not logged in

* Update changelog
2025-04-18 22:23:30 -07:00
Emma Alexia
84a28e045b Allow servers to be unprovisioned without issuing a refund (#3534)
* Allow servers to be unprovisioned without issuing a refund

for very specific weird circumstances where a server gets stuck/etc; useful for support

* still create a charge

* Fix compile
2025-04-19 04:39:18 +00:00
Emma Alexia
d0aef27f7b Fix deleting a user that has a prior subscription (#3533)
(for real this time)
2025-04-19 04:38:54 +00:00
Prospector
d6a74b0cfe Fix prepare initiating overriding states, and add handling of failed file prep 2025-04-17 02:56:26 -07:00
Prospector
0c43eb0d22 Update changelog date 2025-04-17 02:19:06 -07:00
Sticks
f8494030aa backup page fixes and new impls for new apis (#3437)
* wip: backup page fixes and new impls for new apis

* wip: more progress on backup fixes, almost done

* lint

* Backups cleanup

* Don't show create warning if creating

* Fix ongoing state

* Download support

* Support ready

* Disable auto backup button

* Use auth param for download of backups

* Disable install buttons when backup is in progress, add retrying

* Make prepare button have immediate feedback, don't refresh backups in all cases

* Intl:extract & rebase fixes

* Updated changelog and fix lint

---------

Co-authored-by: Prospector <prospectordev@gmail.com>
2025-04-17 01:26:13 -07:00
Prospector
817151e47c Add notice dismissed count to dashboard 2025-04-15 18:11:32 -07:00
Prospector
d5dfb609cf Update changelog 2025-04-15 16:31:52 -07:00
Prospector
09aae0edc9 Update changelog 2025-04-15 16:31:52 -07:00
Prospector
6aa6db4e8c Survey notices for Servers (#3514)
* Survey notices for Servers

* lint

* remove creepy frog
2025-04-15 16:29:50 -07:00
Jai Agrawal
76be502e16 Make connections short-lived redis (#3509) 2025-04-15 15:39:13 -07:00
Prospector
04659a8198 Notices fixes and support for titles (#3508)
* Notices fixes and support for titles

* Lint
2025-04-14 16:58:31 -07:00
Prospector
6c16688ca9 Remove notice limit 2025-04-12 22:23:45 -07:00
Emma Alexia
f2ec89e62b Fix two database errors (#3483)
* Fixes error when an admin tries transferring project ownership
* Fixes error when trying to delete a user when they previously have a transaction

Co-authored-by: Jai Agrawal <18202329+Geometrically@users.noreply.github.com>
2025-04-12 22:21:02 -07:00
Prospector
edd09b0b16 Update changelog 2025-04-12 22:06:22 -07:00
Prospector
59edc8d618 Add notices system to Servers (#3502)
* Servers notices

* Refresh on unassign
2025-04-12 22:00:22 -07:00
Aaron Müller
56520572b2 fix: dropdown import (#3459)
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
Co-authored-by: Emma Alexia <emma@modrinth.com>
2025-04-12 16:22:16 +00:00
Alejandro González
487bdd1e48 chore: remove unused Rust dependencies (#3492) 2025-04-12 15:42:45 +00:00
Tiziano
8ad5e011ca Update 1-app-bug.yml (#3486)
Signed-off-by: Tiziano <69322987+T1xx1@users.noreply.github.com>
2025-04-12 15:22:41 +00:00
un_pogaz
6f43fc272b fix: use local assets for "apps/labrinth/README.md" (#3489) 2025-04-12 15:21:20 +00:00
Alejandro González
e008b657a5 Fix Clippy lints (#3494)
* chore: fix some Clippy lints

* chore(labrinth): more Clippy fixes
2025-04-12 13:45:17 +00:00
Emma Alexia
365367dd16 Hide collections with no projects from public view (#3408)
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2025-04-06 20:54:18 +00:00
Jai A
36367e475e fix margin 2025-04-04 00:49:58 -07:00
Jai A
13f2961e43 run migrate 2025-04-03 17:47:30 -07:00
Jai A
69b70d70a8 Remove lock, fix billing job 2025-04-03 16:14:27 -07:00
Jai A
d0d0dcf09f Fix billing setup 2025-04-03 15:44:53 -07:00
Prospector
41b9729b9b Update changelog 2025-04-01 21:03:40 -07:00
Prospector
a2009cae39 Revert "fixed a bug"
This reverts commit 49faba6ad2.
2025-04-01 20:54:05 -07:00
Prospector
fab086b3e1 Revert "favicon"
This reverts commit e8f8be1940.
2025-04-01 20:54:05 -07:00
Prospector
f379126242 Revert "more improvements (#3449)"
This reverts commit 3d2cef40d5.
2025-04-01 20:54:04 -07:00
Prospector
8e0d9f2da6 Revert "Add craftmine support"
This reverts commit 4624a29332.
2025-04-01 20:54:04 -07:00
Prospector
e931b5c8ef Revert "Pizza highlight"
This reverts commit 9024b2eec5.
2025-04-01 20:54:04 -07:00
Prospector
84617d0c49 Revert "bypass discord cache"
This reverts commit 9b442d04d9.
2025-04-01 20:54:04 -07:00
Prospector
0908cf4e94 Revert "use modrinth links"
This reverts commit 916f27c5ab.
2025-04-01 20:54:04 -07:00
Prospector
916f27c5ab use modrinth links 2025-04-01 10:32:52 -07:00
Prospector
9b442d04d9 bypass discord cache 2025-04-01 09:55:29 -07:00
Prospector
9024b2eec5 Pizza highlight 2025-04-01 09:51:04 -07:00
Prospector
4624a29332 Add craftmine support 2025-04-01 09:50:00 -07:00
Sticks
3d2cef40d5 more improvements (#3449)
* more improvements

* fix: apply pnpm run fix
2025-03-31 20:34:49 -07:00
Prospector
e8f8be1940 favicon 2025-03-31 17:53:57 -07:00
Prospector
49faba6ad2 fixed a bug 2025-03-31 17:21:31 -07:00
Jai A
b9d90aa635 Rebuild daedalus 2025-03-26 21:51:46 -07:00
Nitrrine
5bcf65dd67 Limit project version number to 32 chars (#3425) 2025-03-26 03:43:58 +00:00
JakobDev
742d2ed9c3 Fix MimeType on Linux Desktop File (#3313)
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2025-03-26 01:18:02 +00:00
Prospector
86128f953a Update changelog 2025-03-25 18:17:53 -07:00
moehreag
b8e5a6944e fix: hide resubmit nag for draft projects (#3354)
Co-authored-by: Emma Alexia <emma@modrinth.com>
2025-03-25 18:17:35 -07:00
Prospector
4508fad588 Attempt to fix displayName undefined error (#3424) 2025-03-26 01:04:50 +00:00
Jan Straßburger
fd2f500038 Fix correct 'versions' description in Statistics schema (#3396)
Co-authored-by: Jai Agrawal <18202329+Geometrically@users.noreply.github.com>
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
Co-authored-by: Emma Alexia <emma@modrinth.com>
2025-03-25 18:20:36 +00:00
Prospector
a20374d6e3 Fix errors with intl extraction, extract error.vue (#3421)
* Fix errors with intl extraction, extract error.vue

* Update changelog and fix lint
2025-03-25 10:38:04 -07:00
Prospector
ffc69dbaba Update changelog 2025-03-25 09:22:51 -07:00
Prospector
6b98655069 Fix modrinth logo on home page 2025-03-25 09:19:43 -07:00
Jai Agrawal
b5a9a93323 Distributed rate limit, fix search panic, add migration task (#3419)
* Distributed rate limit, fix search panic, add migration task

* Add binary info to root endpoint
2025-03-25 01:10:43 -07:00
Jai A
5fbf5b22c0 Update ads.txt 2025-03-22 10:24:24 -07:00
Josiah Glosson
99cd96faa8 Use the log config from the Vanilla client.json (#3411)
* Use the log config from the Vanilla client.json

* Remove debug message

---------

Co-authored-by: Jai Agrawal <18202329+Geometrically@users.noreply.github.com>
2025-03-20 13:42:37 -07:00
Erb3
c4b60f1720 Prefer icons from modrinth/assets (#3394)
Replaced all icon usages of `apps/frontend/src/assets/image/utils` for `@modrinth/assets`.

The only icon which has been changed is the `WorldIcon`, which has been replaced by the `GlobeIcon`.
2025-03-18 18:28:23 -07:00
Prospector
a19bf3dc0e Servers: Only apply game version filters when searching for non-modpack projects, auto-populate plugin loaders (#3403) 2025-03-18 18:27:15 -07:00
Prospector
77021d2af8 Handle downtime errors, give more information on error pages. (#3402)
Co-authored-by: Jai Agrawal <18202329+Geometrically@users.noreply.github.com>
2025-03-18 18:26:57 -07:00
Prospector
16893ec0e3 Fix display of critical announcements in app (#3407) 2025-03-18 18:24:14 -07:00
Jai A
d49cc87b8c only run migrations on prod instances 2025-03-15 08:32:45 -07:00
Josiah Glosson
c998d2566e Allow multiple labrinth instances (#3360)
* Move a lot of scheduled tasks to be runnable from the command-line

* Use pubsub to handle sockets connected to multiple Labrinths

* Clippy fix

* Fix build and merge some stuff

* Fix build fmt
:

---------

Signed-off-by: Jai Agrawal <18202329+Geometrically@users.noreply.github.com>
Co-authored-by: Jai A <jaiagr+gpg@pm.me>
Co-authored-by: Jai Agrawal <18202329+Geometrically@users.noreply.github.com>
2025-03-15 07:28:20 -07:00
Prospector
84a9438a70 Update changelog 2025-03-13 19:24:34 -07:00
Prospector
09ae3515f7 Update changelog 2025-03-13 19:22:59 -07:00
Prospector
b665c17be8 Update servers marketing page (#3399)
Co-authored-by: Jai Agrawal <18202329+Geometrically@users.noreply.github.com>
2025-03-13 19:19:40 -07:00
Josiah Glosson
eccd852426 Add log config parsing support to daedelus (#3395) 2025-03-13 13:04:44 -07:00
Tiziano
827e3ec0a0 fix(frontend): mobile navbar covers legal disclaimer in the bottom of the footer (#3366) 2025-03-12 09:53:55 -07:00
Erb3
801c03981a refactor(web): properly create table in cmp-info according to spec (#3362)
Stops the vue compiler from nagging you, and improves consistency with other tables.
2025-03-12 09:53:44 -07:00
Emma Alexia
31a001bbc1 Fix moderation review page (#3389) 2025-03-12 09:53:11 -07:00
Prospector
621ed5fb02 Fix wording on CMP info page (#3385) 2025-03-11 23:28:17 -07:00
Jai Agrawal
887e437d35 Move archon to env var (#3386) 2025-03-11 23:27:49 -07:00
Emma Alexia
1ea196051f Update CCPA notice with updated information for Servers (#3384) 2025-03-11 17:00:30 -07:00
felix
366f528853 Fix but better (#3376)
Signed-off-by: felix <60808107+ItsFelix5@users.noreply.github.com>
2025-03-11 19:46:31 +00:00
Josiah Glosson
d6c8af7ed5 Fix Labrinth not compiling on Windows due to jemalloc dependency (#3378) 2025-03-10 21:45:36 +00:00
Jai Agrawal
4dd33a2f9e Fix issues being excluded by delphi (#3374) 2025-03-09 17:15:07 -07:00
Jai Agrawal
1009695a15 Support jemalloc profiling and heap dumps (#3373) 2025-03-09 14:41:19 -07:00
Jai A
d3427375b0 fix lint 2025-03-09 13:21:15 -07:00
Jai Agrawal
5c8ed9a8ca Tracing support (#3372)
* Tracing support

* Add console subscriber

* Add console subscriber
2025-03-09 13:01:24 -07:00
Jai Agrawal
9c5d817a8a Add prom metrics for database, use redis max conn var (#3359) 2025-03-07 17:16:45 -08:00
Prospector
d51a1c47c7 Update changelog 2025-03-05 17:37:45 -08:00
Prospector
2b7378bd64 Fix moderation-side issues (#3345)
* Fix moderation-side issues by segmenting requests in review page and handling missing users in report page

* increase to 100

* 450 limit

* fine! take 1000!
2025-03-05 17:30:41 -08:00
Jai Agrawal
c1bb934fc6 Add clickhouse replication, exclude bad prom metrics (#3344) 2025-03-05 15:40:46 -08:00
Michael
0d223e3ab5 Use dumb-init as entrypoint (#3343) 2025-03-05 15:40:27 -08:00
Prospector
b704e0c8ed Update changelog 2025-03-05 12:36:57 -08:00
Prospector
79279479b1 Minor bugfixes (#3338)
* Workaround linux firefox repeat issue

* Nullcheck onShow/onHide functions
2025-03-05 12:28:48 -08:00
Prospector
ee4d7c88f1 Fix lint 2025-03-04 10:06:11 -08:00
Prospector
09023f2b49 Update changelog 2025-03-03 22:23:53 -08:00
Prospector
36cfcc2093 Admin & staff page enhancements (#3333) 2025-03-03 22:22:25 -08:00
Prospector
c2d455f166 Add random project easter egg (#3335) 2025-03-03 22:22:10 -08:00
Jai Agrawal
6859509eb5 Fix all tests (#3332) 2025-03-03 16:05:39 -08:00
Tiziano
e2de39ad83 chore: update docs deps/pkgs (#3326)
* chore: run astro upgrade cli cmd

* chore: move content config & add content loader

* chore: update pkgs

* fix: bump starlight-openapi

* fix: bump sharp

* fix: update pnpm-lock
2025-03-03 11:15:48 -08:00
Prospector
ca2307e609 Fix changelog 2025-03-02 18:45:09 -08:00
Prospector
0c58b5b83d Update changelog 2025-03-02 18:40:55 -08:00
Prospector
74a12bd606 Add scrollbar to moderation checklist when too tall (#3319) 2025-03-02 18:37:31 -08:00
Prospector
9bb9e13ee8 Add copy ID button to versions list (#3327) 2025-03-02 18:37:21 -08:00
Jai Agrawal
19787a3f51 Subpackage common -> ariadne (#3323)
* Subpackage common -> ariadne

* add common

* Remove build

* only build labrinth

* common

* set sqlx offline

* copy dirs

* Fix build
2025-03-01 20:53:43 -08:00
Josiah Glosson
650ab71a83 Commonized networking (#3310)
* Fix not being able to connect to local friends socket

* Start basic work on tunneling protocol and move some code into a common crate

* Commonize message serialization logic

* Serialize Base62Ids as u64 when human-readability is not required

* Move ActiveSockets tuple into struct

* Make CI run when rust-common is updated

CI is currently broken for labrinth, however

* Fix theseus-release.yml to reference itself correctly

* Implement Labrinth side of tunneling

* Implement non-friend part of theseus tunneling

* Implement client-side except for socket loop

* Implement the socket loop

Doesn't work though. Debugging time!

* Fix config.rs

* Fix deadlock in labrinth socket handling

* Update dockerfile

* switch to workspace prepare at root level

* Wait for connection before tunneling in playground

* Move rust-common into labrinth

* Remove rust-common references from Actions

* Revert "Update dockerfile"

This reverts commit 3caad59bb4.

* Fix Docker build

* Rebuild Theseus if common code changes

* Allow multiple connections from the same user

* Fix test building

* Move FriendSocketListening and FriendSocketStoppedListening to non-panicking TODO for now

* Make message_serialization macro take varargs for binary messages

* Improve syntax of message_serialization macro

* Remove the ability to connect to a virtual socket, and disable the ability to listen on one

* Allow the app to compile without running labrinth

* Clippy fix

* Update Rust and Clippy fix again

---------

Co-authored-by: Jai A <jaiagr+gpg@pm.me>
2025-02-28 10:52:47 -08:00
Prospector
90def724c2 Update changelog 2025-02-25 10:11:26 -08:00
Prospector
f357275fd3 Fix upgrades being allowed when out of stock (#3307) 2025-02-25 10:07:59 -08:00
Erb3
2c2a13b587 fix(frontend): make collection summary optional in editing (#3304)
Forgot to fix it here too in #3292.
Reported by @falseresync
2025-02-25 17:53:29 +00:00
Prospector
b3a664e0d4 Improve clarity of ongoing revenue period notice (#3301)
* Improve clarity of ongoing revenue period notice

* get rid of semicolon

---------

Co-authored-by: Jai Agrawal <18202329+Geometrically@users.noreply.github.com>
2025-02-24 19:01:41 -08:00
Prospector
3140dab99d Move Minecraft brand disclaimer to bottom of footer (#3302)
* Move Minecraft brand disclaimer to bottom of footer

* Add careers link back to footer

* Intl extract

---------

Co-authored-by: Jai Agrawal <18202329+Geometrically@users.noreply.github.com>
2025-02-24 19:00:42 -08:00
Josiah Glosson
a74b2da147 Change app-lib io::rename to io::rename_or_move (#3251)
Also add io::is_same_disk and io::create_dir

Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
Co-authored-by: Jai Agrawal <18202329+Geometrically@users.noreply.github.com>
2025-02-24 19:00:17 -08:00
Prospector
701fef08f8 Make debug info always expanded to aid support team, add copy button (#3282)
* Make debug info always expanded to aid support team, add copy button

* Remove testing error lol
2025-02-21 21:50:43 +00:00
Prospector
37ecf75087 Fix lint on toggle 2025-02-21 13:22:56 -08:00
Prospector
4c99e379f2 Update changelog for Feb 21st release 2025-02-21 13:20:18 -08:00
Erb3
fc2c740843 fix(frontend): make collection summary optional (#3292)
Reported by @falseresync
2025-02-21 21:09:26 +00:00
Erb3
1358336a76 refactor(ui): move Chips component to composition API + TS (#3288)
* refactor(ui): move Chips component to composition API + TS

* refactor(ui): move Chips component to composition API + TS
2025-02-21 18:59:19 +00:00
Calum H.
a02eb5445b Update Last Modified in cmp-info (#3287)
Signed-off-by: Calum H. <hendersoncal117@gmail.com>
2025-02-21 18:45:55 +00:00
Erb3
195cc9cee0 refactor(ui): move Toggle component to Composition API + TS (#3281)
* refactor(frontend): move Toggle component to Composition API + TS

**Toggle.vue**:
- Enable composition API and TS
- Added `disabled` to props
- Remove redundant `checked`
- Replace `modelValue` and `emits` with `defineModel` compiler macro

**Others**:
- Replace emit handling and `model-value` with `v-model` where simple logic was used
  - Not `FeatureFlagSettings.vue` (contained custom code on receiving emit)
  - Not `Mods.vue` (contained custom code on receiving emit)
- Remove redundant `checked` attribute

* fix(app): toggles not updating value
2025-02-21 18:43:49 +00:00
worldwidepixel
719b395b7b feat(frontend): Sort collections by creation date on user pages and dashboard (#3286) 2025-02-21 18:41:25 +00:00
Prospector
27fba4ba11 Fix padding error on revenue page (#3285) 2025-02-21 10:06:27 +00:00
Prospector
6667b620d1 Update changelog 2025-02-20 18:10:49 -08:00
Calum H.
c77f3395b2 feat(frontend): Improve revenue information (#3250)
* Improve revenue information

* Improve NET 60 period info + show next period if current period is over.

* invert period check

* %

* Finalize changes

* Cleanup

* Remove .idea

* Discard changes to .idea/discord.xml

* Discard changes to .idea/code.iml

* Discard changes to .idea/.gitignore

* Discard changes to .idea/libraries/KotlinJavaRuntime.xml

* Discard changes to .idea/vcs.xml

* Discard changes to .idea/modules.xml

* Discard changes to .idea/.gitignore

* fix lint issues

* table fix, lint fix and media sizing fix

* fix responsiveness

* Remove comment

* utc comment

* fix lint
2025-02-21 01:52:10 +00:00
Jai Agrawal
067f471766 Segment pending revenue in API response (#3283) 2025-02-20 23:07:54 +00:00
Prospector
f75d824c92 Add minimum height to content to fix space below the footer (#3279) 2025-02-20 22:38:28 +00:00
Prospector
c4f582e35b Fixed proof form styling in checklist (#3278) 2025-02-20 22:38:10 +00:00
Prospector
a8727d9a68 Updated changelog with Feb 19 update 2025-02-19 22:14:27 -08:00
Prospector
423dae5208 2025 :) 2025-02-19 22:10:15 -08:00
Prospector
dc7d8d6018 Add settings button to navbar 2025-02-19 22:08:16 -08:00
Prospector
db09ded836 New footer (#2988)
* Update footer to new design

* Update footer with changelog and security notice

* Move mastodon icon

* Make full-width instead of card

* Intl extract, lint
2025-02-19 22:01:29 -08:00
Prospector
df33ff7f60 Servers Marketing: Add Dallas location to globe, change copy to refer to states (#3272) 2025-02-19 22:01:11 -08:00
Prospector
ca63c09a0d Enhance moderation checklist (#3273) 2025-02-19 22:00:52 -08:00
Erb3
9c2cd868a7 refactor(frontend): Project page composition API + TS (#3245)
* refactor(frontend): move project description to composition API + TS

* refactor(frontend): rename to `patchRequestPayload` for consistency

* chore: lint
2025-02-19 18:49:07 +00:00
Jeffrey Daniel
f6d64e8fde Fix MessageBanner padding (#3271)
The MessageBanner padding that appears when a project is archived only has padding on the bottom and not the top. This means that there is no visual gap and it does follow the visual style of the rest of the website. I have fixed it.
2025-02-19 00:39:08 +00:00
Prospector
253e64884a Updated changelog with Servers Feb 18 release 2025-02-18 14:26:35 -08:00
Evan Song
a88593fec5 Modrinth Servers February Release: Bug Fix Round 1 (#3267)
* chore(pyroservers): attempt better error propogation

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore(pyroservers): introduce deferred modules

* fix(pyroservers): synchronize server icon processing

Signed-off-by: Evan Song <theevansong@gmail.com>

* refactor: server action buttons

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: bring back skeleton

* fix(startup): populate values on refresh

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: properly refresh network

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: do not open backup settings modal if fetch failed

* fix(platform): only clear selected loader version if selecting a different loader

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: parse links in console log

* fix: attempt to mitigate power button state flash

Signed-off-by: Evan Song <theevansong@gmail.com>

* Revert "fix: attempt to mitigate power button state flash"

This reverts commit 3ba5c0b4f7.

* refactor: error accumulation builder in PyroServersFetch

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: sentence case

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(files): await deferred fs

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: startup border

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: prevent suspended server errors from being overwritten

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: add server id copy button to suspended server listing

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: refresh behavior

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: behavior of server icon in options

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: clean

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: clean

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: prevent error inspector failures from destroying the page

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: clean

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: remove nexttick wrapper

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: ensure file edit gets initted due to deferred module

Signed-off-by: Evan Song <theevansong@gmail.com>

* refactor: prevent module errors from breaking the layout

* chore: clean

Signed-off-by: Evan Song <theevansong@gmail.com>

---------

Signed-off-by: Evan Song <theevansong@gmail.com>
2025-02-18 22:17:50 +00:00
Jai A
6c4548a303 add price id to active servers route 2025-02-16 21:42:16 -08:00
Prospector
4851f18079 Updated changelog 2025-02-16 19:04:11 -08:00
Jakob
bbb917c405 Fixed lack of space around verffication name in ConfirmModal (#3258)
Signed-off-by: Jakob <minenash@protonmail.com>
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2025-02-16 18:59:26 -08:00
Prospector
81d34dfa86 Add stock checking to server upgrades (#3270)
* Add stock checking to server upgrades

* Fix route
2025-02-16 18:58:09 -08:00
Jai Agrawal
31723a2d3c Fix prorations not updating open charge (#3265) 2025-02-14 22:53:45 -08:00
Jai Agrawal
975427b319 Allow admins to view user email (#3261) 2025-02-13 17:18:03 -08:00
Prospector
d9983debce Change out of stock URL to discord (#3256)
* Change out of stock URL to discord, switch from router links to normal anchor tags

* Update changelog
2025-02-12 19:09:11 -08:00
Prospector
6a12ef0e2c Fix lint 2025-02-12 19:08:08 -08:00
Prospector
56ba342346 Initial servers upgrades frontend (#3219)
* Initial servers upgrades frontend

* Fix error when purchasing non-custom servers

* fix backend

* Fix comment

---------

Signed-off-by: Jai Agrawal <18202329+Geometrically@users.noreply.github.com>
Co-authored-by: Jai A <jaiagr+gpg@pm.me>
Co-authored-by: Jai Agrawal <18202329+Geometrically@users.noreply.github.com>
2025-02-12 18:22:49 -08:00
Prospector
6d810a421a Servers marketing enhancements (#3252)
* feat: locations page + stock callouts

* feat: misalligned but spirits there!!

* fix readability on colors on globe

* Enhancements to globe

* Fix out of stock indicator styling

* Start globe near US and slow speed

* Remove debug statement

* Switch from capacity to stock API

* Make custom use its own stock checker

* Fix lint, add changelog entries

---------

Co-authored-by: Elizabeth <checksum@pyro.host>
Co-authored-by: Lio <git@lio.cat>
2025-02-12 12:06:51 -08:00
Prospector
098519dea1 Fix changelog timestamps being an hour off 2025-02-12 10:42:03 -08:00
Prospector
7183b3d761 Fix some changelog issues, and broader mobile padding issues (#3246) 2025-02-11 12:46:34 -08:00
Prospector
0ac49d846f Add project issues link to report form if it exists (#3215) 2025-02-11 11:07:23 -08:00
Prospector
cade2c182c Add changelog page to website (#3242)
* Add changelog page to website

* Add pages for individual changelog entries that can be linked to

* Handle first case for individual page

* Add some more changelog entries, improve some spacing
2025-02-11 08:50:27 -08:00
Erb3
affeec82f0 License UI redesign + composition API (#3225)
* refactor(frontend): revamp license page

- Add more understandable UI
  - Field titles
  - Field description
- Use more semantically correct elements
  - Make paragraph not a label
- Rephrase some parts
- Fields no longer jump around
- Split SPDX-identifier and license name into two seperate fields, for readability
- Sort imports
- fmt

* feat(frontend): encourage license URL on custom license

* refactor(frontend): license page to composition + ts

- Move to Vue composition API
- Move to TypeScript
- Move away from vue-multiselect to the dropdown component
- Use `formatProjectType` function for typesafety
- Remove unused form error highlighting code
- Creating typings for built-in licenses
- Move standard licenses to licenses.ts util
  - There are other license-related utils I want to move there eventually
- Fix typo in Project license type definition

* chore(frontend): fmt

* chore(frontend): fmt

* feat(frontend): require URL and name for custom license

* refactor(frontend): give license or-later checkbox own row

* chore(frontend): fmt
2025-02-10 08:37:49 -08:00
Evan Song
a75538c093 Modrinth Servers Mega Features & Bug Fix-a-thon (#3222)
* fix(content): changing mod versions works again

* chore(assets): update pyro logo

* fix(properties): deprecate fetchconfigfile

* Revert "fix(content): changing mod versions works again"

This reverts commit d7c0d1196f.

* feat(files): ability to sort via column click

* chore(startup): update clunky wording

* feat(serverListing): server icons SSR friendly

* fix(servers): if archon fails, display err in listing

* chore(serverlisting): use pyroserver hook to init icon

* chore(servers): much more graceful reinstall

* fix(servers): tw warn

* fix(platform): correctly react when pack reinstalled

* fix(serversroot): explicitly import navigateTo

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore(serverlabels): show skeleton instead of hiding

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat(platform): install-aware controls

Signed-off-by: Evan Song <theevansong@gmail.com>

* refactor!(platform): rewrite platform page

* fix(platform): regression in autoselecting loader

* chore(platform): prefer version over project modification date

* fix(platform): permanent hang after initial mount

* chore(platform): do not silently fail and hang if modpack fails loading

* oops: remove hardcoded error causer

* fix(platform): switch modpack btn while installing doesnt need class

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore(platform): adjust styling in version modal

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore(platform): prevent changing project card style

Signed-off-by: Evan Song <theevansong@gmail.com>

* refactor(pyrodropdown): rewrite

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(pyrodropdown): do nopt use deprecated substr

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: clean

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(network): sentence case

Signed-off-by: Evan Song <theevansong@gmail.com>

* refactor(terminal): initial batch

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(terminal): fulllog over fullscreen

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(terminal): fullscreen conflict with body scroll

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat(terminal): init drag select

* feat(terminal): shift click support

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore(terminal): double lines limit

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat(terminal): copy button

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore(terminal): protip style

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore(terminal): improve styles

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat(terminal): regex search

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore(terminal): move icons to icons dir

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore(terminal): improve drag select autoscroll inertia

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(terminal): cancel selection on right click

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(terminal): progblur and stb btn disappearing

Signed-off-by: Evan Song <theevansong@gmail.com>

* refactor(serverstats): power efficiency

* fix(subdomainlabel): correct tooltip terminology

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat(preferences): users hide subdomain label

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore(servers): clean

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore(terminal): deselect lines on escape

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(serversidebar): type err

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(fileitem): vue server render type

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(terminal): disable pointer events on lines if scrolling

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(terminal): search result counts style

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(terminal): plural

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore(terminal): clean

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat(terminal): view selection

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat(terminal): show actively selected lines in scrollbar

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(terminallog): btn color

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: clean

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(gamelabel): align to text

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(gamelabel): align to text

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(listing): remove deadcode

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(serverlisting): deprecated process.server

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(platform): correctly disable button

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(backups): do not allow backup creation during server installation

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(platform): flush stale currentversion data on successful install

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(gamelabel): fix gap

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore(network): vaporize uppercase

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore(info): vaporize uppercase

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore(backups): style unification

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore(backups): finalize style change

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(servers): catch pyro servers fetch errors during ssr

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(serverstats): ram as bytes graph now works

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(platform): unify attempts and refresh interval

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(terminal): input

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat(servers): installing ticket + update available notice back in platform

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore(terminal): dont add bg to scroll track

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(terminal): preserve whitespace

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore(serversroot): unnest blurred icon query

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(serverstats): clamp memory usage to 100% no matter what

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat(terminal): allow copy of single lines, show btn

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore(terminal): animate copy>view transition

Signed-off-by: Evan Song <theevansong@gmail.com>

* init: search improvements

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: lint

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: change log modal title

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: hide fullscreen when selecting and cancel selection on clickout

Signed-off-by: Evan Song <theevansong@gmail.com>

* refactor(terminal): more reliable jumpToLine

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: search results separator

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: remove buggy isScrollable check

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: style

Signed-off-by: Evan Song <theevansong@gmail.com>

* refactor: correctly store pos to make jump reliable

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: disparity between search/log dragselect

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: prevent propagation of click events when clicking on jump btn

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: switch selection strategies depending on terminal mode

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: smarter esc handling

Signed-off-by: Evan Song <theevansong@gmail.com>

* finalize

Signed-off-by: Evan Song <theevansong@gmail.com>

* run fix

* fix: ensure lines between cannot be selected

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: increase initial log batch to 256

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(terminal): click on scroll track should take user to new scroll position

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(terminal): update aria label for view selected logs btn

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: clean

Signed-off-by: Evan Song <theevansong@gmail.com>

---------

Signed-off-by: Evan Song <theevansong@gmail.com>
2025-02-10 07:39:13 -08:00
he3als
037cc86c1f Server Content Tab Fixes & Improvements (#3230)
* fix cancel button on edit modal

* make hardcoded mod text dynamic for plugins

* fix files path when clicking an external plugin

* fix plugins path for file uploads

* improve friendly mod name logic

* fix toggling plugins

* update pyroServers content definitions

* install then remove for changing version

Reinstall isn't currently implemented properly

* make the edit dialog pretty

* make new admonition component

* fix warning admonition colour

* new edit version modal

* cleanup

* make latest version default

* final touches

* lint
2025-02-08 10:31:38 -08:00
Jai Agrawal
1e8d550e96 Format traces as bullet list (MOD-32) (#3220)
* Format traces as bullet list

* Fix fmt
2025-02-06 13:23:42 -08:00
Jai A
acc379d14d Add clean.io to app frames 2025-02-06 10:20:58 -08:00
Jai A
5bc63a5ad3 Ads window system blocker 2025-02-06 10:02:44 -08:00
Prospector
a8630e93bc Redesign report form and prevent duplicate reports (#3211)
* Redesign report form and prevent duplicate reports

* Fix lint

* Add malware evidence notice to report form

* Fix lint
2025-02-02 14:09:10 -08:00
Prospector
9574e8e639 Add version deleting from the version list (#3204) 2025-01-30 23:51:52 +00:00
Prospector
14dacb2352 Moderation checklist message generation fixes with newlines (#3205)
* Add endline to end of file list in moderation checklist

* More line breaks and formatting in checklist
2025-01-30 23:51:39 +00:00
Prospector
8baa2a72fb Allow admins to edit collections on frontend (#3207) 2025-01-30 23:51:27 +00:00
Erb3
a5427f7287 fix(labrinth): cors headers on ratelimited (#3189)
Kinda hotfix.

Fixes #2591
Fixes #2529
2025-01-30 15:52:13 -08:00
Prospector
9180f5c8d0 Add seattle location to servers marketing, update CPU count (#3203) 2025-01-30 11:36:59 -08:00
felix
b5abce161f Update ChartDisplay.vue (#3200)
Signed-off-by: felix <60808107+ItsFelix5@users.noreply.github.com>
2025-01-29 20:08:29 +00:00
Prospector
8b3ede4218 Update number of projects stat in home page to 50,000 2025-01-28 19:11:03 -08:00
Julian Vennen
a4e024c690 Analyse logs without storing them on mclo.gs (#3196)
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2025-01-29 02:53:39 +00:00
Erb3
e368e35e74 fix(frontend): finish auth when redirect URI is supplied (#3191)
- Fixes #3188
- Refactors if-else statement into ternary
2025-01-29 02:51:41 +00:00
Owehttamy
1e09305fb3 Fix grammatical error (#3180)
Signed-off-by: Owehttamy <47429979+Owehttamy@users.noreply.github.com>
2025-01-29 02:50:36 +00:00
Erb3
4d32bb2330 feat: git attributes to enforce lf (#3193)
I noticed that the `.vscode` folder says LF endings should be used. However, I still regularily see CRLF. To fix this I've added a `.gitattributes` file which makes git convert endings to LF.
2025-01-29 02:50:05 +00:00
Magnus Jensen
46710c9501 fix: add correct styling class to button (#3170) 2025-01-29 02:40:19 +00:00
Erb3
79d131c7eb feat(frontend): update search to reset to page 1 (#3192)
Fixes #3176

**Changes**:

- Sets the pagination to page one if the search is updated. This is the norm on most websites, and how users expect it to work.
- Join `setPage` into `updateSearchResults`
  - Take a page number in `updateSearchResults`
- Remove unused param to `updateSearchResults`
- Update `watch` to not double requests
- use `scrollToTop` utility function
2025-01-29 02:37:57 +00:00
Calum H.
b1955363a6 refactor(knossos): Rewrite date range system on analytics dashboard. (#1301)
* Start work on refactoring date range system.

* Use timeResolution terminology.

* "Last month" initial default.

* Migrate fully to dayjs - ease of use.

* Discard changes to pnpm-lock.yaml

* utilize getter

* Fix date label in ChartDisplay.vue

* Finish cleanup

* Update STAGING_API_URL in nuxt.config.ts

* Lint fixes

* Refactor ChartDisplay.vue to handle loading state in selectedRange and formattedCategorySubtitle

* Remove modal impl

---------

Signed-off-by: Calum H. <contact@mineblock11.dev>
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2025-01-29 02:34:28 +00:00
Jai A
495dbbb7f8 Add server ID to staff refund page 2025-01-17 17:34:37 -08:00
Jai A
e0d0736f7e Fix wrong func call for refresh 2025-01-17 17:27:46 -08:00
Jai A
12bfebd8b5 run intl:extract 2025-01-17 17:25:08 -08:00
Jai A
af791f78b7 Fix refund frontend 2025-01-17 17:20:12 -08:00
Jai A
0f4af98a21 Fix integer overflow on charges 2025-01-17 17:01:35 -08:00
Jai Agrawal
75b357a069 Staff support dashboard routes (#3160)
* Staff support dashboard routes

* Fix clippy
2025-01-17 16:41:49 -08:00
Jai A
d7814e115d fix migration typo 2025-01-17 09:05:42 -08:00
Jai A
24295ea482 fix version uploading 2025-01-17 08:53:54 -08:00
Jai A
701bf853d5 Fix broken migration on labrinth (againx2) 2025-01-16 23:59:07 -08:00
Jai A
7fd3d737b8 Fix broken migration on labrinth (again) 2025-01-16 23:32:26 -08:00
Jai A
497b0bca0b Fix broken migration on labrinth 2025-01-16 23:00:11 -08:00
Jai A
208015a911 Bump rust version 2025-01-16 18:21:11 -08:00
Jai A
8abe2283d7 Fix clippy 2025-01-16 17:49:26 -08:00
Jai A
9e97c068d8 Fix version_fields, loader_fields_loaders missing primary keys 2025-01-16 17:41:41 -08:00
Jai A
abbfb3ca2f Merge remote-tracking branch 'origin/main' 2025-01-16 16:43:38 -08:00
Jai A
5c8e7a8b38 Support new delphi response type 2025-01-16 16:40:13 -08:00
Josiah Glosson
0d7934e3b8 Fix importing newer Prism instances (#3129)
* Fix importing newer Prism instances and clean up import code a bit

* cargo fmt

---------

Co-authored-by: Jai Agrawal <18202329+Geometrically@users.noreply.github.com>
2025-01-15 15:34:21 -08:00
Prospector
e4cc8ef509 Fix typescript for OverflowMenu (#3139)
* Fix typescript for OverflowMenu

* Revert Discover content dropdown change to non-hoverable OverflowMenu

* Lint
2025-01-15 12:59:24 -08:00
Evan Song
d670a5cbb6 PY-53 Subscription Force Renewal Button (#3153)
* chore: show resubscribe on `failed` status

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: hide cancel on failed

Signed-off-by: Evan Song <theevansong@gmail.com>

* update copy

Signed-off-by: Evan Song <theevansong@gmail.com>

---------

Signed-off-by: Evan Song <theevansong@gmail.com>
2025-01-15 20:44:51 +00:00
Josiah Glosson
227386bb0d Fix forever installing (#3135)
* Rough draft for fix for Mojang servers being down causing infinite installation

* Add "pack installed" install step

* Allow repairing an instance from Library to recover pack contents

* Allow repair from instance page

* Deduplicate repair code

* Fix lint

* Fix lint (for real this time)

---------

Co-authored-by: Jai Agrawal <18202329+Geometrically@users.noreply.github.com>
2025-01-11 15:27:47 -08:00
Sven
abd679d716 feat(frontend): project tags link to a search (#3126)
* feat(frontend): tags link to a search

* fix category type

* process feedback

---------

Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2025-01-10 08:52:05 -08:00
Awakened Redstone
ec5e3b0050 feat(frontend): Add filter query and download hash to the url during download modal use (#3138)
* feat: Automatically open download modal when filter queries are present

* chore: Use a hash to open the modal, and make the filter queries independent of the modal

* chore: Correct to use emit for taking functions

* chore: Add filter query and download hash to the url during modal use, and fix linting issues

* chore(frontend): Undo changes to NewModal

My computer does not like running the app, making testing a lot harder, so I'll undo this change, at least for now

* Remove extra line

---------

Signed-off-by: Prospector <6166773+Prospector@users.noreply.github.com>
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2025-01-10 08:51:36 -08:00
Erb3
494616e9f2 chore: run lint (#3140)
* chore: run lint

* fix: whoops messed up lint
2025-01-10 08:42:31 -08:00
Erb3
82f81dc154 fix(ui): slider number input field with limits (#2899)
- Added min, max, and step fields to the input field of a slider
- Made the input field a number field to apply min, max, step, and accessibility
2025-01-09 16:47:29 -08:00
Awakened Redstone
316fe72ea5 feat(frontend): Automatically open download modal when filter queries are present (on the main mod page) (#3133)
* feat: Automatically open download modal when filter queries are present

* chore: Use a hash to open the modal, and make the filter queries independent of the modal
2025-01-09 16:45:23 -08:00
Erb3
6266f29b99 fix(frontend): lowercase giftcard sorting (#2986)
Resolves #1409
2025-01-09 15:16:17 -08:00
Awakened Redstone
fd9653e283 fix: Properly handle empty version list on version/latest (#3132)
Co-authored-by: Jai Agrawal <18202329+Geometrically@users.noreply.github.com>
2025-01-09 15:14:12 -08:00
Tiger
b2f4366415 fix: an extra "2" after type "void" (#3127)
Co-authored-by: Jai Agrawal <18202329+Geometrically@users.noreply.github.com>
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2025-01-09 15:13:30 -08:00
Prospector
f859c34442 Fix some text color issues. Remove experimental colors reset for now. (#3136)
Co-authored-by: Jai Agrawal <18202329+Geometrically@users.noreply.github.com>
2025-01-09 15:13:05 -08:00
jebibot
c52d5e9a74 feat(app): update profile every time token is refreshed (#2328)
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2025-01-09 13:37:42 -08:00
Antti Ellilä
021fee616d Allow skipping updater at runtime with an environmental variable (#2388)
Co-authored-by: Modrinth Bot <106493074+modrinth-bot@users.noreply.github.com>
2025-01-09 13:37:17 -08:00
Jai A
0409fcec2f skip projects with no issues 2025-01-08 22:19:04 -08:00
Jai A
8e754cfeb5 Add delphi integration, fix search showing plugins 2025-01-08 22:06:05 -08:00
Jai A
adf3d9540d Remove clean.io for web traffic 2025-01-08 13:42:15 -08:00
Evan Song
d5f2ada8f7 Fix server suspension statuses (#3100)
* chore: correctly type suspension reason

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: faulty suspension condition allowing for fallthrough

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: here as well

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: add support suspension reason

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: handle support suspensions

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: patch pyroservers to handle 503

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: handle 503 in server root

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: dont make pyroservers errors scream at me anymore

Signed-off-by: Evan Song <theevansong@gmail.com>

---------

Signed-off-by: Evan Song <theevansong@gmail.com>
2025-01-06 22:06:34 -08:00
Jai A
a01da5452c Update reports cap 2025-01-04 20:51:01 -07:00
Jai A
17d61277fa Bump meilisearch version 2024-12-30 20:55:37 -07:00
Jai Agrawal
bb3de4b74b Add balance route (#3107) 2024-12-30 20:17:51 -07:00
Josiah Glosson
01fe08f079 Make the update checker work for non-mods (#3088)
* Fix https://github.com/modrinth/code/issues/1057

* Make sure mods use the installed loader

* Switch &PathBuf to &Path

* Clippy fix

* Deduplicate some code

---------

Co-authored-by: Jai Agrawal <18202329+Geometrically@users.noreply.github.com>
2024-12-28 20:23:27 -07:00
he3als
8b7547ae38 fix(server backup settings): number input -> dropdown (#3099)
* feat(backup settings): number input -> dropdown

* fix(servers teleport dropdown): round last element

* fix index
2024-12-29 02:19:24 +00:00
he3als
0437503b75 feat(servers content): file upload + extra mod info + misc (#3055)
* feat: only scroll up if scrolled down

* feat: no query results message

* feat: content files support, mobile fixes

* fix(drag & drop): type of file prop

* chore: show number of mods in searchbar

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: adjust btn styles

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: prepare for mod author in backend response

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: external mods & mobile

* chore: adjust edit mod version modal copy

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: add tooltips for version/filename

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: swap delete/change version btn

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: dont allow mod link to be dragged

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: oops

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: remove author field

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: drill down tooltip

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: fighting types

Signed-off-by: Evan Song <theevansong@gmail.com>

* prepare for owner field

Signed-off-by: Evan Song <theevansong@gmail.com>

---------

Signed-off-by: Evan Song <theevansong@gmail.com>
Co-authored-by: Evan Song <theevansong@gmail.com>
Co-authored-by: Evan Song <52982404+ferothefox@users.noreply.github.com>
2024-12-29 00:31:52 +00:00
Jai Agrawal
2fea772ffb Fix sockets causing actix hangs (#3089)
* Fix sockets causing actix hangs

* Fix fmt issues

* Retry failed S3 uploads

* Ignore launcher socket from sentry
2024-12-27 22:44:09 -07:00
Jai A
24765db045 Fix locking timeout on invalid IDs 2024-12-27 00:58:28 -07:00
Jai A
82393f2ae7 Fix locking timeout issues 2024-12-27 00:20:37 -07:00
Jai A
c86c98d000 fix search flashing in prod 2024-12-26 23:07:19 -07:00
Jai A
4d9741c424 fix search flashing, reorder filters on mods 2024-12-26 22:59:15 -07:00
Jai A
81ec068747 Mute audio via wry + v0.9.2 2024-12-25 14:41:28 -07:00
Jai A
4a031f7bbd v0.9.1 fixes 2024-12-24 22:30:10 -07:00
Jai A
5b00ac17e5 fix lint, labrinth crash 2024-12-23 17:13:13 -07:00
Geometrically
9952c3a0c1 0.9.0 release (app) (#3056)
* Debug app

* Bump version, final fixes
2024-12-23 13:38:52 -07:00
Geometrically
cae6f12ea0 More app fixes 0.9.0 (#3054)
* initial set of fixes (toggle sidebar, profile pagination)

* more fixes, bump version

* fix lint:

* fix quick switcher ordering
2024-12-22 20:03:58 -07:00
Evan Song
ef08d8e538 Handle server upgrades (suspensions) in frontend (#3049)
* chore: make serverlisting handle upgrading server state

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: more prominent suspension status bar in server listing

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: handle upgrading in root server page

Signed-off-by: Evan Song <theevansong@gmail.com>

---------

Signed-off-by: Evan Song <theevansong@gmail.com>
2024-12-22 19:38:50 -07:00
Evan Song
8457d1484b feat: hawk tuah (#3050) 2024-12-22 19:38:13 -07:00
Prospector
591fcfaf40 Remove empty header on search page 2024-12-22 02:20:28 -08:00
Prospector
dfd4cbd7ca Fix projects page 2024-12-22 02:19:02 -08:00
Prospector
b48601ed06 make quick instances square to match elsewhere and add tint 2024-12-21 20:00:03 -08:00
Jai A
39ab03786c fix moderation 2024-12-21 16:53:04 -07:00
ooffyy
246df0d107 chore(knossos): auto resource pack versions (1.20-1.21.4) (#3042)
* Add resource pack versions (1.20-1.21.4)

* prettier

---------

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2024-12-21 16:49:37 -07:00
bendy1234
a873e6623b fix #2949 (#3043)
Signed-off-by: bendy1234 <83143663+bendy1234@users.noreply.github.com>
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2024-12-21 16:49:15 -07:00
Joshua
fa4bca5cb8 fix: Change platform button leads to wrong page (#3046) 2024-12-21 17:44:00 +00:00
Joshua Samenfink
7e81083c04 Update link to the new labrinth codebase (#3047)
* The repository is archived now
2024-12-21 10:43:40 -07:00
Geometrically
c082148ecd Fix crash on windows (#3041) 2024-12-18 23:53:00 -07:00
Prospector
76b1d1df8c Misc fixes, new instance & project cards (#3040)
* Fix some TS errors, and misc settings fixes

* New instance + project cards

* bug fixes + lint

* Quick instance switcher

---------

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
Co-authored-by: Jai A <jaiagr+gpg@pm.me>
2024-12-18 16:09:16 -07:00
Jai A
02dd2a3980 fix build while using modrinth tauri fork 2024-12-18 11:45:43 -07:00
Geometrically
c1b1e67a2c Fix app builds not launching (#3035)
* Fix app builds not launching

* Revert tauri version change
2024-12-18 11:30:49 -07:00
Jai A
b7f514c6cc fix lint 2024-12-18 00:42:27 -07:00
Prospector
547ec730c7 New instance settings in app (#3033)
* Tabbed interface component

* Start instance settings

* New instance settings, mostly done minus modpacks

* Extract i18n

* Some more fixes with settings, still no modpacks yet

* Lint

* Modpack installation settings

* Change no friends language

* Remove options legacy button

* fix lint, small bug

* fix invalid cond on friends ui

* update resource management page

---------

Signed-off-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
Co-authored-by: Jai A <jaiagr+gpg@pm.me>
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2024-12-18 00:06:01 -07:00
Geometrically
6ceed4b226 App fixes 0.9.0 (#3034)
* push fixes to test on windows

* Fix searching mods

* Fix search not saving, fix scrolling issues, etc
2024-12-17 23:23:30 -07:00
Geometrically
7e8ceadfd4 Update servers route (#3032) 2024-12-16 17:34:20 -07:00
Evan Song
fee8d6c34e Files UX Sprint (#3019)
* chore: dedupe lockfile

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: incorrect spacing between editing and browsing state

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: improve files image viewer toolbar

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: image viewer cursor affordance

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: clean imports

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: add tooltips

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: use black background

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: show scale factor, handle large images, consolidate state

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: add types to fs operations

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: add date create sorting option

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: match name of folder creation modal

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: add it here too

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: add creation date to file item, file manager header

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: a11y

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: ensure move item modal always has leading slash

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: correct move input placeholder

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: correct design disparity

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: add better affordance on active file item state

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: correct instances where we dont sentence case

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: clean

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: notify that server restarted on saveandrestart

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: consolidate error state in file manager

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: adjust sizing

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: drag and drop file items to move them

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: enable ability to drag folders too

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: better file movement toasts

Signed-off-by: Evan Song <theevansong@gmail.com>

* just say u hate me

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: uploading indicator for file uploads

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: cleaner file item ghost when dragging

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: enforce max length and truncate on ghost

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: improve item rename toast

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: improve item create toast

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: undo and redo stack

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: confusing behavior where folders were not sorted alphabetically

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: find and replace in file editor

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: correctly set language mode of file editor

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: slop

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: actually handle case with multiple dots in file name before setting language

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: match move icons in file context/threedot

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: upload indicator

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: dedupe lockfile again

Signed-off-by: Evan Song <theevansong@gmail.com>

* lockfile

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: file undefinedness

Signed-off-by: Evan Song <theevansong@gmail.com>

* checkpoint

Signed-off-by: Evan Song <theevansong@gmail.com>

* checkpoint

Signed-off-by: Evan Song <theevansong@gmail.com>

* checkpoint

Signed-off-by: Evan Song <theevansong@gmail.com>

* remove shitty animation logic

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: file upload queuer

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: only allow editable files to have active affordance

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: properly throw pyrofetcherror when rename fails

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: cancel file uploads

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: clean

Signed-off-by: Evan Song <theevansong@gmail.com>

---------

Signed-off-by: Evan Song <theevansong@gmail.com>
2024-12-16 23:13:31 +00:00
Erb3
9aa70359a8 fix(frontend): ignore case in collection search for followed (#3005)
* fix(frontend): ignore case in collection search for followed

When searching for collections, the casing will normally be ignored. The item for "Followed Projects" will be removed if using capitalized characters though. This is especially confusing since it's titled with partially capital letters.

Resolves modrinth/code#1370

* chore: revert import sort
2024-12-15 06:15:59 +00:00
Zefir
58cbc1ada5 Use en dash for range of versions (#2997) 2024-12-15 05:24:57 +00:00
Jai A
5f7d550a5a fix failed fetches caching in app state 2024-12-14 22:16:15 -07:00
Jai A
b5d788ca6c move profile listener 2024-12-14 22:02:38 -07:00
Geometrically
217b5700a2 Fix advanced rendering, ads showing over modals (#3029) 2024-12-14 21:36:00 -07:00
Prospector
ca7cfb30c7 Project installation indicator (#3023)
* Add indicator for project installation

* fix lint

---------

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
Co-authored-by: Jai A <jaiagr+gpg@pm.me>
2024-12-14 21:35:50 -07:00
Prospector
283a915a12 Fix popouts not working (#3028)
* Attempt at fixing popouts? no idea if will work

* Try with no theme?

* Revert "Try with no theme?"

This reverts commit 7fb3a6c6a6.

* Try to remove triggers from theme

* Remove duplicate plugin

* Fix version issue

* Try to remove theme and use default theme

* Add back theme for later fixing

* Lint

---------

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2024-12-15 04:15:50 +00:00
Prospector
24271a2388 Fix modal animation when modal is in another modal, and add close label (#3027)
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2024-12-15 02:52:49 +00:00
Prospector
3e5b842b7a Fix content list error when projects is undefined (#3026)
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2024-12-15 02:48:21 +00:00
Prospector
465f7ac0c5 Fix multiselect styling (#3025)
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2024-12-15 02:47:42 +00:00
Prospector
284f156e9f Fix vite table warning (#3024)
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2024-12-15 02:46:02 +00:00
Prospector
ac25a36bce OLED fixes (#3022)
* Make sidebar darker in OLED theme

* Fix experimental styles in OLED mode

---------

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2024-12-15 02:45:31 +00:00
Geometrically
f2e653b732 Bump tauri to v2 (#3018)
* Bump tauri to v2

* Switch to virtual typed list for content page

* Fix unexpected hang on windows

* Fix ads window scaling issues on some devices

* Use DPR from browser

* Fix link opens, bump version, fix lint
2024-12-14 19:23:47 -07:00
worldwidepixel
7f445e9b8c Fix lack of collections tab (#2936)
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2024-12-14 21:54:30 +00:00
Evan Song
57e27fb0fa chore: regenerate lockfile (#3016) 2024-12-12 23:59:48 +00:00
Evan Song
e86c9df39d Platform page UX improvements (#3009)
* chore: initial fixes from app redesign merge

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: ccpa hydration error

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: migrate tailwind to esm

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: default platform selection to current mc version

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: navigating and installing content

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: respect sentence case

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: match new page padding

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: allow user to erase all data when installing from modpack

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: hide hide installed content check if modpack search

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: wording

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: make erase data toggle more prominent

Signed-off-by: Evan Song <theevansong@gmail.com>

---------

Signed-off-by: Evan Song <theevansong@gmail.com>
2024-12-12 23:12:54 +00:00
Jai A
1f060b8513 Fix lint, socket echo 2024-12-12 14:36:02 -08:00
Geometrically
c970e9c015 Fix sockets issues (#3015)
* Fix sockets issues

* Fix app comp
2024-12-12 13:25:25 -08:00
Jai A
10ef25eabb fix intellij proj 2024-12-11 20:45:38 -08:00
Prospector
381cbe837b swap out fake blog post for a real one 2024-12-11 20:22:16 -08:00
Prospector
c39bb78e38 App redesign (#2946)
* Start of app redesign

* format

* continue progress

* Content page nearly done

* Fix recursion issues with content page

* Fix update all alignment

* Discover page progress

* Settings progress

* Removed unlocked-size hack that breaks web

* Revamp project page, refactor web project page to share code with app, fixed loading bar, misc UI/UX enhancements, update ko-fi logo, update arrow icons, fix web issues caused by floating-vue migration, fix tooltip issues, update web tooltips, clean up web hydration issues

* Ads + run prettier

* Begin auth refactor, move common messages to ui lib, add i18n extraction to all apps, begin Library refactor

* fix ads not hiding when plus log in

* rev lockfile changes/conflicts

* Fix sign in page

* Add generated

* (mostly) Data driven search

* Fix search mobile issue

* profile fixes

* Project versions page, fix typescript on UI lib and misc fixes

* Remove unused gallery component

* Fix linkfunction err

* Search filter controls at top, localization for locked filters

* Fix provided filter names

* Fix navigating from instance browse to main browse

* Friends frontend (#2995)

* Friends system frontend

* (almost) finish frontend

* finish friends, fix lint

* Fix lint

---------

Signed-off-by: Geometrically <18202329+Geometrically@users.noreply.github.com>

* Refresh macOS app icon

* Update web search UI more

* Fix link opens

* Fix frontend build

---------

Signed-off-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
Co-authored-by: Jai A <jaiagr+gpg@pm.me>
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2024-12-11 19:54:18 -08:00
Evan Song
6ec1dcf088 Servers console performance improvements (#3007)
* feat: init selecting paper+purpur on purchase flow

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: properly implement Paper/Purpur in Platform

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: correct wording

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: redo platform modal

Signed-off-by: Evan Song <theevansong@gmail.com>

* Switch to HCaptcha for Auth-related captchas (#2945)

* Switch to HCaptcha for Auth-related captchas

* run fmt

* fix hcaptcha not loading

* fix: more robust loader dropdown logic

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: handle "not yet supported" install err

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: fix icon kerfuffles

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: improve vanilla install modal title

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: spacing

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: usePyroConsole store instead of passing a prop to prevent bulk panel refreshing

* chore: improve no loader state

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: type error

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: adjust mod version modal title

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: adjust modpack warning copy

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: vanilla empty state in content page

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: adjust copy

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: update icon

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: loader type

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: loader type

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: always show dropdown if possible

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: improve spacing

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: appear disabled

Signed-off-by: Evan Song <theevansong@gmail.com>

* h

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: if reinstalling, show it on the modal title

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: put it in the dropdown, they said

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: adjust style

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: sort paper-purpur versions desc

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: do not consider backup limit in reinstall prompt

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: backup locking, plugin support

* fix: content type error

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: casing

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: plugins pt 2

* feat: backups, mrpack

* fix: type errors come on

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: spacing

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: type maxing

* chore: show copy button on allocation rows

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: suspend improvement

---------

Signed-off-by: Evan Song <theevansong@gmail.com>
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
Co-authored-by: Jai A <jaiagr+gpg@pm.me>
Co-authored-by: TheWander02 <48934424+thewander02@users.noreply.github.com>
2024-12-11 23:49:22 +00:00
TheWander02
742c0edd9e Paper and Purpur + Backups (#3004)
* feat: init selecting paper+purpur on purchase flow

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: properly implement Paper/Purpur in Platform

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: correct wording

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: redo platform modal

Signed-off-by: Evan Song <theevansong@gmail.com>

* Switch to HCaptcha for Auth-related captchas (#2945)

* Switch to HCaptcha for Auth-related captchas

* run fmt

* fix hcaptcha not loading

* fix: more robust loader dropdown logic

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: handle "not yet supported" install err

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: fix icon kerfuffles

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: improve vanilla install modal title

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: spacing

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: improve no loader state

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: type error

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: adjust mod version modal title

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: adjust modpack warning copy

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: vanilla empty state in content page

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: adjust copy

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: update icon

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: loader type

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: loader type

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: always show dropdown if possible

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: improve spacing

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: appear disabled

Signed-off-by: Evan Song <theevansong@gmail.com>

* h

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: if reinstalling, show it on the modal title

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: put it in the dropdown, they said

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: adjust style

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: sort paper-purpur versions desc

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: do not consider backup limit in reinstall prompt

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: backup locking, plugin support

* fix: content type error

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: casing

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: plugins pt 2

* feat: backups, mrpack

* fix: type errors come on

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: spacing

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: type maxing

* chore: show copy button on allocation rows

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: suspend improvement

---------

Signed-off-by: Evan Song <theevansong@gmail.com>
Co-authored-by: Evan Song <theevansong@gmail.com>
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
Co-authored-by: Jai A <jaiagr+gpg@pm.me>
Co-authored-by: Evan Song <52982404+ferothefox@users.noreply.github.com>
2024-12-11 06:49:50 +00:00
worldwidepixel
eff3189ded feat(docs): General documentation improvements (OAuth documentation, docs meta) (#2855)
* feat: All good Docs things under the sun (favicon, oauth2, docs meta)

* Remove favicon changes (already fixed in other PR)

Signed-off-by: worldwidepixel <58098422+worldwidepixel@users.noreply.github.com>

---------

Signed-off-by: worldwidepixel <58098422+worldwidepixel@users.noreply.github.com>
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2024-12-10 20:26:46 +00:00
Erb3
7d480ffbd6 fix(frontend): remove duplicate id for searchbars (#3000)
Only one element should have the same id. The id is used to link with the label's `for` attribute. There may be similar issues other places, but this is the one that was brought to my attention.

Resolves #2999
2024-12-10 20:16:13 +00:00
Evan Song
d851f32ea0 fix: do not consider backup limit in reinstall prompt (#2994)
Signed-off-by: Evan Song <theevansong@gmail.com>
2024-12-09 23:10:36 +00:00
Erb3
88b1a370d4 fix(frontend): redirect report button to signin if needed (#2953)
Fixes #2951
2024-12-07 19:45:32 +00:00
Erb3
b8957d386a fix(frontend): internal server error on 404 (#2990) 2024-12-07 19:45:02 +00:00
Erb3
414e2ed2cd fix: issue templates used outdated label names (#2991) 2024-12-07 19:44:45 +00:00
Geometrically
2987f507fe Refunds + Upgrading/Downgrading plans (#2983)
* Refunds + Upgrading/Downgrading plans

* Servers list route

* Finish, lint

* add GAM fee to payouts

* Sync payment intent id with stripe

* fix lint, update migrations

* Remove tauri generated files

* Register refund route

* fix refund bugs
2024-12-06 19:37:17 -08:00
Jai A
2cfb637451 Remove sync agree state 2024-11-27 13:17:01 -07:00
Geometrically
47b0ccdf78 Friends system for app (#2958)
* Friends system for app

* Fix impl issues

* move friends to in-memory store
2024-11-26 18:23:29 -07:00
Erb3
7184c5f5c7 fix(app): update linux-schema.json (#2900)
Keeps bugging me in git. See https://discord.com/channels/734077874708938864/848329986577399818/1302710819792093266
2024-11-24 05:03:27 +00:00
Erb3
53d45dafc2 fix(backend): validate PAT name (#2906)
Uses the macros provided by validator to validate the name. The name already had a macro, but .validate was not called.

Resolves #1549
2024-11-24 05:03:12 +00:00
Evan Song
d90cc09620 Implements MOD-171: Intercom messenger integration on servers panel (#2959)
* feat: intercom

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: double check

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: address double booting

Signed-off-by: Evan Song <theevansong@gmail.com>

---------

Signed-off-by: Evan Song <theevansong@gmail.com>
2024-11-22 23:25:33 +00:00
Jai A
c741ba26cc add sync agree state 2024-11-21 13:06:18 -08:00
Jai A
510a6977be update ads.txt 2024-11-19 19:42:41 -08:00
Jai A
d83e1a5c6b fix lint 2024-11-19 17:59:42 -08:00
Jai A
1557a6e1c0 RevIQ test 2024-11-19 17:58:35 -08:00
Jai A
396cf14d61 Add new PGAM lines 2024-11-19 14:13:31 -08:00
Erb3
4685330eaf feat(labrinth): totp skew (#2887) 2024-11-19 00:31:48 +00:00
Jai A
8cd77ad1d8 Fix captcha not showing on create account page 2024-11-18 16:29:55 -08:00
Geometrically
3b0e59c8ab Switch to Sendy for newsletter (#2954) 2024-11-18 16:19:12 -08:00
Evan Song
1f230383ce Fixes MOD-160 (#2948)
* fix: refresh backups automatically when ongoing backups are running

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: improve backup creation rate limit msg

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: increase polling timeout

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: clean

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: add notice of automatic refresh

Signed-off-by: Evan Song <theevansong@gmail.com>

---------

Signed-off-by: Evan Song <theevansong@gmail.com>
2024-11-18 02:59:01 +00:00
Evan Song
a1a920ee67 Fixes MOD-163 (#2952)
* init: correctly type powerstate in crash state

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: handle oom_killed and exit_code when a server crashes

Signed-off-by: Evan Song <theevansong@gmail.com>

---------

Signed-off-by: Evan Song <theevansong@gmail.com>
2024-11-18 02:58:43 +00:00
Jai A
1aa2299b55 fix hcaptcha not loading 2024-11-16 17:44:24 -08:00
Geometrically
b188b3feb3 Switch to HCaptcha for Auth-related captchas (#2945)
* Switch to HCaptcha for Auth-related captchas

* run fmt
2024-11-16 16:57:32 -08:00
Jai A
5ab1263495 Disable app ads clicks 2024-11-12 15:17:02 -08:00
Geometrically
7bb3059cd9 Revert TLS changes causing docker build fail (#2937)
* Revert TLS changes causing docker build fail

* Update build to push
2024-11-11 18:31:06 -08:00
Jai A
42db6001ed Fix labrinth docker image breakage 2024-11-11 17:16:23 -08:00
Geometrically
3fa07f64d3 Ratelimit acct creation (#2933) 2024-11-10 22:47:58 -08:00
Erb3
648b40a8f5 fix(frontend): hide report button on own projects (#2905)
* fix(frontend): hide report button on own projects

Resolves #1381

* fix(frontend): hide report button on self
2024-11-11 05:15:37 +00:00
Erb3
ac46026f99 fix(frontend): mod search page with trailing slash (#2914)
Replaces the substring operation to find project type with a regex. The regex is a bit complex, so I added a comment explaining it.

Resolves #1382
2024-11-11 05:14:55 +00:00
Evan Song
3ef56ce66e chore: show all java versions toggle (#2932)
Signed-off-by: Evan Song <theevansong@gmail.com>
2024-11-11 05:14:14 +00:00
aw
b4998d3603 Update [id].vue (#2352)
Signed-off-by: aw <aw@a0.ax>
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2024-11-08 19:34:36 -08:00
Geometrically
ae2cd947b2 Add beta and alpha badges (#2929)
Co-authored-by: Prospector <prospectordev@gmail.com>
2024-11-08 19:26:28 -08:00
Jai A
aae00e1312 Fix forge versions being reversed 2024-11-08 16:26:02 -08:00
he3als
24e90f0a54 feat(marketing): miami, overallocation card, misc fixes (#2926)
* fix(marketing): make faq headings medium

* feat(marketing): add card for overallocation

* feat(marketing): add miami location

* fix(marketing): 'login' -> 'sign in' consistency

* feat: plan query string support + simplify buttons
2024-11-08 23:52:32 +00:00
Jai A
f5208a85b0 Add rev.iq back to ads.txt 2024-11-07 19:08:12 -08:00
Jai A
8db4b3f83b Fix modrinth plus subscribing 2024-11-07 19:01:53 -08:00
Erb3
33ad04d036 feat(frontend): show date of user join (#2901)
* feat(frontend): show date of user join

Shows and formats the date when the user joined, on hover. Can add `cursor-help` if wanted.

Resolves #2243

* chore(frontend): lint
2024-11-08 02:25:02 +00:00
Jai A
4bcdb3f495 Fix lint + docker build 2024-11-07 18:21:01 -08:00
Jai A
70979172b0 fix daedalus neoforge manifest misformatting 2024-11-07 18:13:57 -08:00
Jai A
493b9a3975 Re-add inmobi 2024-11-06 13:25:39 -07:00
Jai A
5a21a67d46 Remove inmobi (temp) 2024-11-06 11:27:35 -07:00
Evan Song
ff72c906ba fix: correct uri encode paths in fs module (#2922)
Signed-off-by: Evan Song <theevansong@gmail.com>
2024-11-05 23:35:43 +00:00
Evan Song
907b1f67ed fix: multipart mrpack by gently holding ofetch's hand and saying "we got this, actually" and we ignore all the bullshit that comes with it (#2921)
* fix: multipart mrpack

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: use native fetch

Signed-off-by: Evan Song <theevansong@gmail.com>

---------

Signed-off-by: Evan Song <theevansong@gmail.com>
2024-11-05 23:21:41 +00:00
Evan Song
72cbe7f905 fix: unnecessary refetch of server modules on first mount (#2918)
Signed-off-by: Evan Song <theevansong@gmail.com>
2024-11-05 22:53:14 +00:00
Evan Song
deb16aa7ab pyro: multipart mrpack uploads (#2917)
* chore: impl in pyroservers

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: disable install btn if loading

Signed-off-by: Evan Song <theevansong@gmail.com>

---------

Signed-off-by: Evan Song <theevansong@gmail.com>
2024-11-05 22:24:13 +00:00
Evan Song
d0efa44c9e refactor(terminal): rewrite terminal virtualization (#2916)
Signed-off-by: Evan Song <theevansong@gmail.com>
2024-11-05 20:32:11 +00:00
he3als
d321843c02 feat(servers): full custom plan capacity checks & more (#2911)
* feat(servers): improve plan button logic

* feat(servers): custom plan capacity checks

* feat(servers): custom plan dynamic ram values

* feat(servers): add custom plan selector back

* fix(servers): final fixes
2024-11-05 02:07:40 +00:00
Jai A
2b44b145cb Remove direct clean.io script 2024-11-04 17:58:27 -07:00
nullptr
9f5606889e fix: remove plan selector (#2909) 2024-11-04 16:27:49 -08:00
Evan Song
417f2a8b91 fix: do not prepend modrinth.com to backup download url (#2908)
Signed-off-by: Evan Song <theevansong@gmail.com>
2024-11-04 23:42:32 +00:00
Jai A
d3a7bf967e kill ads loop after 10s 2024-11-03 23:50:55 -07:00
Jai A
db145cd8ad More ads test 2024-11-03 20:35:04 -07:00
Jai A
7d614f7ac5 Remove inmobi for US traffic (test) 2024-11-03 15:27:41 -08:00
Prospector
c7a2a3e29b Fix navigation tab highlights for certain project types 2024-11-03 10:45:43 -08:00
nullptr
3b966c03ee fix(servers): faqs not opening on nav (#2897)
* feat(servers): allow scrolling faq into view via hashes

* fix(servers): hide webkit details marker for faq

* fix(servers): faqs not opening on nav

---------

Signed-off-by: nullptr <62841684+not-nullptr@users.noreply.github.com>
2024-11-03 17:43:23 +00:00
Erb3
66d943d391 fix(frontend): alt-text for flags (#2894)
Fixes #2397
2024-11-03 17:10:09 +00:00
nullptr
f5f876e458 fix(servers): hide webkit details marker for faq (#2895)
* feat(servers): allow scrolling faq into view via hashes

* fix(servers): hide webkit details marker for faq

---------

Signed-off-by: nullptr <62841684+not-nullptr@users.noreply.github.com>
2024-11-03 17:09:29 +00:00
Erb3
27c3439120 fix(frontend): remove double dollar sign in chart (#2896)
Resolves #2400 by removing the SVG suffix.
2024-11-03 17:09:17 +00:00
nullptr
f212d04261 feat(servers): allow scrolling faq into view via hashes (#2893)
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2024-11-03 16:35:24 +00:00
Erb3
06f01aa85c fix(frontend): generate auth URL with provider (#2891)
Resolves an issue where the frontend generated URLs without provider property when there is a frontend redirect uri. Without the provider, labrinth defaults to GitHub.

Fixes #2884
2024-11-03 16:10:24 +00:00
nullptr
5f48dc08a9 fix(servers): standalone versions not showing up in loader page (#2890) 2024-11-03 16:00:06 +00:00
Prospector
e81e056758 Fix mistake in Servers marketing 2024-11-03 02:21:17 -08:00
Conrad Ludgate
2d95ff0830 chore: massage dependencies and features to remove openssl/native-tls (#2859)
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2024-11-03 09:48:35 +00:00
Evan Song
81d921d625 Pyro: Initial Marketing Fixes (#2885)
* fix: typo

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: specify specs on reliable hosting card

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: clarify locations

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: clarify SFTP and networking features

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: adjust copy

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: pushj faq section

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: address review

Signed-off-by: Evan Song <theevansong@gmail.com>

---------

Signed-off-by: Evan Song <theevansong@gmail.com>
2024-11-03 01:05:47 -08:00
FelixBrakel
e988513ed7 Typo: Change millibit to megabyte (#2406)
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2024-11-03 09:42:57 +00:00
June
783d4f82d9 removed 1rem top margin for project description (#2523)
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2024-11-03 09:32:29 +00:00
Accieo
b5011f458f Add minecraft as loader to create version api docs (#2877)
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2024-11-03 09:32:18 +00:00
June
5d0e4366d2 set right margin to 0 on svgs inside a square notification button (#2871)
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2024-11-03 09:30:59 +00:00
June
8643dc02dd Consistent alignment for 'project settings page confirmation' buttons (#2524)
* buttons in .button-group now aligned to flex start

* revert global style change for .button-group

* manual fix for merge

* scoped .button-group styles

* /tags whitespace revert

---------

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2024-11-03 09:29:44 +00:00
Jai A
7c4dcb2817 Fix game version filters 2024-11-02 23:18:31 -07:00
Jai A
6b64fdafcb Fix loaders/gvs not showing 2024-11-02 22:45:50 -07:00
Elizabeth
185dd47668 Pyro Integration (#2503)
* fix

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix

Signed-off-by: Evan Song <theevansong@gmail.com>

* refactor(fileitem): optimize

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore(fileitem): fixed width timestamp

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(fileitem): allow editing json5/jsonc

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: motd pt 1, auto backups scaffolding, editing navbar changes

* feat: fancy sidebar animations

* fix: files

* fix: files pt2

* fix: faulty name validation disallowing spaces in file names

Signed-off-by: Evan Song <theevansong@gmail.com>

* refactor: fileitem props

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: upload files not refreshing files list

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(imgviewer): handle invalid/empty images

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: return of the sticky files header

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: prevent servericon from shrinking

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: wtf were we thinking with this anyway

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: further mobile optimization

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: propagate margin

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: truncation fixes

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: track navbar with sentinel

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: clean

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(files): a11y

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: improve inspector styles

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: clean

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: console preformance improvements, decrease blur

* feat(mobile): new server header

* fix: linting

* fix: useless z indeces

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: adjust file filter names

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat(files): true breadcrumbs

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(marketing): make custom responsive

* fix(marketing): mobile file manager card

* feat: trackable navtabs

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: oh no

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: smartly truncate

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(terminal): z-indexes

* fix: autofocus more inputs

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: color

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: adjust copy

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: backup modal usability improvements

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: padding

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: title

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(content): update banner mobile support

* fix: server listing icons

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: ignore clicks in server listing for labels

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat(mobile): backup card

* fix(backups): make plural conditional

* fix: debounce file item selectitem

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: lint

Signed-off-by: Evan Song <theevansong@gmail.com>

* stuff

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: temp sidebar fix until i can be smart

* chore: clean

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: explictly set button type in file modals

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: properly sort backups

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: add getautobackup method to pyroservers

Signed-off-by: Evan Song <theevansong@gmail.com>

* choer: update autobackup params

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: update autobackup methods (REALLY GUYS)

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: implement autobackups

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: implement backup-while-running preference

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: make server labels a component

* feat: implement 'All details' modal

* fix(mobile): server manage page

* feat(files): mobile compatible

* fix(info labels): wrap

* chore(inspector): clean

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(backup settings): swap + and -

* fix(manage): new -> plans instead of modal

* feat: more small mobile fixes

* fix(auto backup modal): manual input validation

* fix(file browse navbar): home margin

* feat(purchase modal): mobile support

* fix(marketing): faded line alignments

* feat: add servers to mobile nav

* feat(network): dns record fixes

* feat: make all settings work on mobile

* fix(loader settings): modpack mobile

* chore: clean

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat(marketing): add 'Manage your servers' button

* fix(marketing): only check servers if logged in

* fix(network): allocation edit & delete button

* fix(backups): use UiServersTeleportOverflowMenu

* chore: linting

* chore: but here comes the sentence case

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat(marketing): make buttons consistent

* lint

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(loader): prevent multiline version names in dropdown

Signed-off-by: Evan Song <theevansong@gmail.com>

* lint

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: copy

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: sentence case

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: linting

* chore: rename dumbass preference key

Signed-off-by: Evan Song <theevansong@gmail.com>

* refactor: rewrite power action buttons

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: robust download logic

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(loader mobile): modpack dropdown width

* fix: sentence case

* fix(save & 'working on it'): look good on mobile

* fix(TeleportDropdown): width

* fix(inspecting error): mobile

* fix: show action button dropdown when installing

* fix(navtabs): temp fix for mobile scrolling issue

* fix(install error): mobile compatible

* chore: just remove tracking

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: clean

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: clean

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: cleanup

* fix: broken svg clr in checkbox when using experimental styles

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: adjust vanilla icon

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: adjust loader props

Signed-off-by: Evan Song <theevansong@gmail.com>

* revert changes to serversidebar

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: server properties flicker

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(backups): plural

* fix: cases where the telepoverflow would clash with viewport edge

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat(backups): auto-backups label

* fix(network): titlecase

* feat(fileitem): new rename icon

* fix(properties): wiki proper noun

* fix: disable motd for the time being

* chore: adjust wording for power conifmration

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: "external" to billing

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: icon

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: add EULA checkbox

* chore: clean

Signed-off-by: Evan Song <theevansong@gmail.com>

* me and bro deciding which case rules to enforce

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat(sftp): copy address & username, launch tooltip

* feat(files): better move

* chore: attempt to mitigate excessive stack depth type

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(loader): prevent versions 1.2.4 and below

* feat(dns table): placeholder improvements

* feat(pyroServer): error handling

* fix: intrinsic size on loader icon

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: adjust wording

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: sentence case

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: adjust wording

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: types

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: "implemented" key in preference

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat(connection lost): redesign

* feat(connection error): make icon orange

* fix: cleanup

* chore(connection lost): redesign pt 2

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: OOOOHHH MY GOD

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: implement capacity api on marketing

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: update createdat backup type

Signed-off-by: Evan Song <theevansong@gmail.com>

* refactor: all of backups

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: update backup types

Signed-off-by: Evan Song <theevansong@gmail.com>

* refactor: backups pt 2

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: comically small icons

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: align designs

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: hide ram graph if ram as bytes enabled

Signed-off-by: Evan Song <theevansong@gmail.com>

* base add content page

* Fix conflict

* feat(content): mobile-compatible header, sticky

* fix(marketing): md instead of sm for custom

* fix: compiler macro warning

Signed-off-by: Evan Song <theevansong@gmail.com>

* again

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: loader type error

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: default uptime seconds prop

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: hydration errors on server listing

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: move custom URL to general

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: indiviudally checkj capacities

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: falsey

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: missing prop

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: Derive On That Thang

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: adjust gap

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: add default name for backups

* fix: the backup number should PROBABLY be computed lol

* fix(backups): truncate text, mobile fixes

* fix(loader): modpack mobile fix

* feat(plans): add vcpus

* fix(backup modal): blank by default, maxlength

* fix(subdomain): separate length & valid chars

* feat: mrpack installs functionality (untested), forbidden handling, backups grammar

* feat(content): make responsive on mobile

* fix: disable plan buttons separately

* fix(backup modal): update name max length

* fix(purchase): wrapping on eula, eula link

* fix: move skeleton

* fix(server mobile header): truncation

* fix(server header): proper alignment

* Finish content page fixes

* fix: who up rinthing

Signed-off-by: Evan Song <theevansong@gmail.com>

* wip

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(staging & email banner): z-index

* feat: make eula tickbox more visible

* fix: move "powered by pyro" below buttons on hero

* fix: oops sorry ellie, also updated the main screenshot

* feat: update content screenshot

* fix: content page card should hide image on lg

* feat: hide total storage for now

* fix: terminal card now uses terminal icon

* fix(marketing): make medium plan card border solid

* feat: modloader card, move pyro BACK below buttons, beta release pill

* fix: spinning logo should be behind hero

* feat: surgically remove the hero's massive forehead

* feat(marketing): mobile UI screenshot

* fix(hero): z-index goes over mobile nav

* fix: consistent borders, files breakpoints

* chore: update turbo

* chore: adjust hero sizing

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: mention region restrictions

* chore: double check if we are at capcity

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: measure twice cut once

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: bro cut twice and measured once 💀

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(marketing): login first

* fix: out of capacity text when logged out

* fix(slider): reset some values for frontend

* feat: wip hero section

Signed-off-by: Evan Song <theevansong@gmail.com>

* New navigation to support the new products (#2879)

* Nav

* oops extra file

* feat: mrpack uploading with existing modpack, fix: choose modpack duplicate

* chore: clean

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: update features section

Signed-off-by: Evan Song <theevansong@gmail.com>

* Nav adjustments

* fix: server manager empty state clashing with loading state

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: query param hard

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: do not count uptime if crashed

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: grammar

Signed-off-by: Evan Song <theevansong@gmail.com>

* hide hero img on lg breakpoints

* Make plugins a plug

* chore: prep for buffered text selection terminal

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: marketing responsive stuff, n fixes

* fix hoverable prop

* fix: edit mod spacing

* fix: type error for display name in dropdown

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: custom plans

* fix: no more console.log

* fix: properly linked prop label

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(install hero mobile): padding

* fix: prevent x overflow on servers page

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix lint oh ym fucking god yal

Signed-off-by: Evan Song <theevansong@gmail.com>

* Migrate modpack install to search

* fix(custom plan): warning icon variable

* fix: loading probally and modal loader things

* fix(marketing): login icon colours

* fix(marketing): responsiveness

* fix(marketing): responsiveness v2

* fix: sync button for icon tm

* fix(marketing): responsiveness v3

* fix: hero image

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: clean

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: switch to cdn links

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: switch to cdn links

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: switch to cdn links

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: switch to cdn links

Signed-off-by: Evan Song <theevansong@gmail.com>

* Remove prod override

---------

Signed-off-by: Evan Song <theevansong@gmail.com>
Co-authored-by: Evan Song <theevansong@gmail.com>
Co-authored-by: TheWander02 <48934424+thewander02@users.noreply.github.com>
Co-authored-by: he3als <65787561+he3als@users.noreply.github.com>
Co-authored-by: Evan Song <52982404+ferothefox@users.noreply.github.com>
Co-authored-by: Lio <git@lio.cat>
Co-authored-by: Jai A <jaiagr+gpg@pm.me>
Co-authored-by: not-nullptr <needhelpwithrift@gmail.com>
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
Co-authored-by: Prospector <prospectordev@gmail.com>
Co-authored-by: sticks <tanner@teamhydra.dev>
2024-11-02 21:14:00 -07:00
Jai A
f165665a35 Fix primary filter 2024-11-02 01:44:05 -07:00
Jai A
ad38749f98 fix lint 2024-10-31 15:24:13 -07:00
Jai A
7825dd64ca Sync app consent with inmobi consent 2024-10-31 15:14:41 -07:00
Jai A
f6af620643 Add inmobi to app iframe 2024-10-30 15:30:24 -07:00
Skye
b5aeef7ebf Allow Bearer prefix on authorization tokens (#2854)
Signed-off-by: Skye <me@skye.vg>
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2024-10-27 19:04:17 +00:00
June
f5a201dd94 add top margin to author actions section (#2861) 2024-10-27 11:27:06 -07:00
Erb3
72dab12033 fix(docs): correct favicon url (#2843)
Starlight defaults to favicon.svg, however a favicon.ico was added to the repo.

Changes:

- Format astro config according to Prettier
- Properly set favicon
2024-10-24 13:24:13 -07:00
Jai A
ce4b4ba41d Fix daedalus run 2024-10-23 13:41:22 -07:00
Jai A
945206153d ads.txt update 2024-10-22 12:10:54 -07:00
Geometrically
9f977d082b Merge pull request #2840 from modrinth/daedalus-add
Add daedalus to monorepo
2024-10-21 15:33:58 -07:00
Jai A
4a2ec0c40c Merge remote-tracking branch 'origin/daedalus-add' into daedalus-add 2024-10-21 13:22:30 -07:00
Jai A
70bf61a645 Fix fmt 2024-10-21 13:21:56 -07:00
Geometrically
674f4b1095 Merge branch 'main' into daedalus-add 2024-10-21 12:40:17 -07:00
Jai A
3304070034 Add custom parameter for app/web traffic 2024-10-21 12:34:46 -07:00
Geometrically
19ca5f08c6 Merge branch 'main' into daedalus-add 2024-10-21 12:16:41 -07:00
Jai A
5605910ac8 Build spec package 2024-10-21 12:11:14 -07:00
Erb3
b1eda435a5 fix: update old docs links (#2845)
- Markdown guide link to support article
- API version deprecated error to new docs
- Modpack permissions error to support article
- Labrinth README links to new docs
- App WebView2 link to support article
2024-10-21 12:08:06 -07:00
Jai A
e88ca8430e rust update 2024-10-19 20:11:18 -07:00
Jai A
d39db02a73 Fix docker build 2024-10-19 20:04:21 -07:00
Jai A
86a64ca929 Update readmes 2024-10-19 19:46:40 -07:00
Jai A
5ea0f7d4c7 Fix docker build again 2024-10-19 19:42:52 -07:00
Jai A
b3fa2fa6d2 Fix docker build 2024-10-19 19:38:36 -07:00
Jai A
999dc640bc fix package 2024-10-19 15:44:37 -07:00
Jai A
9be9658ffb Add daedalus 2024-10-19 15:14:30 -07:00
Jai A
595d5362f6 Merge remote-tracking branch 'daedalus/monorepo-migration' into daedalus-add 2024-10-19 14:59:12 -07:00
Jai A
f212fcf892 Start monorepo migration 2024-10-19 14:40:58 -07:00
Geometrically
8c1c5572c0 Merge pull request #2517 from modrinth/labrinth-add
Add labrinth to monorepo
2024-10-19 12:42:38 -07:00
Jai A
31d151638a Temp disable labrinth test in CI 2024-10-19 12:39:46 -07:00
Jai A
fb6b41630c Fix compose script 2024-10-19 10:07:22 -07:00
Jai A
6ab806cbde Merge remote-tracking branch 'origin/labrinth-add' into labrinth-add 2024-10-18 21:28:01 -07:00
Jai A
c0267f7746 Remove all features 2024-10-18 21:14:25 -07:00
Geometrically
a54b6dc7b9 Merge branch 'main' into labrinth-add 2024-10-18 19:45:43 -07:00
Jai A
9ec43ebe70 Fix lint 2024-10-18 19:45:00 -07:00
Geometrically
486cd68bf7 New docs site (#2521)
* initial docs

* more docs work

* Update readme + add license

* update frontend GH action
2024-10-18 17:36:20 -07:00
Jai A
98c050e7e9 Fix lint again 2024-10-18 17:33:15 -07:00
Jai A
25fcee984b Add container labels 2024-10-18 17:00:36 -07:00
Jai A
86922c4547 Fix lint not working 2024-10-18 16:54:21 -07:00
Jai A
7bbdfd25cd [skip ci] remove ds store 2024-10-18 16:28:40 -07:00
Jai A
b8ad22a6fb Fix checks 2024-10-18 16:23:32 -07:00
Jai A
8dd955563e Fix clippy errors + lint, use turbo CI 2024-10-18 16:07:35 -07:00
Jai A
663ab83b08 Fix build deps 2024-10-18 15:47:23 -07:00
Jai A
c143929b69 Move rust checks to own file 2024-10-18 15:43:30 -07:00
Jai A
1b73d248b3 bump rustc 2024-10-16 16:12:23 -07:00
Jai A
cc22a92daf Update dockerfile 2024-10-16 16:07:24 -07:00
Jai A
39f0408929 Fix contact path 2024-10-16 16:04:45 -07:00
Jai A
e66f46a464 Fix check config 2024-10-16 16:02:55 -07:00
Jai A
9243296197 Fix again 2024-10-16 16:01:50 -07:00
Jai A
26ce83f8f1 Fix docker path 2024-10-16 15:59:29 -07:00
Jai A
907ef38189 make checks work 2024-10-16 15:57:44 -07:00
Jai A
a7d4001b00 Merge remote-tracking branch 'labrinth/mono-repo-migrate' 2024-10-16 14:15:45 -07:00
Jai A
e3a3379615 move to monorepo dir 2024-10-16 14:11:42 -07:00
Jai A
356a06e694 add signal for app vs web 2024-10-15 23:47:51 -07:00
Geometrically
fce516a76f Remove ads muting (#2511) 2024-10-15 23:43:49 -07:00
Jai A
42ade0fbd1 make script non-async 2024-10-15 10:56:35 -07:00
Jai A
ba07f5dad4 Add clean.io direct 2024-10-15 10:52:00 -07:00
Jai A
cc89e0f3f1 remove ad cookie (main) 2024-10-14 23:49:27 -07:00
Jai A
0e14d3f9c1 update ads.txt 2024-10-14 23:47:42 -07:00
Geometrically
ff7975773e Prorations (#975)
* Prorations

* Fix pyro integration

* set server uuid on creation

* fix comp

* Fix new charge date, pyro suspend reason

* Update server creation endpoint
2024-10-14 13:30:04 -07:00
Norbiros
6716e2277d fix(theseus): Files drag & drop (#2499)
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2024-10-12 13:27:07 -07:00
Mysticdrew
f986dc5d11 Remove extra "not" (#2506)
Signed-off-by: Mysticdrew <drewhaas@gmail.com>
2024-10-10 15:27:43 -07:00
Geometrically
570a4096f9 Update billing with backend changes (#2505) 2024-10-09 21:11:49 -07:00
Geometrically
c88bfbb5f0 Move charges to DB + fix subscription recurring payments (#971)
* Move charges to DB + fix subscription recurring payments

* Finish most + pyro integration

* Finish billing

* Run prepare

* Fix intervals

* Fix clippy

* Remove unused test
2024-10-09 21:11:30 -07:00
Jai A
d302795512 Fix ad init not working on no tauri invoke 2024-10-09 14:04:33 -07:00
Jai A
115acce80c Add hashing to ads 2024-10-09 13:54:35 -07:00
Geometrically
a8731b0ca2 Fix unfollowing projects (#2496) 2024-10-08 15:19:46 -07:00
nekk
fd596bf418 type in ErrorModal.vue (#2492)
Signed-off-by: nekk <108535017+iam-nekk@users.noreply.github.com>
2024-10-06 21:11:39 +00:00
Geometrically
ef7cfffeb6 Add support for Optima (#2489) 2024-10-04 13:35:39 -07:00
Jai A
ac9bcabd9c Add RPM to website 2024-10-02 13:33:47 -07:00
Geometrically
5bb961f16b Fix linux appimage (#2482) 2024-10-02 12:02:14 -07:00
Jai A
a46677832b Fix ads init 2024-09-29 17:57:16 -07:00
Geometrically
624abf0df4 Mute audio from playing in ads (#2471)
* Mute audio from playing in ads

* Update tauri version, get rid of custom

* bump wry

* fix more

* Fix lint
2024-09-29 17:51:51 -07:00
Erb3
e81a4ade97 chore: run lint (#2411)
* chore: run lint

* chore: fix lint
2024-09-28 01:28:13 +00:00
Geometrically
9708685506 Add GDPR export (#2461) 2024-09-27 13:33:28 -07:00
Geometrically
28b6bf8603 GDPR export route (#969)
* GDPR export route

* make users able to access
2024-09-27 12:43:17 -07:00
Geometrically
2713f0e610 Fix markdown images (#2452) 2024-09-25 12:29:51 -07:00
Geometrically
f7d1cd2a4f Pause subscription renewals (#968) 2024-09-24 13:02:19 -07:00
Prospector
3b8963fad0 Update ads.txt 2024-09-16 19:19:34 -07:00
Prospector
060682a1ac Add moderation button to user menu 2024-09-14 15:02:23 -07:00
Geometrically
95cd48571e Improve ad security, add CMP changes (#2399) 2024-09-13 20:33:51 -07:00
Jai A
3d619e6a98 Fix creator balance showing as zero 2024-09-12 15:52:37 -07:00
Geometrically
edb7e5f323 Integrate with Aditude API for payouts (#965)
* Integrate with Aditude API for payouts

* Update expiry

* Fix tests
2024-09-12 14:52:17 -07:00
Geometrically
0221034b60 Fix file paths opening (#2382) 2024-09-10 01:36:56 -07:00
Jai A
9500384100 Update ads.txt 2024-09-10 00:32:14 -07:00
Geometrically
0b31f2eb41 0.8.5 fixes (#2369)
* 0.8.5 fixes

* Attempt to fix binary name

* bump version + add nsis installmode

* (temp) Use cargo version of tauri CLI

* fix cli build

* Fix build env var

* Bump tauri version

* remove old invalid installs

* Fix old shortcuts + NSIS build
2024-09-10 00:24:17 -07:00
Sasha Sorokin
b3a6393c91 Add TypeScript to app-frontend (#2364)
* Add TypeScript to app-frontend

Co-authored-by: Evan Song <52982404+ferothefox@users.noreply.github.com>

* Switch app-frontend to ESLint 9 & Nuxt config

* Fix ESLint issues after config change in app-frontend

---------

Co-authored-by: Evan Song <52982404+ferothefox@users.noreply.github.com>
2024-09-07 23:40:40 -07:00
Geometrically
5b5599128a Optimize user-generated images for reduced bandwidth (#961)
* Optimize user-generated images for reduced bandwidth

* run prepare

* Finish compression
2024-09-07 17:44:49 -07:00
Geometrically
cb0f03ca9c Slack webhooks (#959)
* Slack webhooks

* Fix automod rejecting audio and locale packs

* Run prepare
2024-09-06 23:42:54 -07:00
Geometrically
2e35f3608b Remove name field (and remove existing data) (#935)
* Remove name field (and remove existing data)

* run prep, fmt

* fix dummy data
2024-09-06 20:16:28 -07:00
Jai A
16c5a5a3a6 revert ads changes 2024-09-05 14:56:17 -07:00
Jai A
2e7db502a9 fix empty tag 2024-09-04 09:37:58 -07:00
Jai A
d29b71ec45 Fix app ads styling 2024-09-04 09:37:07 -07:00
Jai A
9cd0af914a fix slot not rendering 2024-09-04 09:31:39 -07:00
Jai A
4a575393f0 remove inmobi 2024-09-04 09:29:06 -07:00
Jai A
76c93c767d rev.iq support 2024-09-04 09:23:18 -07:00
Jai A
e69337a1fc update ads.txt with new dsps 2024-09-03 21:22:24 -07:00
Sasha Sorokin
50734af6cd Fix Game versions input not showing (#2358)
There is a bug in vue-multiselect library where it will default
`custom-label` property to raw properies object. Presumably this is a
bug that appeared because they ported library to Vue 3 and have not
considered that the signature for `default` prop's function has changed.

To work around this, we can provide custom `custom-label` property that
is just a function that returns the input itself. In other places, where
objects are passed, `label` property can be used. In this case the first
suggestion applies. DO NOT USE VUE-MULTISELECT WITOUT `LABEL` OR
`CUSTOM-LABEL` PROPS!
2024-09-03 16:44:21 +00:00
Norbiros
81b0922c93 chore(theseus): Updated Tauri links to v2 (#2345) 2024-09-01 21:57:13 +00:00
Norbiros
d4f8fff7af fix(theseus): Posthog scripts, focus app when opening deeplink, update linux-schema (#2351)
* fix(theseus): Focus app when opening deeplink (#2347)

* fix(theseus): Allow for posthog scripts

* chores(theseus): Update `linux-schema.json`
2024-09-01 21:56:53 +00:00
Geometrically
bd61f5d591 Fix auto updater, add failure message, fix modals (#2335)
* Fix auto updater, add failure message, fix modals

* Fix ads hiding, updater UI

* dummy version, fix gh actions cache

* fix release conf

* actual version bump

* Fix ads hiding sometimes

* Fix event state init

* fix remaining bugs

* Fix lint on linux

* Fix deep linking on Windows

* Fix ad links opening multiple times
2024-08-30 10:42:58 -07:00
Geometrically
016c3d779b Fix localhost windows opening (#2331) 2024-08-28 23:21:35 -07:00
Geometrically
acf26940d6 Implement ads in desktop app (#2318)
* Implement ads in desktop app

* Finish ads

* use git dep instead

* attempt to fix linux build (temp)

* bump version + lint

* comment more

* fix build

* try to fix linux build

* Fix crashing on windows

* Fix icons not showing

* Remove useless env vars

* Actual linux build fix

* Run fmt

* Fix scrolling

* fix clippy

* bump version + fix localhost

* rev linux build patch

* update version num

* update csp

* update csp

* update csp

* Switch to mousewheel event
2024-08-28 21:44:08 -07:00
Norbiros
4bafae881f fix: Correctly fix App Build workflow (#2322)
Signed-off-by: Norbiros <norbiros@protonmail.com>
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2024-08-28 10:18:54 -07:00
Prospector
8311451420 Update public-facing orgs page, componetize page headers (#2307)
* Update public-facing orgs page, componetize page headers

* Improve supported environments

* Move user page stats to top and remove details card

* Fix padding on orgs page when no navlinks

* fix lint

---------

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2024-08-28 10:12:25 -07:00
Norbiros
4b75cb8357 fix: App Build workflow (#2320)
Signed-off-by: Norbiros <norbiros@protonmail.com>
2024-08-28 14:25:53 +00:00
Geometrically
bf16d360af Switch to PostHog for app analytics (#2316) 2024-08-27 21:19:07 -07:00
Geometrically
38d95b4faf Fix deep linking / file open on mac (#2314)
* Fix deep linking / file open on mac

* Update deep linking

* fix build

* fix build again

* update workdir

* try again

* update conf path

* try old conf

* use in house tauri

* move away from tauri GH act

* add rpm support

* Fix updater key

* Fix signing key pass

* fix ubuntu deps

* Fix macos artifacts
2024-08-27 17:50:10 -07:00
Jai A
b06e7d3cf4 Fix again 2024-08-27 13:59:16 -07:00
Jai A
9e7ea82f94 remove workdir 2024-08-27 13:50:48 -07:00
Jai A
d74fc8a5d5 fix release conf path 2024-08-27 13:39:29 -07:00
Erb3
4a43b45a99 fix(web): lint #2306 (#2309) 2024-08-27 19:48:44 +00:00
Norbiros
d6a72fbfc4 feat(theseus): Update to Tauri v2 (#2178)
* feat(theseus): Initial migration to Tauri v2

* feat(theseus): Added a way to zoom / scale UI

* chore(theseus): Started cleaning up some plugins

* fix(theseus): Github Actions

* refactor(theseus): Reduced boilerplate & more work

* feat(theseus): Allow multiple app instances to be open at once (#995)

* fix(theseus): Lint & more

* fix(theseus): App Release github action

* fix(theseus): Open links in browser & macos builds

* fix(theseus): Rebase fixes

* fix(theseus): Updater & app release action

* fix(theseus): Fixed definitions in `build.rs`

* Fix MacOS deep linking, window decorations

* fix(theseus): Closing & maximizing app

* Fix macos build

* add back release conf

* acc fix build

* make updater for release builds only

* focus window on startup

---------

Co-authored-by: Jai A <jaiagr+gpg@pm.me>
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2024-08-27 12:49:36 -07:00
Prospector
396f737612 Fix version page layout 2024-08-26 18:19:53 -07:00
Prospector
2dd8d5a119 Sidebar refinements (#2306)
* Begin sidebar refinement, change back to left as default

* New filters proof of concept

* Hide if only one option

* Version filters

* Update changelog page

* Use new cosmetic variable for sidebar position

* Fix safari issue and change defaults to left filters, right sidebars

* Fix download modal on safari and firefox

* Add date published tooltip to versions page

* Improve selection consistency

* Fix lint and extract i18n

* Remove unnecessary observer options
2024-08-26 16:53:27 -07:00
Erb3
656c5b61cc Hotfix ci (#2296)
* ci: fix ci

* fix(eslint): remove code comment
2024-08-26 18:21:46 +00:00
Prospector
9fd0f6834a Fix missing a11y labels on project page buttons 2024-08-24 07:04:25 -07:00
Geometrically
58dac27186 Fix MRPACK export file include, add webview2 fail msg, fix window state (#2273)
* Fix MRPACK export file include, add webview2 fail msg, fix window state

* fix limt
2024-08-23 13:50:02 -05:00
Geometrically
c8befb6843 Fix forge again (#2268) 2024-08-22 23:52:38 -05:00
Jakob
fafd47fd90 Add align to img, p, and div & allow h1 to be centered (#2231)
* Add align to img, p, and div

Signed-off-by: Jakob <minenash@protonmail.com>

* fixed issue from porting pr

Signed-off-by: Jakob <minenash@protonmail.com>

* attempt to fix overflow of aligned imgs

Signed-off-by: Jakob <minenash@protonmail.com>

* Allow h1 to be centered

Signed-off-by: Jakob <minenash@protonmail.com>

* Excluded markdown-body from universal-card styling in components

* Fixed it in editor?

* undid previous attempt, did something simpler

---------

Signed-off-by: Jakob <minenash@protonmail.com>
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2024-08-22 18:18:22 -07:00
Sasha Sorokin
e0990910f6 Remove shift caused by the Exclude filter button (#2265)
Previously, the Exclude button was removed from the the element tree
entirely until the group is hovered. Only when the group is hovered, the
button element was being switched to a proper display form. This has
caused the layout shift which was very visible when quickly moving
cursor over the filter options.

This commit makes it so that the Exclude button is always in its proper
display form (flex), however is transparent until the group is hovered.
The repeated transparency classes were removed from the icon as well to
prevent jarringly-looking double transition.
2024-08-22 18:17:59 -07:00
Geometrically
599f23c8aa Optimize stripe links (#2258) 2024-08-22 15:37:48 -05:00
Jai A
a0bd011b80 bump app version (v0.8.2) 2024-08-21 22:24:44 -07:00
Geometrically
157c27c20d Fix forge 1.15.2->1.16.5, Fabric 0.16.0+, and migration issues with Forge (#2232)
* Fix Forge versions, newer fabric, migration breakage

* lint

* fix lint
2024-08-21 21:24:35 -07:00
Mars
4d0407a3b3 Add tailwind to app-frontend (#2234) 2024-08-21 21:21:45 -07:00
Prospector
f73ed1213f Fix navbar modrinth plus link showing for subscribers 2024-08-21 19:58:04 -07:00
Jai A
679ffbcce7 Fix Fabric Loader 0.16.0, old forge versions 2024-08-21 18:42:02 -07:00
Prospector
daabe11d11 Fix nav for logged out users 2024-08-21 17:21:05 -07:00
Prospector
aaf125cfca Temporary nav revert 2024-08-21 14:08:56 -07:00
Jai A
161fc6bb68 remove .env 2024-08-21 10:05:12 -07:00
Jai A
1afed9f256 Fix version page not working 2024-08-21 09:53:56 -07:00
Prospector
e8d6c15fee Sort user tabs consisently 2024-08-21 09:31:34 -07:00
Prospector
8686b28c28 Fix collections button tooltip 2024-08-21 09:29:55 -07:00
Prospector
d68251ad4b Hide "Install with Modrinth App" for plugin-only projects 2024-08-21 09:17:37 -07:00
Prospector
a02b4ae08f Fix supported environments 2024-08-21 09:00:03 -07:00
Geometrically
9ed1dd714b Fix ads showing with Modrinth PLus (#2187) 2024-08-21 00:30:23 -07:00
Prospector
95dc6c66d9 remove hardcoded url 2024-08-20 23:58:11 -07:00
Geometrically
e91c76c10c Aditude integration (#2184)
* Aditude integration

* remove diff

* remove unused vars
2024-08-20 23:42:44 -07:00
Prospector
9deddbbe7c Improve environments compat description and fix accessibility issues project-wide 2024-08-20 23:34:53 -07:00
Geometrically
2d416d491c Project, Search, User redesign (#1281)
* New project page

* fix silly icon tailwind classes

* Start new versions page, add new ButtonStyled component

* Pagination and finish mocking up versions page functionality

* green download button

* hover animation

* New Modal, Avatar refactor, subpages in NavTabs

* lint

* Download modal

* New user page + fix lint

* fix ui lint

* Download animation fix

* Versions filter + finish project page

* Improve consistency of buttons on home page

* Fix ButtonStyled breaking

* Fix margin on version summary

* finish search, new modals, user + project page mobile

* fix gallery image pages

* New project header

* Fix gallery tab showing improperly

* Use auto direction + position for all popouts

* Preliminary user page

* test to see if this fixes login stuff

* remove extra slash

* Add version actions, move download button on versions page

* Listed -> public

* Shorten download modal selector height

* Fix user menu open direction

* Change breakpoint for header collapse

* Only underline title

* Tighten padding on stats a little

* New nav

* Make mobile breakpoint more consistent

* fix header breakpoint regression

* Add sign in button

* Fix edit icon color

* Fix margin at top of screen

* Fix user bios and ad width

* Fix user nav showing when there's only one type of project

* Fix plural projects on user page & extract i18n

* Remove ads on mobile for now

* Fix overflow menu showing hidden items

* NavTabs on mobile

* Fix navbar z index

* Search filter overhaul + negative filters

* fix no-max-height

* port version filters, fix following/collections, lint

* hide promos

* ui lint

* Disable modal background animation to reduce reported motion sickness

* Hide install with modrinth app button on mobile

---------

Signed-off-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
Co-authored-by: Prospector <prospectordev@gmail.com>
2024-08-20 23:03:16 -07:00
Geometrically
a19ce0458a Finalize 0.8.1 release (#2182)
* Finalize 0.8.1 release

* Remove console.logs

* Fix build

* add default to users

* update release conf

* fix again?

* fix build (again)

* actually fix build

* Update config dir

* Update config dir

* Fix dir again
2024-08-20 17:53:14 -07:00
Magnus Jensen
3fca24e6fd remove auto margin from square button svg (#2177) 2024-08-20 23:09:08 +00:00
Norbiros
6f956e0423 fix(theseus): Correctly open/highlight folders (#2180) 2024-08-20 23:08:26 +00:00
Geometrically
637a923e84 Fix empty subscriptions (#954) 2024-08-18 11:35:39 -07:00
ToBinio
bb3ce9fbc6 fix: not being able to Follow/Save/Report projects (#2173)
* fix: not being able to Follow/Save/Report projects

* fix lint
2024-08-18 18:08:04 +00:00
Jai A
06f2340569 [hotfix] fix stripe elements not working 2024-08-17 18:10:18 -07:00
Jai A
510c29cc71 [hotfix] fix env var 2024-08-17 17:55:31 -07:00
Geometrically
807aa04807 Apple pay support, fix publish key (#2171)
* Apple pay support, fix publish key

* fix api url
2024-08-17 17:43:12 -07:00
Geometrically
c84e2e0537 Switch to RustLS (#2169)
* Switch to RustLS

* Revert scroll change causing autoscroll to break

* App build remove
2024-08-17 13:37:45 -07:00
Jai A
1f8d569b79 Merge remote-tracking branch 'origin/master' 2024-08-17 13:28:20 -07:00
Jai A
93ae24e707 Fix forge format version 1 2024-08-17 13:28:00 -07:00
Geometrically
910e219c0e 0.8.0 beta fixes (#2154)
* initial fixes

* 0.8.0 beta fixes

* run actions

* run fmt

* Fix windows build

* Add purge cache opt

* add must revalidate to project req

* lint + clippy

* fix processes, open folder

* Update migrator to use old launcher cache for perf

* fix empty dirs not moving

* fix lint + create natives dir if not exist

* fix large request batches

* finish

* Fix deep linking on mac

* fix comp err

* fix comp err (2)

---------

Signed-off-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2024-08-16 23:20:11 -07:00
Geometrically
3a4843fb46 Billing / plus frontend (#2130)
* [wip] initial

* [wip] subscriptions/plus frontend

* [wip] finish payment flow

* Charges page

* finish most subscriptions work

* Finish

* update eslint

* Fix issues

* fix intl extract

* fix omorphia locale extract

* fix responsiveness

* fix lint
2024-08-15 23:21:30 -07:00
Jai A
1b3744baa2 update action to use prod branch 2024-08-15 20:32:45 -07:00
Geometrically
7dd340f0b6 Fix subscriptions edge case (#952)
* Fix subscriptions edge case

* prep
2024-08-15 02:03:46 -07:00
Geometrically
1d0d8d7fbe Payments/subscriptions support (#943)
* [wip] Payments/subscriptions support

* finish

* working payment flow

* finish subscriptions, lint, clippy, etc

* docker compose
2024-08-14 17:14:52 -07:00
Norbiros
c7d8c8b104 fix: Correct discord link in README.md (#2149)
Signed-off-by: Norbiros <norbiros@protonmail.com>
2024-08-11 18:38:58 +00:00
Norbiros
a380d39865 feat(frontend): Package datapack as NeoForge mod (#2142) 2024-08-10 20:46:42 +00:00
Norbiros
34d3310eae fix(frontend): Correctly parse neoforge.mods.toml (#2139) 2024-08-10 20:45:49 +00:00
Norbiros
6de8d2684a fix: Disable Run Meta on forks (#19)
* fix: Disable `Run Meta` on forks

* fix: Also don't run `docker` action
2024-07-31 13:14:39 -07:00
Norbiros
9763a43943 fix: Correctly replace linux natives for LWJGL 3.3.1 (#20) 2024-07-31 13:14:30 -07:00
Jai A
f328eec26d use bearer auth instead 2024-07-31 12:59:09 -07:00
Jai A
7684a54678 fix purge gh action (again) 2024-07-31 12:55:34 -07:00
Jai A
51f3174609 fix purge gh action 2024-07-31 12:48:37 -07:00
Sasha Sorokin
4fcd518b0a Replace useAutoRef with Vue's toRef (#1332)
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2024-07-31 19:44:48 +00:00
Sasha Sorokin
1e0d7c7e28 Rewrite cosmetics and theme preferences (#1328)
- Cosmetics and theme preferences are now only stored in cookies instead
  of a combination of both cookies and state.

- The theme plugin now supports client hints. This allows the server
  to render a page using the client-preferred theme provided it supplies
  this information (any browser other than Firefox), helping to avoid an
  annoying flash while the page is hydrating.

- For the future, the theme plugin now supports additional light themes.
  Light theme preferences are currently not stored, but this can easily
  be fixed if the need arises.

- The previous workaround using the Nitro plugin has been removed. Its
  functionality is now handled by the Nuxt theme plugin with cleaner
  code.

- All pages and components now use the new plugins.

- Compared to the previous attempt, this commit has been improved to be
  more robust in cases where the theme cookie contains invalid values.

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2024-07-31 19:42:55 +00:00
KTrain
984da93a7b fix issue template descriptions (#1310)
* fix incorrect api urls

* fix descriptions on issue templates

* revert b51914e

---------

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2024-07-31 19:42:16 +00:00
Norbiros
c2c7eda799 fix(frontend): Correctly infer Neoforge version info (#1326)
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2024-07-31 19:41:52 +00:00
Geometrically
04b85630b9 Cache homepage projects in tags (#1336)
* Cache homepage projects in tags

* Update app page
2024-07-31 12:37:51 -07:00
Calum H.
ae4f3759c2 fix(knossos): Eslint config fix. (#1327)
* fix(knossos): Lint

* Fix lint issue.
2024-07-28 17:48:17 +00:00
Norbiros
a238dcc5e6 fix(theseus): Error modal (#1325)
* fix(theseus): Close button in ErrorModal

* fix(theseus): Overflow in ErrorModal
2024-07-27 19:00:02 +00:00
Jai A
57ba84107c Revert "Rewrite cosmetics and theme preferences (#1292)"
This reverts commit 8704d3acb3.
2024-07-25 17:38:37 -07:00
Norbiros
ca913cafbc fix: README fixes (#1321) 2024-07-25 15:49:22 +00:00
Jai A
7032421096 revert inlineStyles 2024-07-24 16:24:56 -07:00
Geometrically
06ac959496 Fix duped styles + disable tailwind preflight (#1320) 2024-07-24 23:14:43 +00:00
Geometrically
41c15f8c96 Fix styling issues caused by omorphia/tailwind (#1319) 2024-07-24 12:40:36 -07:00
Jai A
5cad3dfbae update rtb info 2024-07-24 11:32:38 -07:00
Geometrically
49a20a303a Migrate to SQLite for Internal Launcher Data (#1300)
* initial migration

* barebones profiles

* Finish profiles

* Add back file watcher

* UI support progress

* Finish most of cache

* Fix options page

* Fix forge, finish modrinth auth

* Accounts, process cache

* Run SQLX prepare

* Finish

* Run lint + actions

* Fix version to be compat with windows

* fix lint

* actually fix lint

* actually fix lint again
2024-07-24 18:03:19 +00:00
ToBinio
90f74427d9 chore: update tauri (#1307) 2024-07-20 17:15:02 +00:00
Sasha Sorokin
ba9dc6ce26 Fix auth redirect URL being double encoded (#1280)
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2024-07-20 00:24:35 +00:00
Norbiros
3a73994ad4 feat: Improve iframe parameter handling (#1299)
* fix(utils): Fix TypeScript issues in `parse.ts`

* feat: Improve iframe parameter handling (modrinth/knossos#362)
- Remove not whitelisted parameters instead of not rendering whole iframe
- Allowed `start` and `end` parameters in YouTube embeds
2024-07-20 00:24:29 +00:00
Norbiros
797e1f1f21 fix(theseus): Fixed multiple bugs (#1304)
* fix(theseus): Resolve log tab freezing entire app (#1127, #1237)
Switched to `vue-typed-virtual-list` due to freezing issues in WebKit caused by `vue-virtual-scroller`, which were difficult to resolve with the previous library.

* fix(theseus): Double opening of Socials Share link (#1136, #1074)

* fix(theseus): Proper symlinks resolution (#1236)
Ensures correct symlink resolution for specific mods, the mods directory, and the entire profile directory.

* fix(theseus): Correctly recognize NeoForge mods (#1215)

* fix(theseus): Corrected `Environments` and `Loaders` filters (#899)

* fix(theseus): Remove `_JAVA_OPTIONS` when testing JRE (#1171)

* fix(theseus): Fixed opening files using `show_in_folder`
Previously, opening a mod would display the contents of the JAR file instead of its location.

* fix(theseus): Hide `.DS_Store` files (#1274, #1002, #1174)

* fix(theseus): Corrected tooltip color

* fix(theseus): Fixed white mode issues (#1144, #1010)

* fix: Corrected `Slider` min and max value handling (#1008)

* fix: Fixed rebase problems

* fix: Fixed `:deep` usage warning

* chore: Updated eslint plugins to fix conflicts with Prettier
2024-07-20 00:20:12 +00:00
Norbiros
f1713647cf More monorepo migration fixes (#1257)
* fix: More monorepo migration fixes

* fix: Corrected icon sizes & other fixes

* fix(theseus): Change color of mod installation button

* fix(theseus): More Turborepo fixes

* chore: Prettier

---------

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2024-07-18 05:01:58 +00:00
Sasha Sorokin
8704d3acb3 Rewrite cosmetics and theme preferences (#1292)
- Cosmetics and theme preferences are now only stored in cookies instead
  of a combination of both cookies and state.

- The theme plugin now supports client hints. This allows the server
  to render a page using the client-preferred theme provided it supplies
  this information (any browser other than Firefox), helping to avoid an
  annoying flash while the page is hydrating.

- The previous workaround using the Nitro plugin has been removed. Its
  functionality is now handled by the Nuxt theme plugin with cleaner
  code.

- All pages and components now use the new plugins.
2024-07-13 19:20:43 +00:00
Sasha Sorokin
ce4250281f Refactor auth middleware (#1279)
- Switch to TypeScript
- Use early return
- Switch to regular for loop

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2024-07-11 19:02:00 +00:00
Sasha Sorokin
aecbc714c4 Update @vintl/nuxt to ^1.9.2 (#1286)
This fixes the issue where types for NuxtApp would be incorrect due to
the incorrect Plugin return type by @vintl/nuxt.
2024-07-11 18:58:18 +00:00
Evan Song
c20242cf1c Fix Cloudflare Pages build (#1285)
* fix(temp): remove box shadows from tailwind config

* fix(temp): "polyfill" global during build process

* refactor: use `import.meta` instead of deprecated `process`

* oops: replace `process.server` as well
2024-07-11 05:17:04 +00:00
Evan Song
04ba76aac8 Add NavTabs component (#1278)
* feat: NavTabs component

* fix: tw config using wrong variable

* fix: actually use the config now

* fix: revert testing
2024-07-10 03:33:50 +00:00
Geometrically
d1bc65c266 Monorepo missing features (#1273)
* fix tauri config

* fix package patch

* regen pnpm lock

* use new workflow

* New GH actions

* Update lockfile

* update scripts

* Fix build script

* Fix missing deps

* Fix assets eslint

* Update libraries lint

* Fix all lint configs

* update lockfile

* add fmt + clippy fails

* Separate App Tauri portion

* fix app features

* Fix lints

* install tauri cli

* update lockfile

* corepack, fix lints

* add store path

* fix unused import

* Fix tests

* Issue templates + port over tauri release

* fix actions

* fix before build command

* Add X86 target

* Update build matrix

* finalize actions

* make debug build smaller

* Use debug build to make cache smaller

* dummy commit

* change proj name

* update file name

* Use release builds for less space use

* Remove rust cache

* Readd for app build

* add merge queue trigger
2024-07-09 15:17:38 -07:00
PixelBedrock
60edbcd5f0 Allow user to select GitHub account (#922)
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2024-07-09 15:12:15 -07:00
Evan Song
dab284f339 Frontend Tailwind Fixes + Small Fixes (#1258)
* Fix Tailwind not targeting the src dir

* Merge tw fixes

* Fix footer logo alignment in mobile layout
2024-07-07 18:28:55 -07:00
Norbiros
df76d9a50a fix(theseus): Fixed scroll behavior bug (#1249) 2024-07-07 13:21:07 -07:00
Evan Song
abec2e48d4 Add TailwindCSS (#1252)
* Setup TailwindCSS

* Fully setup configuration

* Refactor some tailwind variables
2024-07-06 20:57:32 -07:00
Evan Song
0f2ddb452c Migrate to Turborepo (#1251) 2024-07-04 21:46:29 -07:00
Jai A
6fa1acc461 prepare for initial push 2024-07-03 19:17:28 -07:00
Jai A
9502639447 Finish adding omorphia 2024-07-03 19:12:20 -07:00
Jai A
ef4acb1b66 Merge remote-tracking branch 'omorphia/monorepo-migration' 2024-07-03 16:24:41 -07:00
Jai A
8cb72d306b Prepare for adding omorphia 2024-07-03 16:22:49 -07:00
Jai A
1ef8bf4690 Move files in preparation for monorepo migration 2024-07-03 16:21:07 -07:00
Jai A
22779c9dbc Finish theseus 2024-07-03 16:03:41 -07:00
Jai A
b52467b6d6 Merge remote-tracking branch 'theseus/monorepo-migration' 2024-07-03 13:26:44 -07:00
Jai A
d33a0cd589 Prepare for adding theseus 2024-07-03 13:25:49 -07:00
Jai A
a04cb54d86 Move files in preparation for monorepo migration 2024-07-03 13:23:21 -07:00
Jai A
10785f156f Add knossos 2024-07-03 13:05:14 -07:00
Jai A
4736fb8e32 Merge remote-tracking branch 'knossos/monorepo-migration' 2024-07-03 11:20:33 -07:00
Jai A
531e7ec73d prepare for knossos merge 2024-07-03 11:20:25 -07:00
Jai A
ff946b4f2f Move files in preparation for monorepo migration 2024-07-03 11:13:51 -07:00
Jai A
68f0e68343 Initial monorepo setup 2024-07-03 11:05:58 -07:00
Jai A
12a3520563 feat(nx): Generated CI workflow 2024-07-03 00:18:37 -07:00
Jai A
e84426a4f9 feat(nx): Added Nx Cloud token to your nx.json
To connect your workspace to Nx Cloud, push your repository
          to your git hosting provider and go to the following URL:

          https://cloud.nx.app/connect/BTN2S5oDFZ
2024-07-03 00:18:36 -07:00
Jai A
8b80934f77 Initial commit 2024-07-03 00:18:35 -07:00
Sasha Sorokin
b6618f81f8 Fix transition covering More download options btn (#1736)
This pushes bottom transition to a background level while setting it so
that any z-indexes are isolated within the hero to avoid any other
weirdness from happenning.
2024-07-02 22:05:27 -07:00
Jai A
0ae1e40d79 fix typo 2024-06-28 17:03:54 -07:00
Jai A
34d931573c try with bookworm 2024-06-28 17:02:30 -07:00
Jai A
721365578a update action to use master branch 2024-06-28 16:59:06 -07:00
Jai A
7be02318e0 add openssl 2024-06-28 16:55:54 -07:00
Jai A
88db79188c use rustls 2024-06-28 16:50:47 -07:00
Jai A
8a0329b23d don't run in detached mode 2024-06-28 16:48:03 -07:00
Jai A
02ebe59d2f add dispatch support for meta 2024-06-28 16:45:06 -07:00
Jai A
6e8e053b88 fix newline 2024-06-28 16:40:12 -07:00
Jai A
fc3056b0e0 add rust log env 2024-06-28 15:53:59 -07:00
Geometrically
4274a8ed68 Fix forge install issues (#18)
* Fix forge install issues

* remove mac garb
2024-06-28 15:44:17 -07:00
Geometrically
8b16cd1b36 Daedalus Rewrite + Code Cleanup (#16)
* [wip] rewrite daedalus, vanilla, fabric, and quilt

* finish forge + neo

* fix docker

* fix neoforge 1.21+

* update concurrency limit

* finish

* remove mac garb
2024-06-25 15:47:27 -07:00
Sasha Sorokin
bd49d6bd89 Inject native router only in reactive scopes (#1730) 2024-06-15 08:27:38 -04:00
Sasha Sorokin
61fd6f1741 Fix Turnstile unable to read the siteKey (#1728)
It seems that Nuxt Turnstile's way of setting the key in `runtimeConfig`
is broken and doesn't work properly, resulting in an error in runtime,
because it has to be set. This commit sets the key in `runtimeConfig`
manually instead, which seems to fix the issue.
2024-06-14 23:26:45 -04:00
Geometrically
05d45d9aab Fix page crash on orgs (#1727) 2024-06-14 15:43:09 -07:00
Geometrically
612eb64a83 fix broken navrow (#1725) 2024-06-14 15:29:35 -07:00
Sasha Sorokin
e0a9e62d84 Fix building for Cloudflare Nitro preset (#1726)
It seems that Rollup node-resolve module doesn't properly deal with
trailing slashes, causing it to thing that `string_decoder` is a
built-in Node.js dependency and attempt to import it from `unenv`, which
will obviously fail, because `string_decoder` is not, in fact, a Node.js
dependency, but an individual dependency of `readable-stream`.

This adds a small patch for `readable-stream@2.3.8` dependency, which
removes the leading slash, which seems to fix the builds.

This probably should be reported to relevant developers (Rollup
node-resolve plugin or Nitro?).
2024-06-14 15:26:12 -07:00
Sasha Sorokin
5db5f2251f Fix bad if condition on languages page (#1721) 2024-06-14 15:21:22 -07:00
Sasha Sorokin
34fd9d29c8 Update Nuxt to v3.12.1 (#1720)
* Update Nuxt dependencies

* Fix ref access in ChartDisplay

* Fix feature flags cookie options type error

* Specify type-only imports

* Fix shorthands access to tags outside of reactive scope

* Replace most useRoute calls with useRoute from vue-router

Nuxt's version of this composable is horrendously broken (nuxt/nuxt#21340)

* Import all svgs with ?component parameter

Fixes weird hydration issues + gives correct type
2024-06-14 13:23:02 -07:00
Geometrically
5148e27448 Fix neoforge check, make forge validator more lenient (#928) 2024-06-14 13:16:05 -07:00
Sasha Sorokin
c6d8476963 Update pnpm to v9.3.0 (#1684) 2024-06-13 11:13:26 -07:00
Geometrically
608e55c01f Fix duplicate file names (#927)
* Fix duplicate file names

* Fix checks
2024-06-12 21:40:24 -07:00
Geometrically
b8963d272a Update validators again (#925)
* Update validators again

* fix tests + clippy
2024-06-12 14:38:35 -07:00
Geometrically
beaaed6613 Use row level locking for payouts (#926) 2024-06-12 14:19:15 -07:00
Sean O'Connor
6bbd8c9b16 Update link to LICENSE in COPYING.md (#865)
The link to the license was outdated and resulted in a broken path. The correct filename is "LICENSE.txt".

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2024-06-12 13:41:40 -07:00
Geometrically
872ffa02ce fix version update route perf (#923)
* fix version update route perf

* fix tests
2024-06-12 09:58:01 -07:00
Prospector
1d9fe0c03d Add new links card and feature flag system for incremental dev. (#1714)
* Add new links card and feature flag system for incremental dev.

* Switch to env variable for dev flags

* Add members card

* fix order of creators card

* Fix owner icon color and bring org owner to top of list

* lint + other fixes

* Revamp feature flag system, add flag config page

* Add button to flags page in dev mode

* fix env overrides

* make typescript happy with the refs
2024-06-11 19:46:07 -07:00
Jakob
5b2d36e976 Move extra loaders and change RP Resolutions to use OR (#1398)
* Put extra loaders at bottom of the list

* Added hidden loaders to a tag

* Made RP Resolutions use OR

* fixed lint
2024-06-11 19:45:48 -07:00
Prospector
547135f7d2 Fix lint 2024-05-20 21:58:58 -07:00
tobinio
15f1416f52 fix weird graph rendering 2024-05-17 13:57:20 -07:00
ItsNiceCraft
b2709aa816 docs(cmp-info): update last modified 2024-05-17 13:56:26 -07:00
ItsNiceCraft
9775d4e74d docs(cmp-info): update analytics section 2024-05-17 13:56:26 -07:00
intergrav
f5661af1f4 feat: third party packages on app page 2024-05-17 13:53:37 -07:00
Geometrically
b933202694 Fix quilt validator (#916) 2024-05-08 20:28:40 -07:00
Geometrically
611bec38b4 Pre-generate homepage (#1699)
* Pregenerate homepage:

* fix lint
2024-05-03 14:48:14 -07:00
Geometrically
49cf0c8a9a Fix user deletion (#907)
* Fix user deletion

* run prep+fmt

* Update validators
2024-04-22 17:46:56 -07:00
Geometrically
83ccf4928f Fix mod msg status (#896)
* Fix mod msg status

* Fix validators
2024-04-22 13:09:35 -07:00
Emma Alexia
28b0d34bff Fix search query parameter validation (#863)
* Fix search query parameter validation

* fix compile

* make it actually work

---------

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2024-04-22 11:40:31 -07:00
Prospector
5a166d2455 Change to non-interactive turnstile (#1678) 2024-04-18 16:36:26 -07:00
Prospector
6808d270a7 Fix project header shadow (#1682) 2024-04-18 16:36:04 -07:00
Prospector
9dc68611a1 Remove incorrect minimum withdraw amount from dashboard (#1683) 2024-04-18 16:35:37 -07:00
Prospector
e932f38160 Fix pats and sessions using invalid translation keys (#1681) 2024-04-12 15:14:55 -07:00
Jai A
9014835880 fix translation issue 2024-04-10 18:48:06 -07:00
Geometrically
00328d04cd Add messages to checklist (#1676) 2024-04-10 18:31:05 -07:00
Prospector
5b1850e161 Fix system theme not respecting preferred dark theme. (#1673) 2024-04-10 18:30:46 -07:00
Prospector
60727656c9 Fix project list layouts on mobile (#1671) 2024-04-10 18:30:27 -07:00
Prospector
372d021062 Refactor settings to use common lang keys for titles (#1674) 2024-04-10 18:30:13 -07:00
Prospector
9c4421bfe0 Fix theme preview width (#1670) 2024-04-09 19:56:32 -07:00
Prospector
5f85af76cd Fix missing categories and environments on orgs and following collection (#1667) 2024-04-09 11:20:41 -07:00
Prospector
4c2565826f Settings refactor and redesign (#1669)
* new settings work

* Polishing work on settings refactor

* Run intl:extract

* List view -> Rows view

* Remove current preferred system theme indicator to make the themes fit on one line

* Remove extra margin on top of navstack
2024-04-09 11:18:56 -07:00
Jai A
ae2d83c8aa update dashboard to apiv3 2024-03-29 22:20:31 -07:00
Jai A
3b0216ca7e fix moderation dash 2024-03-29 22:09:45 -07:00
Geometrically
0a0837ea02 update ratelimiter (#897)
* update ratelimiter

* Switch to old scheduler
2024-03-27 15:56:29 -07:00
Geometrically
a0aa350a08 Fix cache stampede issues + generalize cache (#884)
* caching changes

* fix cache stampede issues

* Use pub/sub for better DB fetches

* remove pubsub

* remove debugs

* Fix caches not working

* fix search indexing removal
2024-03-26 21:15:50 -07:00
Jai A
1abfb175b5 remove unused import 2024-03-19 17:41:37 -07:00
Geometrically
a771695348 Remove mod inbox (#1661) 2024-03-19 17:36:09 -07:00
Geometrically
decfcb6c27 Fix issue with moderator identities being revealed (#892)
* Fix issue with moderator identities being revealed

* Fix on multiple threads route

* Fix thread notifs

* Fix failing test

* fix thread messages returning nothing
2024-03-19 17:25:49 -07:00
Geometrically
730913bec4 Fix issue in specifying dependencies (#891) 2024-03-18 13:56:06 -07:00
Geometrically
f8f037196e Fix payouts desync (#890)
* Fix payouts desync

* fix tests + user payouts req
2024-03-12 10:52:40 -07:00
Sasha Sorokin
fe3e4edb04 Fix removing oneself from the team not working (#1657) 2024-03-10 13:03:35 -07:00
Geometrically
364a4faa75 Fix invalid auth error on project submit (#1655) 2024-03-09 16:31:57 -07:00
Geometrically
e2ffeab8fa fix views analytics (#885)
* fix views analytics

* update ip stripping

* update clickhouse tables

* fix broken queries

* Fix panics

* fix download undercounting

* fix packerator failing sometimes

* run prep
2024-03-02 14:04:46 -07:00
Jai A
331787fe43 fix update projects 2024-02-24 22:43:20 -07:00
Jai A
9484a7237c fix moderation route 2024-02-21 23:10:23 -07:00
Geometrically
04d834187b Automatic moderation (#875)
* Automatic moderation

* finish

* modpack fixes

* fix unknown license msg

* fix moderation issues
2024-02-21 16:24:21 -07:00
Jai A
96063969ae fix auth 2024-02-21 16:23:34 -07:00
Geometrically
cb1c8be870 Moderation checklist (#1635)
* Moderation checklist

* Skip button

* Fix modpacks

* Fix modpack types not being sent

* Fixes

* remove explainer

* pass auth to analytics
2024-02-21 16:11:11 -07:00
Geometrically
33b2a94d90 Fix version creation taking forever (#878)
* Fix version creation taking forever

* run fmt + prep

* fix tests?
2024-02-05 12:24:12 -07:00
Geometrically
ce3b024fea Fix gift cards (#877)
* Fix gift card cashout

* Fix mutex locks
2024-02-05 12:02:07 -07:00
Geometrically
a02aa7586b Fix version files updates route (#876)
* Fix version updates files route

* run fmt + prep

* actually work

* update query perf

* fix
2024-02-04 20:19:46 -07:00
Prospector
5ea71da181 Add .ts to commonMessages import in default.vue 2024-02-01 08:04:28 -08:00
Prospector
dda469d10e Add translations for the default page layout (#1616)
* 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>
2024-01-29 18:55:54 -08:00
Prospector
9f6e033c53 Add review delay link to moderation page (#1619) 2024-01-29 18:55:37 -08:00
Prospector
15f44adf3b Add support and update footer links (#1615) 2024-01-28 13:15:51 -08:00
Mysterious_Dev
e9483cb242 Use omorphia icons for auth pages (#1614)
* Begin Work

* Use omorphia icons for sign-up page
2024-01-28 11:02:29 -08:00
Mysterious_Dev
5243d8bedf Use Composition API for settings index (#1613) 2024-01-28 11:02:03 -08:00
Prospector
ed731fd7a6 Fix org project list sorting and add loaders to tags (#1610) 2024-01-28 11:00:17 -08:00
Prospector
07f5422132 Fix donation links in project settings (#1609) 2024-01-28 10:59:36 -08:00
Mysterious_Dev
5aa1764848 Add translation keys for authorize page (#1594)
* Begin Work

* Error label

* WIP

* Finish button & add authorize label

* Redirect URL Label

* Reorganize

* Finish work

* Fix lint error

* camelCase !

* Normalization

* Apply suggestion from brawaru

* Fix forgotten
2024-01-28 10:59:08 -08:00
Mysterious_Dev
4973ee555b Add translation keys for Pats page (#1590)
* Begin Work

* More work

* Fix lint error

* More work on label

* Fix mistake

* Finish adding  delete pat modal keys

* More label and button

* More label keys

* Fix lint error

* Description key

* Finish page

* Forgot this

* Fix lint error

* Add to navstack

* Apply suggestions from brawaru

* Normalization

* Re-organize PATs page messages (#10)

- Group messages by their usage
- Fix spelling mistakes in some of the property names and keys
- Change some of the keys to conform to keying conventions
- Change variable name in token.expires-in message to inTime

* Regenrate index.json

---------

Co-authored-by: Sasha Sorokin <10401817+brawaru@users.noreply.github.com>
2024-01-28 10:58:23 -08:00
Geometrically
d5107f2ef6 Fix unlisted showing (#873)
* Fix projects showing draft

* fix build

* run fmt
2024-01-27 19:11:00 -05:00
Geometrically
5b63b0b398 jemalloc (#861)
* jemalloc

* featurizeP

---------

Co-authored-by: Wyatt Verchere <wverchere@gmail.com>
2024-01-27 18:13:52 -05:00
Jai A
4bfccba4c0 remove search from home 2024-01-27 10:11:14 -08:00
Daniel Roe
5ddad8ebc2 fix: import nuxt composables from #imports (#1438)
* fix: import nuxt composables from #imports

* fix: combine import 🙈

---------

Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2024-01-27 10:02:41 -08:00
Mysterious_Dev
b5921897d6 Rework session keys for normalization (#1603) 2024-01-27 09:53:46 -08:00
Prospector
53a46b88b8 Regenerate en-US language file 2024-01-27 09:49:28 -08:00
AdamRaichu
da977ccace add title to leave project button (#1583) 2024-01-27 09:44:10 -08:00
Martins Olumide
7b9a2167ad Updated 2023 to 2024 (#1602)
Co-authored-by: devasMartins-Tmd <dev.as.martins3@gmail.com>
2024-01-27 09:38:23 -08:00
Mysterious_Dev
fc16771355 Fix: Projects in collections have less tags shown that they have (#1599)
* Fix: Projects in collections have less tags shown that they have

* Fix lint error
2024-01-27 09:37:35 -08:00
pseudonym-2669
3ef3fbfd0e Fix scoped typo (#1605) 2024-01-27 09:36:38 -08:00
Mysterious_Dev
415a0aaf75 Fix: Copy ID button doesn't work (#1598) 2024-01-27 09:36:16 -08:00
Emma Alexia
5a4a9b570e Fix discrepancy in Markdown rendering (#1595) 2024-01-27 09:35:04 -08:00
Misode
2df60d6387 Add download stat on organization pages (#1581)
* Add download stat to organization page

* Fix plural in projects stat
2024-01-27 09:32:11 -08:00
Mysterious_Dev
9c176013ab Add translation keys for sign-in page (#1551)
* 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>
2024-01-27 09:31:25 -08:00
Mysterious_Dev
036d251e15 Add translation keys for sign-up page (#1505)
* Begin Work

* WIP

* WIP

* Finish adding notification keys

* WIP

* Finish work

* Fix lint error

* Re-organize Sign up page messages (#13)

- Re-order messages by their appearance in template
- Change the keys to conform to conventions
- Inline password mismatch notification message

---------

Co-authored-by: Sasha Sorokin <10401817+brawaru@users.noreply.github.com>
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2024-01-27 09:30:09 -08:00
Mysterious_Dev
925060689a Add translation keys for verify email page (#1503)
* 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>
2024-01-27 09:28:52 -08:00
Mysterious_Dev
f0631d734e Add translation keys for reset password page (#1502)
* 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>
2024-01-27 09:27:34 -08:00
Mysterious_Dev
52b299315d Add translation keys for collections (#1496)
* Begin Work

* Add more common messages

* Work on modal

* Add more keys

* Add keys for icon buttons

* Add more keys

* Handle error keys

* Add more keys

* Add more keys

* Edit fields keys

* Finish (almost)

* Finish work for collection page

* Dashboard Nav stack & Format

* WIP

* Move some messages to common

* Finish work

* Format

* Reorganization

* Fix some mistake

* add common collections label

* Add collections label key to default layout

* Make title and description reactive (#8)

---------

Co-authored-by: Sasha Sorokin <10401817+brawaru@users.noreply.github.com>
2024-01-27 09:24:19 -08:00
Prospector
0195e94aa7 Add notification pagination (#1584)
* Add notification pagination

* Add grouping to dashboard home
2024-01-27 09:23:57 -08:00
Mysterious_Dev
75f0b2b82c Add translation keys for welcome page (#1499)
* Begin Work

* WIP

* Add long title key

* Finish work (for now)

* Fix lint error

* Add continue button key

* Make continue button key generic
2024-01-18 09:05:54 -08:00
June
f26f283c1f Added padding to account for .changelog-bar offset (#1354)
* Added padding to account for .changelog-bar offset

* Applied prettier code formatting

* Just update bottom padding

---------

Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2024-01-18 09:02:55 -08:00
Mysterious_Dev
7c387b2aee Add autocomplete attribute for 2fa input (#1450)
* Add input mode attribute for 2fa input

* Add autocomplete property

* Remove inputmode property
2024-01-18 08:58:28 -08:00
Mysterious_Dev
071ecb284e Add apple touch icon to head (#1453) 2024-01-18 08:57:20 -08:00
Mysterious_Dev
03242942c2 Fix: Minor grammar mistake in project Moderation page (#1487)
* Fix: Minor grammar mistake in project Moderation page

* Fin lint error
2024-01-18 08:57:05 -08:00
Mysterious_Dev
a476927595 Add enter shortcut for 2FA & email management (#1504)
* Add event for email changing

* Add event for 2fa setup & removal

* Fix lint error

* Update pages/settings/account.vue

Co-authored-by: Emma Alexia <wafflecoffee7@gmail.com>

---------

Co-authored-by: Emma Alexia <wafflecoffee7@gmail.com>
2024-01-18 08:56:43 -08:00
Mysterious_Dev
ec6e1704be Fix: Project banners aren't showing in collections (#1562)
* Add featured image

* Use find method

* Fix lint error

* ...

* Fix

* Fix lint error
2024-01-18 08:56:14 -08:00
Mysterious_Dev
d2f189607e Fix logic for featured image (#1580) 2024-01-18 08:55:52 -08:00
Mysterious_Dev
c13777e68d Fix a mistake for "updated tooltip" on collection page (#1493) 2024-01-18 08:55:23 -08:00
Geometrically
fc577241bd Update deps (#859) 2024-01-14 12:36:11 -05:00
Geometrically
bb8a0e596c Fix settings fail (#856)
* Fix settings fail

* Revert settings equality checks
2024-01-13 21:09:28 -05:00
Geometrically
2a63b703f9 Fix additional categories not showing up correctly (#855) 2024-01-13 20:19:45 -05:00
Geometrically
bfeff78164 Update search queries (#854)
* Update search queries

* Bump accepted payload limit

* fixes

* push test changes

* fmt clippy prepare

---------

Co-authored-by: Wyatt Verchere <wverchere@gmail.com>
2024-01-13 18:20:28 -05:00
Wyatt Verchere
4826289020 hardcodes search facets (#852)
* hardcodes search facets

* disable search

* Uncomment

---------

Co-authored-by: Jai A <jaiagr+gpg@pm.me>
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2024-01-13 17:42:45 -05:00
Wyatt Verchere
0aebf37ef8 Index swapping when meilisearch reindex (#853)
* cycling indices

* removed printlns

* uses swap indices instead

* Bring back deletion

* Fix tests

* Fix version deletion

---------

Co-authored-by: Jai A <jaiagr+gpg@pm.me>
2024-01-13 17:40:30 -05:00
Carter
2fb63dcfb1 Fix graph state & data handling (#1578)
* Rip out external color state

* Fix styling errors

* Allow charts to display personal/entity perspectives on routes

* Refactor analytics data processing and selection

* Include custom color icon
2024-01-12 17:51:03 -05:00
Carter
0adb7685f6 Refactor scopes to use Intl for labels and descriptions (#1570)
* Refactor scope labels for applications and pats

* move scopes to composables

* Refactor pages to use intl

* Fix merge error

* Extract messages
2024-01-12 15:55:51 -05:00
Geometrically
1cbe99a0d8 Allow users to override the org owner (#1577) 2024-01-12 15:29:50 -05:00
Geometrically
d1a09d0b95 Add assets and migrations to dockerfile (#851) 2024-01-12 15:00:37 -05:00
Geometrically
7b00003958 Org fixes (#850)
* Org fixes

* payouts bug

* Update dockerfile fix test

* Update to bookworm

* clippy
2024-01-12 14:19:39 -05:00
Wyatt Verchere
4483bb147c re-modularizes-search-facets (#842)
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2024-01-12 11:05:46 -05:00
Prospector
fa83da6085 Fix staging banner (#1573)
* Revert "Add API indicator and staging banner (#1563)"

This reverts commit a75de51198.

* Revert "Revert "Add API indicator and staging banner (#1563)""

This reverts commit b4d3b56b33ca4080fa3bc1b7a2dde7b21ba18e51.

* Fix banner to only show on staging

---------

Co-authored-by: Jai A <jaiagr+gpg@pm.me>
2024-01-12 11:01:15 -05:00
Wyatt Verchere
ef31c0c0da Cleans up and removes TODOs, adds tests (#844)
* removes version ordering from v2; simplifies now-unecessary three-level faceting

* resolved some todos

* test for game version updating

* merge fixes; display_categories fix
2024-01-11 21:11:27 -05:00
Carter
1392c16f12 Refactor scope labels for applications and pats (#1560) 2024-01-11 19:13:03 -05:00
Emma Alexia
d6393653e1 Add new section to the rules about bypassing Mojang restrictions (#1561) 2024-01-11 19:12:50 -05:00
Prospector
a75de51198 Add API indicator and staging banner (#1563)
* Change text of Modrinth logo depending on the API url being used

* Staging banner
2024-01-11 19:12:25 -05:00
Prospector
a21869ec9b Add filters for transfer history page (#1564) 2024-01-11 19:11:58 -05:00
Prospector
f534e4ee37 Fix project page menu opening off-screen with right sidebar (#1565) 2024-01-11 19:11:39 -05:00
Carter
9add661a5b Adjust colors to be controlled from outside chart component (#1568)
* Adjust colors to be controlled from outside chart component

* Access colors from source of truth

* Change access method to omit projects from params

* Just omit projects from query
2024-01-11 19:11:26 -05:00
Wyatt Verchere
76c885f080 Fixes incorrect loader fields (#849)
* loader_fields fix

* tested, fixed

* added direct file check for invalid file_parts

* search fixes

* removed printlns

* Adds check for loaders

* removes println
2024-01-11 18:36:01 -05:00
Emma Alexia
f16e93bd3a Raise project limit on collections from 64 to 1024 (#847)
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2024-01-11 10:27:38 -05:00
Geometrically
05d2a96900 Organization payouts (#848) 2024-01-11 10:27:15 -05:00
Carter
81948a5c29 Creator update frontend hotfixes (#1538)
* Fix donation link submission

* Refactor Charts to fit edgecase bugs in design

* edge and mobile bug fixes

* remove dead code

* fix width on mobile

* Update omorphia version to 0.7.3

* Refactor legend item styling in ChartDisplay.vue

* Update package dependencies
2024-01-10 15:50:21 -05:00
Geometrically
5924154a62 Fix org ownership (#1553) 2024-01-10 15:13:37 -05:00
Carter
354bfe58cd Add withdrawal amount validation and display details (#1549)
* Add withdrawal amount validation and display transfer details

* Fixed amt should be consistent

* Empty amount rather than clamp

* Only mutate amount if fixed or 1 value

* Add badge to giftcard withdraw methods
2024-01-10 15:13:08 -05:00
Geometrically
c5974a8575 Fix unfollowing (#1552) 2024-01-10 13:43:28 -05:00
Prospector
c0275addb0 Add report reopening and message for reopening a report (#1550) 2024-01-10 13:33:57 -05:00
Julian Vennen
9c70c35669 Ignore spaces when parsing facets (#846) 2024-01-10 08:40:19 -08:00
Prospector
c85baf7fd0 Fix versions page bug: v-if instead of v-else-if (#1546) 2024-01-09 16:33:10 -05:00
Prospector
39e5778bd0 Country -> region (#1548) 2024-01-09 16:32:59 -05:00
Prospector
a3b77bb37f Add private mod notes and message deletion (#1494)
* Really simply private messages impl

* Make private notes better

* Add thread message deletion

* Lint
2024-01-09 16:32:38 -05:00
Julian Vennen
9d54c41a2b Fix melisearch name replacements with operators other than : (#845)
* Fix melisearch name replacements with operators other than :

* Pass facet by refrence

---------

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2024-01-09 13:16:36 -08:00
Prospector
660cf0c1e4 Remove the ability to replace uploaded primary versions (#1542) 2024-01-09 15:43:38 -05:00
Wyatt Verchere
3464fbb2e8 fixes capitalization issue; modifies existing test to check for it (#841) 2024-01-09 15:42:17 -05:00
Carter
11020c4545 Update package.json version to 0.7.3 2024-01-08 10:15:10 -08:00
Carter
e93bf02e3a Add wrap to editor 2024-01-08 10:14:54 -08:00
Wyatt Verchere
d51d6517be fixes modpacks losing version data on modification (#840) 2024-01-08 10:28:33 -05:00
Geometrically
a629d7f048 Fix override perms orgs (#1536)
* Fix override perms orgs

* remove useless card?
2024-01-07 21:36:32 -05:00
Geometrically
5f6cc1281e Fix user revenue display (#839)
* Fix user revenue display

* fix rev display
2024-01-07 20:57:37 -05:00
Carter
683b0f5c48 Add safety and state refresh when adding to collection (#1535) 2024-01-07 19:58:30 -05:00
Geometrically
42a80a41ca Fix collection page (#1534)
* Fix collection page

* remove wrangler.toml
2024-01-07 19:27:30 -05:00
Jai A
035fc69060 temp pause 2024-01-07 18:38:40 -05:00
Geometrically
34baf44534 Fix packs logic (#837)
* Fix packs logic

* Clippy
2024-01-07 18:36:42 -05:00
Carter
9dcb90a9cf Creator update hotfixes (#1531)
* Put image upload on v3

* Fix space encoding in search

* Add safety to any iterables
2024-01-07 17:28:51 -05:00
Wyatt Verchere
c3448033de Fixes missing plugin/datapack in search (#829)
* fixes datapack/plugin issue

* fixes level

* server side searching; org projects

* total hits

* total hits fixes

---------

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2024-01-07 16:36:26 -05:00
Geometrically
aee9b6a951 Fix Plugin/Datapack creation and featuring (#836) 2024-01-07 15:08:28 -05:00
Mysterious_Dev
1af0aa3f57 Fix: Wrong follower count on collections (#1528) 2024-01-07 14:32:40 -05:00
Sasha Sorokin
35c9338220 Fix no collections message on user page (#1501) 2024-01-07 14:32:05 -05:00
Mysterious_Dev
2e8fa0f6c5 Fix: Add collections to mobile nav instead of follow (broken link) (#1527)
* Add collections in nav instead of follow (broken link)

* Fix lint error
2024-01-07 14:31:39 -05:00
Geometrically
931aeda17f More site fixes (#1530) 2024-01-07 14:31:22 -05:00
Carter
a037d24b0f Creator update hotfixes
* Responsive avatar sizing fix

* random mounting bug

* User owned project list correctly filtered

* fix accepted member count

* Leave team fix

* Remove debug

* Remove debug

* hide view button if collections view
2024-01-07 01:30:23 -08:00
Wyatt Verchere
75e5bec962 test (#828) 2024-01-07 01:47:42 -05:00
Wyatt Verchere
59c269c8d0 Fixes game versions v2 display (#827)
* fixes game versions display

* reverses from version route
2024-01-07 01:04:13 -05:00
Geometrically
1fa556cd00 Fix moderation + oauth (#1515) 2024-01-07 00:17:22 -05:00
Geometrically
82e9ad8a20 Org fixes (#1513) 2024-01-06 23:48:15 -05:00
Wyatt Verchere
541022cdc3 Featured filtering patch (#825) 2024-01-06 22:31:34 -05:00
Carter
d893765b24 New organizations (#1488)
* [WIP] Transfer organizations to own branch

* push progress

* Setup organizations page

* Add organizations grid to user profile

* Remove debug

* Add error handling for failed organization fetch

* Refactor organization page and settings

* Restructure to composition setup api

* checklist completion

* Apply suggestions from code review

Co-authored-by: Emma Alexia <emma@modrinth.com>

* Update pages/[type]/[id]/settings/index.vue

Co-authored-by: Emma Alexia <emma@modrinth.com>

* Update pages/[type]/[id]/settings/index.vue

Co-authored-by: Emma Alexia <emma@modrinth.com>

* Update pages/[type]/[id]/settings/index.vue

Co-authored-by: Emma Alexia <emma@modrinth.com>

* Update pages/[type]/[id]/settings/index.vue

Co-authored-by: Emma Alexia <emma@modrinth.com>

* Clean up org state management

* Refactor useClientTry to simplify code

* Remove unused code and update dependencies

* Refactor bulkEditLinks event handler

* Refactor organization management functions

* Update heading from "Creators" to "Members"

* Refactor team member invitation

* Refactor member management functions

* Implement validation on clientside for org names

* Name sanitization for fun characters

* Update onInviteTeamMember function parameters

* Remove name

* sidebar

* random rendering issue

* Conform to org removal

* Org no projects conditional

* Update organization links in dashboard

* Update Cards to universal-cards

* Refactor gallery upload permissions

* Refactor to sidebar pattern

* Update button classes in gallery and versions components

* Finish (most)

* almost finish

* Finish orgs :D

* Fix lint

* orgs fixes

* fix most things

* project settings

* convert grid to cards

* clean up unused test class

* Settings -> Manage

* add org view to org management

* Fix prop mounting issue

* fix analytics grid layout overflow

* fix multiselect breaking layout

* Refactor chart selection logic in ChartDisplay.vue

* Add transfer modal

---------

Co-authored-by: Jai A <jaiagr+gpg@pm.me>
Co-authored-by: Emma Alexia <emma@modrinth.com>
2024-01-06 18:09:26 -05:00
Wyatt Verchere
527521328f Fixes search not reading sidetypes (#823) 2024-01-06 16:36:26 -05:00
Geometrically
917b89e44f Fix org adding (#821) 2024-01-06 16:34:20 -05:00
Wyatt Verchere
87862f3e23 changes tests to a macro (#822) 2024-01-06 14:08:03 -05:00
Wyatt Verchere
10eed05d87 Fixes failing tests (#813)
* fixes failing  tests

* fmt clippy

* updated dockerfile

* fixes failing tests; adds important fix from extracts_versions PR

* assert_eq -> assert_status, giving better error messages

* fixed random failure bug

* fmt, clippy, etc
2024-01-05 11:20:56 -05:00
Geometrically
f5802fee31 Staging bug fixes (#819)
* Staging bug fixes

* Finish fixes

* fix tests

* Update migration

* Update migrations

* fix side types being added for ineligible loaders

* fix tests

* Fix tests

* Finish fixes

* Add slug display names
2024-01-04 16:24:33 -05:00
Mysterious_Dev
1108b0264e Add missing extracted keys (#1498) 2024-01-03 11:42:44 -05:00
Geometrically
cf9c8cbb4f Fix deletion of private notes (#814) 2023-12-28 20:25:55 -05:00
Carter
4f060579ca bump 0.7.2 2023-12-28 16:49:17 -08:00
Carter
1940c6e1ba Fix editor state issues (#173)
* Add MarkdownEditor component with default value and disabled option

* Add editorThemeCompartment for customizing editor theme
2023-12-28 16:48:10 -08:00
Geometrically
f199ecf8e9 Final release fixes (#811) 2023-12-27 13:54:17 -05:00
Mysterious_Dev
e754f6c234 Fix: "Set Password" button on profile page is not active (#1486)
* Fix disabled button for "Add password"

* Fix lint error

---------

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2023-12-27 13:28:29 -05:00
Xander
d19dbbfe7e Auto-focus 2FA input box (#1482) 2023-12-27 13:28:12 -05:00
Geometrically
3a735ea0ce New collections (#1484)
* [WIP] Transfer collections to own branch

* fixes

* rewrite js

* Add visibility dropdown to collection edit modal

* Add visibility badges to collection page

* Update visibility options and icons in collection
page

* Add delete functionality to collection modal

* Collection project deletion flow

* remove "visit project" button on overflow

* Remove via checklist not individually

* Update manage title in settings.vue

* remove collections from settings page

* hook up collections page

* collection header to look like project header

* Refactor layout.scss and collections.vue

* fix omorphia

* Update

* Conform collections to old design structure

* Update navigation links and remove unused code

* Add collection view and collections to user page

* Refactor user project display logic

* Add collection creation functionality and update profile labels

* Add function calls to initialize user collections

* Refactor collection page layout and functionality

* Add initialization of user collections in create function

* Fix styling issue in collection page

* Update collection status to private

* remove name

* Refactor card component and update grid layout

* Finish collections

---------

Co-authored-by: Carter <safe@fea.st>
2023-12-27 13:27:50 -05:00
Geometrically
e319d19a54 New analytics (#1483)
* [WIP] Transfer analytics to own branch

* code style changes

* Refactor country name conversion

* Clean up api and ssr for settings page

* refactor analytics into reusables

* Refactor chart tooltip and reset functionality

* Update dayjs import and formatTimestamp function

* Fix bug in login functionality

* Abstract data fetching

* Refactor analytics data formatting

* Refactor useFetchAllAnalytics function signature

* Refactor analytics processing functions

* Fix chart data in ChartDisplay.vue

* Refactor analytics pages

* Refactor delete labrinth.ts test types

* Fix import statement for dayjs and update usage of
unix function

* Fix dropdown select in ChartDisplay.vue and add
Analytics link in creations.vue

* Update chart colors in ChartDisplay.vue and
analytics.js

* Update defaultRanges in ChartDisplay.vue

* Add colors to chart

* Update legend position in ChartDisplay.vue

* Refactor color conversion functions in
analytics.js

* Bug fixes

* Use softer colors

* Import dayjs unix module for analytics.js

* Refactor chart tooltip generation

* Fix calculation of total value in generateTooltip
function

* Fix button-base styling in ChartDisplay.vue

* Adopt intl standard rather than iso-3166-1

* Add support for potential flags

* Analytics rebased

* fix cf pages

* now?

* try now

* now?

* Fix this time

* address rev

* Finish analytics

* fix api url

---------

Co-authored-by: Carter <safe@fea.st>
2023-12-26 14:46:32 -05:00
Wyatt Verchere
3bdd551d40 fixes bug (#809) 2023-12-24 18:53:58 -05:00
Wyatt Verchere
4a7936a51d adds text, fixed problem (#808) 2023-12-21 18:50:25 -08:00
Jakob
5f075e4936 Fixed Password matching msg showing when confirm is empty (#1400)
* Fixed Password matching msg showing when confirm is empty

* ran lint and == → ===
2023-12-21 20:09:48 -05:00
Wyatt Verchere
76e00c2432 Filtering refactoring (#806)
* switching computers

* fmt clippy sqlx prepare

* merge fixes
2023-12-21 16:36:30 -08:00
Wyatt Verchere
b46f3bf2c4 Live test fixes (#807)
* fixes

* changes
2023-12-21 15:34:42 -08:00
Wyatt Verchere
f7b4b782bf Organization ownership (#796)
* organization changes

* changes

* fixes failing test

* version changes

* removed printlns

* add_team_member comes pre-accepted

* no notification on force accept

* fixes tests

* merge fixes
2023-12-20 17:27:57 -05:00
Wyatt Verchere
60c535e861 Misc testing improvements (#805)
* made dummy data more consistent; not an option

* fixed variable dropping issue crashing actix (?)

* removed scopes specific tests, removed schedule tests

* team routes use api

* removed printlns, fmt clippy prepare
2023-12-20 14:46:53 -05:00
Wyatt Verchere
d59c522f7f Sanity checked all of V2 route conversions (#803)
* follows

* all v2 routes now either convert or have a comment

* added common structs, clippy

* merge fix

---------

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2023-12-19 10:20:32 -08:00
Wyatt Verchere
9f798559cf country testing (#801)
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2023-12-15 12:49:55 -07:00
Wyatt Verchere
f939e59463 Testing bug fixes (#788)
* fixes

* adds tests- fixes failures

* changes

* moved transaction commits/caches around

* collections nullable

* merge fixes

* sqlx prepare

* revs

* lf fixes

* made changes back

* added collections update

---------

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2023-12-14 15:19:50 -07:00
Wyatt Verchere
50e89ad98b fix (#800) 2023-12-13 17:08:58 -07:00
Geometrically
c0c5978028 Bump meilisearch version (#799) 2023-12-12 21:04:40 -07:00
Emma Alexia
abbeed394e Fix project visibility in hash routes (#792)
* Fix project visibility in hash routes

* improve

* clippy

* CLIPPYYYYYYYYYYYYYY

* clippy, I hope you know that I hate you

---------

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2023-12-12 20:45:32 -07:00
Wyatt Verchere
f5b8c15388 small add (#795)
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2023-12-12 20:20:09 -07:00
Geometrically
f53b6b550f Fix high memory usage during search (#798)
* Fix high memory usage during search

* Fix settings lag

* Fix clippy + fmt
2023-12-12 20:11:56 -07:00
Wyatt Verchere
00e55b1874 get dependencies fix (#794) 2023-12-12 19:57:51 -07:00
Wyatt Verchere
90954dac49 Testing search prod (#791)
* testing push

* lowers it

* removed unwrap

* reduced to 500

* Really took down time

* reorders chunking

* rebuild docker

* reverted most changes

* cargo fmt

* reduced meilisearch limit

* added logs, removed deletion of index

* one client creation

* changes

* reverted gallery cahnge

* testing re-splitting again

* Remove chunking + index deletion

* Bring back chunking

* Update chunk size

---------

Co-authored-by: Jai A <jaiagr+gpg@pm.me>
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2023-12-11 20:01:15 -08:00
Wyatt Verchere
6217523cc8 Test permissions use api (#784)
* initial push

* fmt; clippy

---------

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2023-12-11 18:24:49 -08:00
Wyatt Verchere
27ccd3dfa8 summary change to description (#793) 2023-12-11 18:53:30 -07:00
Wyatt Verchere
235f4f10ef Chunking searches (#787)
* new attempt

* revised searching CTEs

* prepare fix

* fix tests

* fixes

* restructured project_item to use queries

* search changes! fmt clippy prepare

* small changes
2023-12-08 23:14:17 -07:00
Brady
d6ba3f3adf Add NeoForge to infer (#1443)
* Add NeoForge inferring

* Add check for if below 1.20.2
2023-12-05 19:57:03 -07:00
Sasha Sorokin
b453e2cf1a Fallback to project type message on unknown types (#1470)
This commit adds a fallback to getProjectTypeMessage function to return
a generic project type whenever it encounters an unknown project type,
ensuring there are no errors when the new project types are added.
2023-12-05 18:21:14 -07:00
Geometrically
2d14e5682d New payouts system (#1456)
* initial

* finish withdraw page

* Finish frontend

* Fix UI a bit

* tester fixes
2023-12-05 12:13:27 -07:00
Geometrically
945e5a2dc3 Fix semi-colon causing query to fail (#785) 2023-12-04 21:18:50 -07:00
Wyatt Verchere
4b6a2685d0 fixed gallery mislabeled field (#783) 2023-12-04 20:44:48 -07:00
Carter
1f58aebb2b Oauth 2 Flow UI (#1440)
* 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>
2023-12-04 20:26:50 -07:00
Sasha Sorokin
6d70ced93a Add Omorphia locale files loading (#1447)
Implements loading of all locale files shipped with Omorphia package by
globbing and registering them during the `vintl:extendOptions` hook.

Also updated VIntl for Nuxt to ensure those files are properly loaded.
Previous version of VIntl for Nuxt had a somewhat broken module ID
tracking, preventing Omorphia locale files to be properly transformed
during the build; at least on systems like Windows, don't know about
*nix. The tracking approach was replaced in 1.8.0, and it seems to be
working now.
2023-12-04 19:48:12 -07:00
Geometrically
e76b6c3bde Optimize country analytics (#782) 2023-12-04 19:45:17 -07:00
Geometrically
4630d175d7 Optimize analytics queries (#781)
* Optimize analytics queries

* fix clippy
2023-12-04 18:49:51 -07:00
Wyatt Verchere
27055b96e3 fixes urls (#780) 2023-12-04 18:03:13 -07:00
Wyatt Verchere
0ef96c0bca fixed issue (#778) 2023-12-04 13:51:28 -08:00
Wyatt Verchere
b2be4a7d67 Search overhaul (#771)
* started work; switching context

* working!

* fmt clippy prepare

* fixes

* fixes

* revs

* merge fixes

* changed comments

* merge issues
2023-12-03 07:27:12 -07:00
Wyatt Verchere
a70df067bc Misc v3 linear tasks (#767)
* v3_reroute 404 error

* hash change

* fixed issue with error conversion

* added new model confirmation tests
+ title name change

* renaming, fields

* owner; test changes

* clippy prepare

* fmt

* merge fixes

* clippy

* working merge

* revs

* merge fixes
2023-12-01 20:15:00 -07:00
Wyatt Verchere
2d92b08404 V2 removal and _internal rerouting (#770)
* deleteed v3 exclusive routes

* moved routes around

* fixed linkage that movement broke

* initial merge errors

* fixes
2023-12-01 10:02:11 -08:00
Wyatt Verchere
4bbc57b0dc Links (#763) 2023-11-30 23:14:52 -08:00
Wyatt Verchere
756c14d988 fixed redis deserialization issue (#775) 2023-11-30 19:57:15 -08:00
Wyatt Verchere
b3b55210f7 Renamed default project type to unknown. (#774)
* small change

* plugins and datapacks now correctly return to project

* Adds to search
2023-11-30 17:17:21 -08:00
Wyatt Verchere
58093a9438 Modifies sql queries to use CTEs (#773)
* fixes huge slowodwn on version item

* changes!

* fixes, touch ups, indices

* clippy prepare
2023-11-30 11:10:56 -08:00
Wyatt Verchere
ed33dd2127 fixed issue (#772) 2023-11-30 10:30:30 -08:00
Carter
accc53c5dd Implement Editor MOD-349 (#1427)
* Implement Editor

* content oveflow fix for description

* Description card fix

* make everything fix in report modal

* seperate report page with image upload

* Bump Omorphia

* Update pages/report.vue

Co-authored-by: Emma Alexia <emma@modrinth.com>

* suggested changes and cleanup

* fix button spacing

* clean up and replace report implementations

* corepack fix

* Remove ModalReport

* image uploads for conversations

* image uploading context for versions and threads

* adjust information about thread messages

* Update pages/report.vue

Co-authored-by: Emma Alexia <emma@modrinth.com>

* Adjust image upload imports

* fix api changes for useImageUpload

* correct report redirection uri

* report button feedback

* omorphia ver bump

---------

Co-authored-by: Emma Alexia <emma@modrinth.com>
2023-11-29 11:56:17 -07:00
Geometrically
d4f9c97cca Payouts code (#765)
* push to rebase

* finish most

* finish most

* Finish impl

* Finish paypal

* run prep

* Fix comp err
2023-11-29 11:00:08 -07:00
Wyatt Verchere
f731c1080d Side types overhaul (#762)
* side types overhaul

* fixes, fmt clippy

* migration fix for v3 bug

* fixed migration issues

* more tested migration changes

* fmt, clippy

* bump cicd

---------

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2023-11-28 11:36:59 -07:00
Wyatt Verchere
fd18185ef0 More staging fixes (#768)
* Fixes issues

* staging fixes

* passes tests

* fixes. fmt/clippy

* drops datapack/plugin extras

* fixed failing test

---------

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2023-11-26 20:29:59 -07:00
Carter
0efbbed5e2 Add fields to OAuth (#769)
* Add url and description fields to OAuthClient
model

* Add OAuth client icon editing and deleting
endpoints

* updated query data

* fix missed queries

* sqlx prep

* update with tests builds
2023-11-25 21:48:51 -07:00
Wyatt Verchere
bad350e49b Plugins (#758)
* plugins; datapacks

* merge fixes/changes

---------

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2023-11-25 18:11:38 -07:00
Wyatt Verchere
172b93d07f Tests v2 recreate (#760)
* added common project information; setup for v2 test change

* all tests now use with_test_environment

* progress, failing

* finished re-adding tests

* prepare

* cargo sqlx prepare -- --tests

* fmt; clippy; prepare

* sqlx prepare

* adds version_create fix and corresponding test

* merge fixes; rev

* fmt, clippy, prepare

* test cargo sqlx prepare
2023-11-25 14:42:39 -07:00
Wyatt Verchere
ade8c162cd Staging fixes (#766)
* fixes bugs

* fixed more things

* fixes version creation

* small change

* removed modpack
2023-11-24 11:42:06 -08:00
Wyatt Verchere
79e634316d Analytics permissions (#761)
* adds test; permissions fix

* clippy

---------

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2023-11-21 10:02:07 -07:00
Emma Alexia
e4cb8b71dd Fix version editing on modpacks returning a "too large" error (#1455) 2023-11-20 18:57:06 -05:00
Wyatt Verchere
dfba6c7c91 Compiler improvements (#753)
* basic redis add

* toml; reverted unnecessary changes

* merge issues

* increased test connections

---------

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2023-11-19 20:10:13 -07:00
Carter
f6eff090e7 Accept image pasting functionality (#151)
* Accept image pasting functionality

* Bump to 0.7.1

* Default alt text should be like github

* sync modelValue changes to codemirror state

* Refactor image uploading in paste

* Fix error handling in image upload
2023-11-18 21:55:34 -07:00
Wyatt Verchere
e06a77af28 Adds code coverage (#757)
* coverage initial push

* compiles on PR

* adds db env variable

* fixed env variables being on the wrong action

* added more tests yml code

* refresh

* tried copying over tests.yml

* removed accidental tests

* shotgun attempts

* generated yml

* more tries

* shotgun again

* small mistakes

* repush

* repush

* Adds env variables to tarp

* removes unused actions and tests cfg attribute on main.rs

* only will work on push to master

* changed to 60%

---------

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2023-11-17 17:58:15 -08:00
Emma Alexia
61a2c362b9 Fix grammatical issue in privacy policy (#1449)
* Fix grammatical issue in privacy policy

* Update privacy.vue
2023-11-17 15:46:01 -07:00
Wyatt Verchere
74973e73e6 Tests 3 restructure (#754)
* moved files

* moved files

* initial v3 additions

* moves req data

* tests passing, restructuring, remove v2

* fmt; clippy; prepare

* merge conflicts + issues

* merge conflict, fmt, clippy, prepare

* revs

* fixed failing test

* fixed tests
2023-11-16 11:36:03 -07:00
Prospector
cbcee037a7 Merge pull request #147 from modrinth/redesign/new-promo-style
Port Promotion to redesign style
2023-11-15 17:14:28 -08:00
Prospector
de2e4a9c7f Merge branch 'master' into redesign/new-promo-style 2023-11-15 17:14:20 -08:00
Prospector
0ba0a5bcd8 Merge pull request #148 from modrinth/feature/overflow-menu-links
Add link support to overflow menus
2023-11-15 17:11:24 -08:00
Prospector
70cc409402 docs 2023-11-15 17:10:10 -08:00
Prospector
160ca610ae Bump version 2023-11-15 17:09:06 -08:00
Prospector
2f1aa95f4c Allow links in overflow menus 2023-11-15 17:08:55 -08:00
Geometrically
ac07ac5234 Fix date parsing for partial versions (#15) 2023-11-15 16:35:33 -07:00
Carter
3eead128a6 Image-validation (#144)
* Add spoiler tag functionality to CodeMirror

* Refactor image insertion logic in
MarkdownEditor.vue

* Refactor modal state reset functions in
MarkdownEditor.vue
2023-11-15 12:36:34 -07:00
Prospector
4c22a73ff3 Decrease ad border opacity 2023-11-15 09:49:38 -08:00
Prospector
a78f58de92 Merge branch 'master' into redesign/new-promo-style 2023-11-15 09:38:02 -08:00
Prospector
fcda48903b Merge pull request #146 from modrinth/fix/popout-pointer-events
Fix popout menu pointer events
2023-11-15 09:25:48 -08:00
Prospector
3f9805ac56 Fix bump version 2023-11-15 09:23:31 -08:00
Prospector
2131fed0bb Update promo styling 2023-11-15 09:22:02 -08:00
Prospector
baa5d2fcac Bump version 2023-11-15 08:18:34 -08:00
Prospector
7cf9b76eb5 Fix popout menu pointer events 2023-11-15 08:17:27 -08:00
Mysterious_Dev
200648275e Convert EnvironmentIndicator component to Composition API (#125) 2023-11-14 17:35:41 -05:00
Wyatt Verchere
f4880d0519 more games information, games route (#756)
* more games information, games route

* adds banner url
2023-11-14 11:01:31 -07:00
Wyatt Verchere
375f992a0c Adds ordering on loader fields enum (#755)
* now sorts on ordering, fmt clippy prepare

* fixed tests

* removed accidenetal printlns
2023-11-13 19:19:06 -07:00
Emma Alexia
a7584d62c7 Update omorphia to 0.6.7 (#1446)
* Update omorphia to 0.6.7

* shouldn't've been changed
2023-11-13 18:30:06 -07:00
Geometrically
74e6caf633 Fix use of unscoped CSS (#140) 2023-11-13 20:16:39 -05:00
Geometrically
f1f531cbfa Fix links (#1445) 2023-11-13 16:16:43 -07:00
BD103
b5a275ad07 fix: remove sitemap property from robots.txt (#1441) 2023-11-13 13:56:55 -07:00
Sasha Sorokin
5051ad91ff Fix ambiguous default export (#113)
Currently Omorphia's index file has both the default and named exports.
While this is totally supported by native ESM, it's pretty hard for
transpilers to process and may lead to situations where named exports
cannot be imported directly, requiring destructuring on the default
import. For this and just consistency reasons, you'd usually avoid
mixing default and named exports.

This commit removes the default export, making it just an another named
export called `plugin`.

BREAKING CHANGE: plugin is now exported using `plugin` export, rather
than the default export.
2023-11-13 13:36:07 -07:00
Mysterious_Dev
06d6cb6d19 Convert CopyCode component to Composition API (#124)
* Convert CopyCode component to Composition API

* ^^/
2023-11-13 13:08:28 -07:00
Mysterious_Dev
92116273b0 Convert Checkbox component to Composition API (#126)
* Convert Checkbox component to Composition API

* Apply suggestions from brawaru

* Fix lint error

* Apply suggestions from brawaru
2023-11-13 13:06:42 -07:00
Mysterious_Dev
6169ff99a2 Convert Pagination component to Composition API (#127)
* Convert Pagination component to Composition API

* Apply suggestions by brawaru

* Fix lint error

* Apply suggestions from brawaru
2023-11-13 13:06:06 -07:00
Mysterious_Dev
67f77d027a Use Typescript for Card component (#128)
* Use Typescript for Card component

* Update Card.vue
2023-11-13 13:05:43 -07:00
Mysterious_Dev
39e1a803a1 Use TypeScript for Promotion component (#131)
* Use TypeScript for Promotion component

* Apply suggestion from brawaru
2023-11-13 13:05:01 -07:00
Mysterious_Dev
ba159e1a3e Add translation keys for Environment Indicator component (#136)
* Begin Work

* Finish work
2023-11-13 13:04:35 -07:00
Mysterious_Dev
a60b77121a Add translation keys for Badge Component & improve documentation (#137)
* Begin Work

* Ordering

* Add all keys to JSON file

* Add accepted, approved, archived & closed keys to vue component

* Add draft, failed, listed keys to vue component

* Format (fix lint) & improve documentation

* Finish the work
2023-11-13 13:04:14 -07:00
Erlend
810f0104be Fix small typo on Avatar doc (#138) 2023-11-13 13:03:42 -07:00
Geometrically
07489fb405 Revert #87 (#139) 2023-11-13 12:58:33 -07:00
Sasha Sorokin
82f0bdfc18 Add handling for locale files parsing errors (#1408) 2023-11-12 11:49:05 -05:00
Wyatt Verchere
ae1c5342f2 Search test + v3 (#731)
* search patch for accurate loader/gv filtering

* backup

* basic search test

* finished test

* incomplete commit; backing up

* Working multipat reroute backup

* working rough draft v3

* most tests passing

* works

* search v2 conversion

* added some tags.rs v2 conversions

* Worked through warnings, unwraps, prints

* refactors

* new search test

* version files changes fixes

* redesign to revs

* removed old caches

* removed games

* fmt clippy

* merge conflicts

* fmt, prepare

* moved v2 routes over to v3

* fixes; tests passing

* project type changes

* moved files over

* fmt, clippy, prepare, etc

* loaders to loader_fields, added tests

* fmt, clippy, prepare

* fixed sorting bug

* reversed back- wrong order for consistency

* fmt; clippy; prepare

---------

Co-authored-by: Jai A <jaiagr+gpg@pm.me>
2023-11-11 16:40:10 -08:00
Mysterious_Dev
66154b30c1 Add Prefers Reduced Motion support for most components (#133) 2023-11-11 17:22:01 -05:00
ToBinio
bf5d391d53 fix SearchFilter.vue (#123) 2023-11-11 15:12:24 -07:00
Sasha Sorokin
591ce0894e Add translations support (#116) 2023-11-11 17:03:58 -05:00
ToBinio
1c18563dfb update VitePress (#117) 2023-11-11 16:48:52 -05:00
ToBinio
b60e781767 convert slider to typescript (#108) 2023-11-11 16:39:25 -05:00
Sasha Sorokin
ca54544b82 Fix declaration types for icons (#114) 2023-11-11 16:32:56 -05:00
Sasha Sorokin
9c3ff71ce4 Make Omorphia an ESM-only module (#115) 2023-11-11 16:22:00 -05:00
Mysterious_Dev
fd82ec7659 Fix page for modal documentation (#132) 2023-11-11 16:09:19 -05:00
Carter
97ccb7df94 Knossos Oauth 2 Flow Changes (#752)
* adjust type and response format

* Replace Found with Ok for handled redirects

* scope parse fix

* change apps query from body to query

* adjust tests for new response type

* remove unused imports

* Clippy fixes
2023-11-11 10:42:01 -07:00
Geometrically
a818199b5a fix download counts for ipv4 ips (#750) 2023-11-08 20:55:08 -07:00
Geometrically
6fe1fa3455 Fix crash when MC updates (#14)
* Fix crash when MC updates

* Fix fabric ordering + add neoforge support

* run clippy

* run clippy
2023-11-08 17:57:37 -07:00
Geometrically
aab95444a8 Fix download counts (#746) (#747)
* Fix download counts (#746)

* Fix download counts

* remove unsafe send

* update indexing time

* run prep

* run prep again
2023-11-06 15:04:32 -07:00
Wyatt Verchere
40f28be3b4 rounds dates for revenue (#745)
* rounds dates for revenue

* analytics tests pass
2023-11-03 21:03:30 -07:00
Jackson Kruger
911d442340 Version ordering [MOD-551] (#740)
* Version ordering

* cargo sqlx prepare

* Use version ordering for maven

* Use version ordering when sorting versions in Rust (not just SQL)

* Thanks clippy
2023-11-01 09:36:39 -07:00
Jackson Kruger
d5594b03e3 Fix organizations route typo (#743) 2023-10-31 10:58:05 -05:00
Emma Alexia
23ccaacdee Fix outdated moderation warning (#1430) 2023-10-30 21:28:48 -04:00
Geometrically
89f1ddf4d7 Route to view user's orgs (#742) 2023-10-30 16:59:53 -07:00
Carter
39a4297168 Requested Changes for Editor Knossos Implementation (#129)
* placeholder

* max length & placeholder

* Accept editor comment conflict

* integrate requested features

* null check for ref

* Change prompt for image upload

* change filter for proper input blocking

* Add spoiler button

* change url of helper link

* shallow resource link style

* resource link inherit site style

* detach preview styling from markdown-body style

* remove sizing dependance on global styles

* Bump 0.6.5
2023-10-30 16:59:43 -07:00
Jackson Kruger
6cfd4637db OAuth 2.0 Authorization Server [MOD-559] (#733)
* WIP end-of-day push

* Authorize endpoint, accept endpoints, DB stuff for oauth clients, their redirects, and client authorizations

* OAuth Client create route

* Get user clients

* Client delete

* Edit oauth client

* Include redirects in edit client route

* Database stuff for tokens

* Reorg oauth stuff out of auth/flows and into its own module

* Impl OAuth get access token endpoint

* Accept oauth access tokens as auth and update through AuthQueue

* User OAuth authorization management routes

* Forgot to actually add the routes lol

* Bit o cleanup

* Happy path test for OAuth and minor fixes for things it found

* Add dummy data oauth client (and detect/handle dummy data version changes)

* More tests

* Another test

* More tests and reject endpoint

* Test oauth client and authorization management routes

* cargo sqlx prepare

* dead code warning

* Auto clippy fixes

* Uri refactoring

* minor name improvement

* Don't compile-time check the test sqlx queries

* Trying to fix db concurrency problem to get tests to pass

* Try fix from test PR

* Fixes for updated sqlx

* Prevent restricted scopes from being requested or issued

* Get OAuth client(s)

* Remove joined oauth client info from authorization returns

* Add default conversion to OAuthError::error so we can use ?

* Rework routes

* Consolidate scopes into SESSION_ACCESS

* Cargo sqlx prepare

* Parse to OAuthClientId automatically through serde and actix

* Cargo clippy

* Remove validation requiring 1 redirect URI on oauth client creation

* Use serde(flatten) on OAuthClientCreationResult
2023-10-30 09:14:38 -07:00
Carter
544111846c Tweaks for Knossos Integration (#122)
* placeholder

* max length & placeholder

* remove default placeholder

* remove scoped css

* allow for throwing in the upload process

* explicit import of info

* fix aggressive card input selection
2023-10-27 17:20:13 -07:00
Carter
79bdea0441 MOD-349 Contextual Uploads for MD Editor (#119)
* Migrate DropArea to composition

* remove hardcoded button styling

* let markdown editor call for image upload

* allow for local testing in the docs

* validate url on set

* add chips to modal with correct defaults

* update docs to show example url doesn't load

* Bump version 0.6.4
2023-10-26 14:34:15 -07:00
Adrian O.V
c056c4e79e Improved graphs (#120)
* Complete chart overhaul

* Update package.json

* Update pnpm-lock.yaml

* run lint

* whoops

* Update pnpm-lock.yaml

* Update analytics.md

* Try again?

* Update Chart.vue

* Added Compact/Spark charts

* Added number formatting and cleanup

* Touch ups

* improve default colors

* removed unnecessary tooltip
2023-10-26 11:39:26 -07:00
Mysterious_Dev
19828e9070 Update to omorphia 0.6.2 (#1418) 2023-10-25 13:44:29 -07:00
Jakob
8231c736ca Fixed aria-label (#1403) 2023-10-25 13:42:33 -07:00
Basil
85f639b1f0 Fixed report icons on version page when logged out (#1416) (#1417) 2023-10-25 13:41:29 -07:00
Mysterious_Dev
c471b6d66c Update to @vintl/how-ago 3.0.1 (#1413)
* Update to @vintl/how-ago 3.0.1

* Fix mistake
2023-10-25 13:40:58 -07:00
Prospector
a363efccfb new patreon logo (#1396) 2023-10-24 12:46:56 -07:00
Mysterious_Dev
871a17a108 Convert error page to Composition API and fix condition for 404 Logo (#1405)
* Convert error to Composition API

* Fixed 404 logo not being displayed every time
2023-10-24 12:46:09 -07:00
Carter
16a39b364c Change editor to comply with domain rules MOD-537 (#118)
* insert link rules

* change error message
2023-10-23 17:02:08 -07:00
Jackson Kruger
8803e11945 Upgrade to sqlx 0.7.2 (#736)
* Update to sqlx 0.7.2

* Somehow missed one (and remove queries from other branch)
2023-10-23 14:30:39 -05:00
Geometrically
b1ca2cc2b6 Fix quilt + fabric intermediary syncing issues (#13)
* Fix quilt + fabric intermediary syncing issues

* fix comp

* Fix random versions not working/updating meta
2023-10-21 13:09:21 -07:00
Emma Alexia
91f79d2be0 Bump version v0.6.2 (#112) 2023-10-20 23:58:59 -04:00
Sasha Sorokin
9932fe5055 Fix relativeTime dayjs plugin import (#111) 2023-10-20 23:34:02 -04:00
Prospector
c296597427 Markdown editor (#92)
* Markdown editor

* use nocookie YT iframes

Co-authored-by: Emma Alexia Triphora <emma@modrinth.com>

* Fix line prefix-related Markdown editor bugs and add auto-lists

* Fix a couple codeblock issues

* address SearchFilter composition

* standardize code and patternize editor

* make editor typesafe

* adjust imports

* simplify key press handler

* Codemirror markdown implementation (#106)

* demo

* custom newline logic

* basic editor styling and buttons

* propogate styles

* validate and command structure for modals

* mobile safari event fix

* remove url field causing remount

* browser & mobile fix for link insertion

* override event passthrough to fix mobile

* fix modal state & disallow invalid url submission

* override paste behavior

* remove block flag in favor of newline insert

* cleanup before pr

* emit value from editor

* remove "a"

---------

Co-authored-by: Emma Alexia Triphora <emma@modrinth.com>
Co-authored-by: Carter <safe@fea.st>
2023-10-20 16:55:38 -07:00
Prospector
97cb5bc12c Merge pull request #110 from modrinth/fix/dropdown-icon-animation
Only animate the dropdown svg if last child
2023-10-20 09:11:59 -07:00
Prospector
7c596d6bf1 bump version 2023-10-20 08:47:25 -07:00
Prospector
b68799e2d1 Only animate the dropdown svg if last child 2023-10-20 08:20:33 -07:00
Geometrically
9a8f3d7bad Fix analytics routes + add revenue route (#734) 2023-10-19 09:42:49 -07:00
Prospector
a3d4db9fc1 Fix popout menu tab indices and buttons within being clickable when closed (#107) 2023-10-17 14:37:37 -07:00
Wyatt Verchere
9d0e762f36 More tests (#729)
* permissions tests

* finished permissions; organization tests

* clippy, fmt

* post-merge fixes

* teams changes

* refactored to use new api

* fmt, clippy

* sqlx prepare

* revs

* revs

* re-tested

* re-added name

* reverted to matrix
2023-10-17 00:53:10 -07:00
Emma Alexia
8369330053 Move many things over from Knossos (and other rearrangements) (#102) 2023-10-16 21:18:23 -04:00
ToBinio
46a6fee81d fix Markdown table corners (#105) 2023-10-16 21:02:39 -04:00
ToBinio
b2c75130ce remove dropdown-button link (#104) 2023-10-16 20:49:53 -04:00
ToBinio
ef444f2a6f Fix slider snap points positioning (#103) 2023-10-16 20:49:20 -04:00
Carter
36f0871f69 Merge pull request #97 from brawaru/feat/typescript-hell-yeah
Enable TypeScript support
2023-10-16 14:53:40 -07:00
Carter
5adf27d345 Merge branch 'master' into feat/typescript-hell-yeah 2023-10-16 14:51:19 -07:00
Prospector
5e4c261332 Merge pull request #101 from modrinth/feature/joined-buttons
Joined buttons
2023-10-16 07:49:25 -07:00
Prospector
6fb04e23ad Remove dropdown button 2023-10-16 07:44:11 -07:00
Prospector
2c850a612d Version bump 2023-10-14 14:45:12 -07:00
Prospector
e555c4d083 Joined buttons 2023-10-14 14:44:27 -07:00
Sasha Sorokin
cb32cca6aa Enable TypeScript support
This commit enables TypeScript support in Omorphia. It reconfigures
Vite, adds two new TSConfig files as a replacement for the old JSConfig,
adds TypeScript linting to ESLint configuration.

Why?
====

TypeScript has became a standard in modern web development. In makes
JavaScript a more type-safe language, makes code more maintaible and
boosts effeciency by empowering development tools.

What's included in this commit?
===============================

TypeScript config files
-----------------------

Old and plain JSConfig has been replaced with two TSConfigs: one
designed for the code, and the other for the Vite configuration file.

JavaScript support is still enabled, therefore TypeScript files can
import JavaScript files as well, and vice versa. However, it is
recommended that all the new files will be written in TypeScript, and
old files are slowly converted over to TypeScript, so this option can be
disabled in the future, making this a safe TypeScript only project.

UMD output is replaced with CJS
-------------------------------

UMD is an old format that tries to stay compatible with both the Node.js
CJS, as well as Require.js. However, nowadays almost everyone is using a
transpiler where this format won't be beneficial.

To avoid it being a breaking change, it has been replaced with CJS. But
in the future it's worth considering removing CJS output as well and
making Omorphia an ESM module only, as it's designed only to be
consumed by the Modrinth project, and all of these projects are already
ESM-first.

Minification is disabled
------------------------

Because this is a library, the responsibility of minifying its code lies
solely on the consumer. Just like with CJS, all of the supported
consumers of this library are already performing minification, so
minifying this library beforehand is rather wasteful and harmful, as it
negatively impacts debugging experience.

More dependencies are now externalised
--------------------------------------

Disabling UMD output allows more easily externalise dependencies based
on the package.json file, making it way more approachable.

Vue is now a peer dependency
----------------------------

Because this is a component library, Vue is not a direct dependency of
this project. Instead, this library relies on consumer having a Vue as
its dependency.

`lib` is no longer included in package
--------------------------------------

`lib` folder contains sources for the imports, but it's outside of
export map and cannot be imported by the consumers. It is now excluded
from the package to reduce the package size and installation time.

Typings
-------

Consumers of this library should also be able to benefit from the type
safety. To achieve this, there's now a Vite plugin that generates type
declarations that represent the project structure.

To lesser the incompatibility with the consumers, some of the files were
changed to import `index.js` from folders rather than folders
themselves.

While both will work for building, not doing this requires consumer to
opt in to bundler module dependency, whereas if `index.js` is imported,
the consumer can use both the normal ESM / Node16 module resolution, as
well as the bundler module resolution.

ESLint configuration changes
----------------------------

ESLint has been reconfigured to support TypeScript, and include rules
recommended by the TypeScript ESLint package. In the future it would be
good to review the rules and override rules for TypeScript files to
disable rules that would conflict with ones from TypeScript ESLint.

Entry file is now a TypeScript file
-----------------------------------

To test the changes and begin the slow conversion, the entry point file
is now a proper TypeScript file.

SVG imports use `?component` parameter
--------------------------------------

All components are now imported with `?component` URL parameter so that
they have a proper file. By default, Vite imports all files like .svg
as strings containing path to the file.

Unfortunately, `vite-svg-loader` overrides this behaviour without
overriding the Vite import type declaration, leading to incorrect types.
However, it does expose a new parameter `?component`, which is properly
typed and does the same thing you'd expect - export a Vue component, so
most of the SVG imports have been converted to use this parameter.
2023-10-14 15:43:57 +02:00
Jackson Kruger
abf4cd71ba Add redis caching to getting user notifications and projects [MOD-540] (#723)
* Add redis caching to getting a user's project ids

* Run `cargo sqlx prepare` to update the sqlx-data.json

* Add redis caching for getting user notifications

* Fix new clippy warnings

* Remove log that shouldn't have been committed

* Batch insert of notifications (untested)

* sqlx prepare...

* Fix merge conflict things and use new redis struct

* Fix bug with calling delete_many without any elements (caught by tests)

* cargo sqlx prepare

* Add tests around cache invalidation (and fix bug they caught!)

* Some test reorg based on code review suggestions
2023-10-12 15:52:24 -07:00
Geometrically
d66270eef0 Remove scheduling webhook check (#728) 2023-10-12 11:21:26 -07:00
Prospector
ffb491a61f Merge pull request #98 from modrinth/feature/popout-menus
Small button refactor, overflow and popout menus
2023-10-12 08:42:44 -07:00
Prospector
4ecba93a25 Fix lint 2023-10-12 08:40:05 -07:00
Prospector
52ec1d09b8 Merge pull request #99 from modrinth/bump-master
Bump version to 0.4.41
2023-10-12 08:35:59 -07:00
Prospector
3d2e2e2278 Bump version to 0.5.0 2023-10-12 08:34:02 -07:00
Prospector
f9a9ece320 More button options and dividers in overflow menus 2023-10-12 08:33:50 -07:00
Prospector
ffc46d6a48 Fix button docs 2023-10-12 08:33:50 -07:00
Prospector
ce458642af indent on popout menu docs 2023-10-12 08:33:50 -07:00
Prospector
820d3ef426 Add example docs for overflow menu 2023-10-12 08:33:50 -07:00
Prospector
145386b6a7 Change page title of overflow menu 2023-10-12 08:33:50 -07:00
Prospector
a708cf7f69 Small button refactor, overflow and popout menus 2023-10-12 08:33:50 -07:00
Prospector
c70ebb6cce Bump version 2023-10-12 08:32:50 -07:00
Geometrically
07ecd13554 Switch to Trolley for Modrinth Payments (#727)
* most of trolley

* Switch to trolley for payments

* run prepare

* fix clippy

* fix more

* Fix most tests + bitflags

* Update src/auth/flows.rs

Co-authored-by: Jackson Kruger <jak.kruger@gmail.com>

* Finish trolley

* run prep for merge

* Update src/queue/payouts.rs

Co-authored-by: Jackson Kruger <jak.kruger@gmail.com>

---------

Co-authored-by: Jackson Kruger <jak.kruger@gmail.com>
2023-10-11 15:55:01 -07:00
Prospector
a260b6eac4 Merge pull request #96 from ToBinio/snapping-slider
add snappingPoints to slider
2023-10-11 14:04:22 -07:00
Prospector
0ab17e1ec8 Merge pull request #87 from Banzobotic/fix-clickable-edges
Fix clicking edges of clickable elements
2023-10-11 14:04:10 -07:00
Prospector
d1a0cd1173 Merge pull request #94 from ToBinio/better-dropdown-transition
improve dropdown transitions
2023-10-11 14:03:59 -07:00
BasiqueEvangelist
f1ff88f452 fix maven filters for versions with dashes (#725)
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2023-10-11 14:01:32 -07:00
Jackson Kruger
d92272ffa0 Batch inserts [MOD-555] (#726)
* Batch a bunch of inserts, but still more to do

* Insert many for clickhouse (+ tests)

* Batch the remaining ones except those requiring deduplication

* Risky dedups

* Bit o cleanup and formatting

* cargo sqlx prepare

* Add test around batch editing project categories

* Add struct to satisfy clippy

* Fix silly mistake that was caught by the tests!

* Leave room for growth in dummy_data
2023-10-11 11:32:58 -07:00
tobinio
3955b973ef add snappingPoints to slider 2023-10-08 10:49:51 +02:00
Jackson Kruger
dfa43f3c5a Add /metrics endpoint for Prometheus (#724) 2023-10-06 15:58:02 -07:00
Wyatt Verchere
259c5ef3d0 Tests (#719)
* computer switch

* some fixes; github action

* added pr to master

* sqlx database setup

* switched intial GHA test db

* removed sqlx database setup

* unfinished patch route

* bug fixes + tests

* more tests, more fixes, cargo fmt

* merge fixes

* more tests, full reorganization

* fmt, clippy

* sqlx-data

* revs

* removed comments

* delete revs
2023-10-06 09:57:33 -07:00
Wyatt Verchere
a1b59d4545 Organizations (#712)
* untested, unformatted, un-refactored

* minor simplification

* simplification fix

* refactoring, changes

* some fixes

* fixes, refactoring

* missed cache

* revs

* revs - more!

* removed donation links; added all org members to route

* renamed slug to title

---------

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2023-10-02 10:56:57 -07:00
Mysterious_Dev
fcfa508cbc Fix convertion to Composition API for Avatar component (#1391)
* Fix Convertion for Avatar component

* Use ref for img
2023-10-02 07:08:56 -04:00
Emma Alexia Triphora
58a61051b9 Don't show processing projects in thread message inbox (#722)
They already show up in the Review tab, so, no reason to also have them in the Messages tab
2023-10-01 13:22:29 -07:00
Emma Alexia Triphora
a6766ef1c0 Fix theme color not showing up properly in OpenGraph/Discord embeds (#1384) 2023-10-01 13:22:05 -07:00
chaos
606b5ac5ab Disable save & remove password button when no input password. (#1387) 2023-10-01 16:21:44 -04:00
chaos
9acc463c7f Fix dependencies list not updating on dependency remove. (#1388) 2023-10-01 16:19:23 -04:00
chaos
c4ddd08b0a Fix license element deleting itself when pressing backspace. (#1389) 2023-10-01 15:57:37 -04:00
Sasha Sorokin
5c7dd10769 Preserve whitespace in extracted translatable strings (#1390) 2023-10-01 15:45:21 -04:00
Mysterious_Dev
3fa86cb441 Convert Avatar & Badge components to Composition API (#1386) 2023-10-01 11:47:47 -04:00
Emma Alexia Triphora
4a74ee0d72 Update legal pages, especially rules (#1373)
* WIP rules update

* Update

* Run fix

* Entirely unnecessary

* Address comments
2023-09-30 15:45:53 -07:00
Mysterious_Dev
8a8759b0d4 Add sessions translation to settings navstack (#1383) 2023-09-30 14:47:34 -04:00
Sasha Sorokin
f259072136 Post translation Sessions settings page fixes (#1382) 2023-09-30 14:47:26 -04:00
Sasha Sorokin
3fd74292ef Remove unnecessary space in description on Sessions settings page (#1381) 2023-09-28 23:53:44 -04:00
Mysterious_Dev
f37c4293df Token Modal confirm for removal (#1375) 2023-09-28 22:44:36 -04:00
Mysterious_Dev
b9248553be Add translation keys for Sessions page (#1377)
Co-authored-by: Sasha Sorokin <10401817+brawaru@users.noreply.github.com>
2023-09-28 22:43:53 -04:00
Geometrically
475d434e98 Hide app promotion (#1376) 2023-09-25 20:28:48 -07:00
Mysterious_Dev
05d568d1c1 Fix "Incorrect wording for expired pats" (#1378) 2023-09-24 15:35:34 -04:00
Emma Alexia Triphora
51777c3f33 Replace moderation project queue with moderation action log (#718) 2023-09-24 12:04:58 -04:00
Emma Alexia Triphora
3767e9fae9 Only show mod files in pack external dependencies (#710) 2023-09-24 11:49:41 -04:00
Emma Alexia Triphora
4bbfc8ccc5 Add NeoForge modpack and autoupdater support (#707) 2023-09-24 11:40:03 -04:00
Wyatt Verchere
531b8214c0 Analytics query (#716) 2023-09-24 11:22:35 -04:00
Emma Alexia Triphora
28b63bac38 Update XSS values to be consistent with knossos (#93)
Implements modrinth/knossos#1208
Implements modrinth/knossos#1239

Also closes modrinth/knossos#1371
2023-09-24 08:07:22 -05:00
Emma Alexia Triphora
5cab618bf7 Fix reports sometimes being broken on the mod dashboard (#717) 2023-09-24 08:04:18 -05:00
Emma Alexia Triphora
fc64719bb8 SEO cleanup (#1367)
* SEO/Metadata cleanup

May split rules changes into its own PR

* Revert rules/terms changes as they are now on a separate branch

* Update [searchProjectType].vue

* Update terms.vue
2023-09-22 11:45:03 -05:00
Wyatt Verchere
3380f4d11c downloads route (#713) 2023-09-20 08:11:09 -07:00
Wyatt Verchere
4bf030993a Collections users route (#711)
* users route

* Added user route

* collections
2023-09-18 11:43:58 -07:00
tobinio
323a74eef3 improve dropdown transitions 2023-09-18 16:34:41 +02:00
Sasha Sorokin
bd4da4f365 Improve i18n-related SEO (#1366) 2023-09-16 21:07:52 -04:00
Emma Alexia Triphora
f65f949a36 Fix issue with thread messages not being sent to moderators on non-processing projects (#705) 2023-09-15 15:39:03 -04:00
Julian Vennen
2864abd8c2 Add created and modified timestamp to search facets (#708) 2023-09-15 15:29:16 -04:00
Wyatt Verchere
9bd2cb3c7e Collections (#688)
* initial draft; unfinished

* images, fixes

* fixes

* println

* revisions

* fixes

* alternate context setup version

* rev

* partial revs

* rev

* clippy ,fmt

* fmt/clippy/prepare

* fixes

* revs
2023-09-13 22:22:32 -07:00
Wyatt Verchere
35cd277fcf analytics (#695)
* playtime

* other routes, improvements

* fmt clippy

* revs

---------

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2023-09-13 16:35:47 -07:00
Adrian O.V
ae7f7e9bd6 Search dropdown (#91)
* Bar charts

* Update package.json

* Search Dropdown

* Add circle icon option
2023-09-13 16:21:13 -04:00
Geometrically
57b1932b5e Fix minecraft meta links (#12)
* Fix minecraft meta links

* remove debug

* bump v

* no mut
2023-09-12 14:19:24 -04:00
Emma Alexia Triphora
e6818023a3 Allow moderators to edit version info (#703)
* Allow moderators to edit version info

* Clippy fix
2023-09-11 14:21:50 -04:00
BasiqueEvangelist
35a541f99b Maven version filters for duplicate version numbers (#625) 2023-09-10 12:59:10 -04:00
Konicai
5fb00a947c Allow BungeeCord plugins that use bungee.yml (#698)
Co-authored-by: Emma Alexia Triphora <emma@modrinth.com>
2023-09-10 12:49:35 -04:00
Modrinth Bot
6288f679b9 [no ci] synced file(s) with modrinth/.github (#706) 2023-09-10 12:45:44 -04:00
Mysterious_Dev
b88e63d133 Make .well-known/change-password redirect appropriately (#1360) 2023-09-10 12:25:33 -04:00
Mysterious_Dev
a85255df5a Fix: Mistake for profile translations (#1362) 2023-09-10 12:23:42 -04:00
Mysterious_Dev
15c02e9e91 Update Discord invite link to use official (#1363) 2023-09-10 12:21:00 -04:00
Emma Alexia Triphora
ec35392cd1 Merge pull request #90 from modrinth/sync-issue-templates/default 2023-09-10 12:16:28 -04:00
modrinth-bot
b14b977bca [no ci] synced local '.github/ISSUE_TEMPLATE/' with remote 'issue_templates/' 2023-09-10 16:13:50 +00:00
Emma Alexia Triphora
54f55d44dc Fix dependency capitalization (#1351) 2023-09-02 16:45:13 -04:00
Emma Alexia Triphora
568dc1625e Skip CI in all Crowdin commits (#1338) 2023-09-02 09:42:00 -04:00
Mysterious_Dev
259b239e16 Fix: Incorrect notification history link on dashboard (#1350) 2023-09-02 09:41:32 -04:00
MMK21Hub
3033387ffc Add autocomplete attributes to auth-related inputs (#1349) 2023-09-02 09:40:02 -04:00
Mysterious_Dev
d500c29493 Fix: Notifications are always unread on small windows (#1347) 2023-09-02 09:39:26 -04:00
Sasha Sorokin
799d8003eb Skip regenerate workflow on forks (#1344) 2023-09-02 09:38:27 -04:00
Sasha Sorokin
5d34af6ac5 Make language label not translatable (#1343) 2023-09-02 09:38:10 -04:00
Mysterious_Dev
dca5b9f197 Support enter key for 2FA input field (#1341) 2023-09-02 09:37:42 -04:00
Mysterious_Dev
75e075ef8e Add translations for profile page (#1340)
Co-authored-by: Sasha Sorokin <10401817+brawaru@users.noreply.github.com>
2023-09-02 09:37:04 -04:00
Kxffie
9895976128 Add query to embed of search pages (#1284) 2023-09-02 09:33:52 -04:00
Calum
133367ddb5 Add "float: right|left" support for css. (#1208)
Co-authored-by: Sasha Sorokin <10401817+brawaru@users.noreply.github.com>
2023-09-02 09:31:59 -04:00
Emma Alexia Triphora
57964282ee Miscellaneous CSS cleanup (and make the report modal look better) (#1334) 2023-08-24 15:21:12 -04:00
Sasha Sorokin
51b07fc0c3 Add names of all languages on Crowdin (#1337) 2023-08-23 16:07:37 -04:00
Sasha Sorokin
d8f33641a5 Enable all locales on staging instances (#1336) 2023-08-23 15:18:58 -04:00
Emma Alexia Triphora
a7c7234589 Fix project deletion going to a non-existent page (#1332) 2023-08-23 12:13:25 -04:00
Geometrically
e766759b8c Fix scheduling bug (#693)
* Fix scheduling bug

* Fix comp err
2023-08-23 12:08:18 -04:00
Emma Alexia Triphora
f22f1971cb Don't abbreviate moderation statistics (#1333) 2023-08-23 12:02:45 -04:00
Emma Alexia Triphora
28a5806492 Remove defunct modpacks alpha notice setting (#1331) 2023-08-23 11:55:20 -04:00
Nitrrine
df98167706 Use Nuxt 3 documentation link instead of Nuxt 2 (#1327) 2023-08-23 10:40:45 -04:00
falseresync
06cc40055a Extract Message banner component (#1105) 2023-08-23 10:40:16 -04:00
Nitrrine
66b47c08e6 Improve download button in changelog (#1311) 2023-08-23 10:39:30 -04:00
Sasha Sorokin
40cb8db1fc Move language nav menu item and hide it on prod (#1329) 2023-08-23 10:26:02 -04:00
Geometrically
2454a03c2b Fix broken dashboard (#1328) 2023-08-22 11:59:45 -04:00
naqaden
0a59a06121 Replace project icon border (#1319)
Icons in project pages with featured images and in search results with gallery view have borders that resize their 96x96 icons to 88x92.

These box-shadow replacements preserve icon size while retaining visual equivalency (rounded 4px border around left, top, and right).
2023-08-21 18:47:34 -04:00
Adrian O.V
a7191e8efb Bar charts (#89)
* Bar charts

* Update package.json
2023-08-21 15:55:50 -04:00
Adrian O.V
e1f4d791ae Charts (#88)
* Charts

* Version bump

* Update pnpm-lock.yaml
2023-08-21 15:29:24 -04:00
Jai A
c1d28381e8 actually bump version 2023-08-21 14:36:43 -04:00
Geometrically
2fa8371bae Neoforge support (#11) 2023-08-21 14:34:22 -04:00
Wyatt Verchere
a1cfdf1a5b Socket cleanup (#682)
* testing changes

* added success

* removed success

* Fix compile error

---------

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
Co-authored-by: Jai A <jaiagr+gpg@pm.me>
2023-08-21 14:21:05 -04:00
Emma Alexia Triphora
806fcb6ed2 Project moderation tab improvements (#1323) 2023-08-21 13:29:09 -04:00
Sasha Sorokin
467b0fa988 Add the language setting page (#1210)
* Add initial language picker prototype

* Heap o' improvements and Pirate tongue

* Move .visually-hidden to shared utils and add copyright notice

* Add a little space before categories names

* Simplify search to input focus logic

* Remove larger font size and padding from the search field

* Some refactors

* Braw's descent into madness

Thanks web development!

In seriousness though, tried to make the list more accessible. Making it
fully accessible feels like unbearable task, so at least that.

* Litol refactoring

* Extract new strings and remove old ones

* Update @vintl/nuxt to 1.3.0

This fixes the bug where default locale won't be saved.

* A buncha refactorings and cleanup

* Scuttle the Pirate lingo

'Twas employed 'ere for testin' purposes, but fear not, for it shall be
returnin' in the days to come. Should ye require it fer testin', simply
roll back this here commit.

* Clean languages source file

* Change "US" to "United States"

I think it would make distinguishing two languages simpler as now
there's more than one letter of difference (US/UK vs United States/
United Kingdom).
2023-08-21 13:26:39 -04:00
Nitrrine
a420d5b203 Add SEO to Rewards Program Information page (#1320) 2023-08-21 13:20:18 -04:00
Emma Alexia Triphora
e9c7f5d664 Fix #683 (#691)
* Fix #683

* whitespace

---------

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2023-08-21 10:44:09 -04:00
Emma Alexia Triphora
c85f12fe2c Fix closing reports not marking the report as closed (#690)
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2023-08-21 10:43:06 -04:00
Geometrically
13e5644c89 Fix creator payouts + scheduler (#686) 2023-08-21 10:42:33 -04:00
Banzobotic
5be3aec7d4 whitespace fix 2023-08-20 23:33:48 +01:00
Banzobotic
5e25a4a00e Simplify code and avoid breaking change 2023-08-20 23:16:06 +01:00
Banzobotic
810cf9ab2c Use better exception for markdown
Now more readable, and doesn't affect other external links such as in sidebar-card
2023-08-20 21:44:36 +01:00
Sasha Sorokin
eac029aef4 Webhook emojis update (#685) 2023-08-20 16:33:36 -04:00
Banzobotic
2a11de7571 Fix clicking the edges of clickables 2023-08-20 21:28:53 +01:00
Prospector
12543be913 Fix placement of Modrinth App promo and add toggle for the primary nav promos (#1315) 2023-08-20 12:23:17 -07:00
Prospector
cfbf08dbf5 Fix auth layout on mobile (#1316) 2023-08-20 12:23:06 -07:00
Emma Alexia Triphora
3649573ba1 Fix "approve with reply" button being always pressable (#1322) 2023-08-20 13:30:55 -04:00
Kavi/o
0fdc02d5e9 Fixed Leave Project button (#1321) 2023-08-20 12:10:40 -04:00
falseresync
0ffe8ef102 Refine the auth design; clean up the layout and styles there (#1240)
* 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>
2023-08-18 12:00:44 -07:00
Adrian
ce995812d4 Added metadata inference support for Velocity Plugins (#1296) 2023-08-18 12:00:18 -07:00
Nitrrine
cd22e1779d Add more buttons for finding the Modrinth App (#1312)
* Get the App button

* Get the App button

* Get the app -> Get Modrinth App & Add this button to account dropdown

* Using normal styles instead of inline styles
2023-08-18 12:00:02 -07:00
chaos
fbb50d8fb6 Add some text for when you haven't filed any reports (#1304)
* Add a message for no viewable reports.

* implement proposal
2023-08-18 11:55:16 -07:00
Adrian O.V
27172c2a19 Promotion tweaks (#85)
* Modify promotion, Fix #80, Fix #79

* Update Avatar.vue

* Version bump
2023-08-10 11:49:00 -04:00
Geometrically
f453dff438 add checkbox for monetization program + explainer (#1293)
* Fix bugs with threads

* remove modpack warning

* add back msg

* update project reveue info

* Add faq

* add checkbox with rewards terms
2023-08-09 20:27:49 -07:00
Geometrically
a437a40eee Fix bugs with threads (#1288)
* Fix bugs with threads

* remove modpack warning

* add back msg

* update project reveue info

* Add faq
2023-08-09 18:02:12 -07:00
Adrian
70a173a16d Added metadata inference support for Paper Plugins (#1282) 2023-08-09 14:06:32 -07:00
Apricot
7724fc74e5 Fix spelling mistake (accross -> across) (#1290) 2023-08-09 14:02:06 -07:00
Geometrically
6023c08554 bump pkg version (#84) 2023-08-08 15:25:14 -07:00
Geometrically
2de56065af Fix resize text (#83)
* Fix resize text

* fix multiselect
2023-08-08 15:23:00 -07:00
Geometrically
a5195920fa update validators (#678) 2023-08-08 14:27:38 -07:00
Geometrically
5676a13290 Fix sponge validator (#679) 2023-08-08 13:20:15 -07:00
Geometrically
d11f0e864e gv loader cache bring back (#677)
* gv loader cache bring back

* run prep fmt
2023-08-08 10:14:49 -07:00
Geometrically
df83fcc5b9 Optimizations (#676) 2023-08-07 23:05:08 -07:00
Geometrically
f21c756793 Attempt to fix db timeouts (#674) 2023-08-07 12:37:29 -07:00
Adrian
4b07ee2fa8 Added Paper Plugins support (#673)
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2023-08-07 11:53:21 -07:00
Jamalam
ae3a39ee65 remove 'source file' validation (#671) 2023-08-07 11:41:49 -07:00
Geometrically
e9f5bd4ac1 Fix redis pool timeout (#669)
* Fix redis pool timeout

* remove search dep project issues

* run fmt + prep
2023-08-06 15:34:03 -07:00
Geometrically
f5cf1ca08c Update legal docs (#1260)
* Update legal docs

* add app

* fix homepage
2023-08-05 17:27:35 -07:00
Geometrically
1f4ad732fd fix analytics route not working (#668) 2023-08-05 12:07:38 -07:00
Adrian O.V
37a1e67579 App landing fixes (#1257)
* Addressed all changes and bug fixes

* Run lint

* Delete linux.svg

* buttons are no longer tabbable

* Fix os issue

* Run lint

* Fix grid issues

* Update meta

* Run lint
2023-08-05 10:09:44 -07:00
Geometrically
a372cbbf52 Switch to new ad (#82) 2023-08-05 09:50:16 -07:00
Geometrically
5637d37ee1 fix updates route (#667) 2023-08-04 22:52:17 -07:00
Geometrically
c370da2fef Fix version deps (#666) 2023-08-04 22:15:19 -07:00
Geometrically
d168209721 put assets in docker (#665) 2023-08-04 20:20:05 -07:00
Geometrically
ca0468b8d5 Auth fixes (#664)
* Auth fixes

* destroy flows after use

* fix comp err

* add bearer err msg
2023-08-04 16:22:15 -07:00
Adrian O.V
a67cf44453 Launcher page (#1249)
* Initial commit

* Update launcher.vue

* Finalize landing page!!!!!!!

* Run linter

* Address some changes

* Address changes

* Lint

* addressed more changes

* Add os logos

* Use install urls for linux

* Update app.vue

* intuitive buttons
2023-08-04 18:22:23 -04:00
Geometrically
039d26feeb Add launcher analytics (#661)
* Add more analytics

* finish hydra move

* Finish websocket flow

* add minecraft account flow

* Finish playtime vals + payout automation
2023-08-02 14:43:04 -07:00
Emma
a4bead1bde Fix report buttons not working for signed-out users (#1255) 2023-08-02 14:03:31 -07:00
Emma
0d15024bd2 Add links to the markdown reference on the docs (#1254) 2023-08-02 14:02:51 -07:00
Emma
6509d726b3 Remove useless moderation stuff (#1253)
Moderation messages are superseded by threads, so there is no need to have the ModalModeration anymore, it would only confuse new moderators
2023-08-02 14:02:29 -07:00
Brady
a132f0f41d Change version infering to use full semver range spec (#1248)
* Add support for all semver and forge maven range.

* Fix that old forge was checking version as an object

* Fix new version range checking not being applied to quilt.mod.jsons

* run fix
2023-08-02 14:02:03 -07:00
Sasha Sorokin
7c2ea3dcfd Don't run Deploy workflow on forks (#1252) 2023-08-01 19:38:47 -04:00
Emma
706c6d46da Fix bug with wsrv (#1239)
* Fix bug with wsrv

* Address comment
2023-08-01 15:35:06 -07:00
Geometrically
04915cc65a fix issues with auth (#1247) 2023-08-01 15:34:29 -07:00
Zefir
e2fb8827a7 Use en dash for versions range instead of em dash (#1246) 2023-07-30 16:19:42 -04:00
Geometrically
10e7b66f38 Fix loader ordering (#10) 2023-07-28 16:22:38 -07:00
Wyatt Verchere
05fda903c6 added options to promotion (#81)
* added options to promotion

* prettier

* incremented package.json
2023-07-28 12:52:14 -07:00
Prospector
91e1eff763 Add formatted name for NeoForge (#1241) 2023-07-22 14:45:56 -07:00
Prospector
2c4ffcfa7c Initial frontend NeoForge support (#1233)
* Revert "fix: featured version ui shifts (#1191)"

This reverts commit 3036f43b75.

* Revert "Fix CTRL clicking on versions issue (#1189)"

This reverts commit f4560bd7d8.

* Add basic neoforge frontend support
2023-07-22 14:37:08 -07:00
Prospector
34d63f3557 Update master with new auth (#1236)
* 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>
2023-07-20 11:19:42 -07:00
Geometrically
4bb47d7e01 Finish authentication (#659) 2023-07-18 15:02:54 -07:00
Prospector
a5613ebb10 Threads and more! (#1232)
* 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

---------

Co-authored-by: triphora <emma@modrinth.com>
Co-authored-by: Jai A <jaiagr+gpg@pm.me>
2023-07-15 20:39:33 -07:00
Geometrically
ec80c2b9db Next auth fixes (#658) 2023-07-14 22:55:00 -07:00
Geometrically
a89418e33b First auth fixes (#656) 2023-07-13 19:50:42 -07:00
Geometrically
0d88ff8dae Verify Email + Reset Password flows (#654)
* verifiers

* add missing emails

* fix gh perms
2023-07-12 20:40:24 -07:00
Geometrically
4bdf9bff3a 2FA + Add/Remove Auth Providers (#652)
* 2FA + Add/Remove Auth Providers

* fix fmt issue
2023-07-11 19:13:07 -07:00
Geometrically
7fbb8838e7 Scoped PATs (#651)
* Scoped PATs

* fix threads issues

* fix migration
2023-07-10 16:44:40 -07:00
Modrinth Bot
1a2b45eebd [no ci] synced local '.github/ISSUE_TEMPLATE/' with remote 'issue_templates/' (#1219)
Co-authored-by: modrinth-bot <null>
2023-07-10 11:18:20 -07:00
Geometrically
366ea63209 Fix session del (#650) 2023-07-08 22:07:11 -07:00
Geometrically
6c0ad7fe1a Sessions Route + Password Auth (#649)
* Sessions Route + Password Auth

* run prep + fix clippy

* changing passwords + logging in

* register login
2023-07-08 14:29:17 -07:00
Modrinth Bot
ef9c90a43a [no ci] synced local '.github/ISSUE_TEMPLATE/' with remote 'issue_templates/' (#645)
Co-authored-by: modrinth-bot <null>
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2023-07-08 14:11:30 -07:00
Geometrically
239214ef92 Initial Auth Impl + More Caching (#647)
* Port redis to staging

* redis cache on staging

* add back legacy auth callback

* Begin work on new auth flows

* Finish all auth flows

* Finish base session authentication

* run prep + fix clippy

* make compilation work
2023-07-07 12:20:16 -07:00
Geometrically
65791a58e9 Fix CF Pages on linkify (#1231) 2023-07-04 12:15:14 -07:00
Geometrically
6e0f22323b Fix pages env vars (#1230)
* Fix pages env vars

* bring back vercel json
2023-07-03 18:08:05 -07:00
Geometrically
4c8c35a25a move to cloudflare workers (#1229)
* move to cloudflare workers

* remove junk
2023-07-03 17:23:19 -07:00
Adrian O.V
a149f06f58 Dropdown Input + move to chevron (#78) 2023-06-30 08:09:57 -07:00
Adrian O.V
42f97f63d5 Share modal (#74)
* Creation of the share modal

* Update package.json

* Addressed comments

* Fixed dependency

* Update ShareModal.vue

* Fixed url

* Update ShareModal.vue

* Adressed changes
2023-06-28 08:44:47 -07:00
Modrinth Bot
227652de2e [no ci] created local '.github/ISSUE_TEMPLATE/' from remote 'issue_templates/' (#73)
Co-authored-by: modrinth-bot <null>
2023-06-28 08:43:42 -07:00
Brady
dd205e849c Copy Knossos parser changes to Omorphia (#76) 2023-06-28 08:43:25 -07:00
Emma
b0057b130e [no ci] Sync issue templates (#641) 2023-06-21 19:32:36 -04:00
Emma
05d994889d [no ci] Sync issue templates (#1216) 2023-06-21 19:32:21 -04:00
Prospector
4b381049c3 Fix/plugin datapack display (#1215)
* Fix plugin and data pack project type display

* plugin and data pack too
2023-06-21 06:59:07 -04:00
Geometrically
33f3479569 Fix tauri modal drag region (#72) 2023-06-20 17:14:48 -07:00
Prospector
6b940ed675 Revert #1189 and #1191 (#1214)
* Revert "fix: featured version ui shifts (#1191)"

This reverts commit 3036f43b75.

* Revert "Fix CTRL clicking on versions issue (#1189)"

This reverts commit f4560bd7d8.
2023-06-20 14:51:49 -07:00
MMK21Hub
247be0c11f Fix search filters being hidden (#1205)
* Fix search filters being hidden (#1165)

Previously, `max-width` was used to hide the sidebar on mobile, which
meant that at exactly 1024 pixels wide, the sidebar would be hidden.
However, this breakpoint is also as a
`min-width` other media queries, notably the ones used to enable viewing
filters on mobile sizes. This has caused issue #1024.

To fix this, I have swapped the logic of the rule that hides the filters
on mobile: it is now hidden by default and a `min-width` query is used
to show it on wider viewports. This is more consistent with similar media
queries in the same file.

Looking to the future, these issues should become less common if we
switch to range-based media queries:
https://caniuse.com/css-media-range-syntax

* Delete package-lock.json

---------

Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2023-06-20 14:37:39 -07:00
kevoh1516
14b0e8875d fix version filtering wrong page (#1206) 2023-06-20 14:33:34 -07:00
Younes
bd51741b01 fixed detail tab with summary and bold tags (#1198) 2023-06-20 14:32:42 -07:00
Prospector
afd60b8a16 Fix license selector (#1213) 2023-06-20 12:17:10 -07:00
Geometrically
6e0659af4c add draggable attr to modal background (#71) 2023-06-20 09:19:47 -07:00
Prospector
6de1fa0878 Large and outlined buttons (#69) 2023-06-20 09:05:26 -07:00
Geometrically
61e00f1620 Add unclosable modals (#70) 2023-06-19 22:15:45 -07:00
Wyatt Verchere
d64c043838 sends own addr to auth callback (#639)
* sends own addr to auth callback

* shouldn't have http on local

* actually, both should have

* changed for consistency
2023-06-15 16:12:02 -07:00
Sasha Sorokin
c8c75b38c3 Update @vintl/nuxt to 1.2.3 (#1201)
This should fix TypeScript error related to nuxt.config.ts file and
unknown `vintl` property in it.
2023-06-15 12:24:12 -07:00
Geometrically
2bdd0a0e8d Fix dropdown bug on webkit (#68) 2023-06-14 17:48:46 -07:00
Wyatt Verchere
dd3599f5b3 removed route (#637)
* removed route

* email change support
2023-06-13 14:43:20 -07:00
Geometrically
4131ad5016 Fix breadcrumb link style (#67) 2023-06-12 19:42:30 -07:00
Adrian O.V
4f74b3fafe Dropdowns buttons colorized (#66)
* Buttons  colorized 

* Update package.json
2023-06-12 15:02:16 -07:00
Younes
177a487ead fixed mobile navigation on iphones safari (#1193)
fixes #1164
2023-06-11 20:32:00 -04:00
Younes
99a4966786 fix logging out doesnt work (#1192)
Fixes #1108
2023-06-11 20:01:49 -04:00
Younes
db9279a6e5 fixed redirection back to followed projects (#1190)
Fixes #1158
2023-06-11 19:57:01 -04:00
Younes
3036f43b75 fix: featured version ui shifts (#1191) 2023-06-11 19:31:18 -04:00
Younes
f4560bd7d8 Fix CTRL clicking on versions issue (#1189)
Fixes #1184
2023-06-11 18:25:27 -04:00
Geometrically
0d56127758 Add new mojang args (#9) 2023-06-11 13:40:31 -07:00
Emma
97b9ec5cc7 Fix two bugs with Forge mod exporting (#1187) 2023-06-11 14:41:44 -04:00
Emma
cdab3d0eff Change uses of "Include snapshots" to "Include all versions" (#1178) 2023-06-11 14:41:32 -04:00
Sasha Sorokin
de991041c4 Add internationalization support (#738) 2023-06-11 14:08:16 -04:00
Nerjal Nosk
776c16cd49 Theme switch cooldown (#1188) 2023-06-11 13:47:08 -04:00
Sasha Sorokin
d9f8746438 Consistent extension usage in imports (#1171) 2023-06-11 13:37:40 -04:00
Sasha Sorokin
20d1c4d242 Switch to bundler TypeScript moduleResolution (#1170) 2023-06-11 13:33:38 -04:00
Adrian O.V
6edac37031 fix some styling (oops) (#64)
* fix some styling (oops)

* Update pnpm-lock.yaml
2023-06-10 09:21:29 -07:00
Adrian O.V
cea5a18a7a Slider and text input changes (#65) 2023-06-10 09:18:15 -07:00
Prospector
bf615303f1 Fix pagination (#1181) 2023-06-09 14:47:36 -07:00
Geometrically
ea043517c5 Fix version file visibility (#630)
* Fix version file visibility

* add missing

* update prepare
2023-06-08 20:25:03 -07:00
Wyatt Verchere
b84d9c5d55 github token support (#629)
* github token support

* sqlx-data

* renamed github, modrinth tokens

* removed prints
2023-06-08 16:35:12 -07:00
Geometrically
063585f563 Improve landing page performance (#1180)
* Improve landing page performance

* fix build
2023-06-08 15:42:18 -07:00
Geometrically
01304e807a Fix dropdown quirks (#63) 2023-06-06 16:07:58 -07:00
kevoh1516
d275b3fd08 do not allow empty option on dropdown when adding dependency (#1155) 2023-06-06 14:23:08 -07:00
triphora
66364354da Small landing page fixes (#993)
* Miscellaneous fixes/improvements to landing page

* The downsides of not being able to set up a local testing env, in a commit

* Update how stats are retrieved

* Fix prettier

* Make requested changes

* Restore nuxt.config.js

* Restore composables/tag.js

* Update index.vue
2023-06-06 14:22:36 -07:00
Brady
48203aedf9 Fix markdown styling (#1176) 2023-06-06 14:21:10 -07:00
Calum
a6ca893ec5 Add indicators for visibility on project settings page (#1092)
* Add indicators for visibility - replace confusingly worded description.

* Add better description alongside ticks

* CrossIcon -> CheckIcon

* Icon naming

* Update index.vue

Use x.svg as exit.svg might be removed in the future.

* Visibility -> Target Visibility

* Add suggestions.

* Target Visibility -> Visibility
2023-06-06 14:20:35 -07:00
triphora
d55f1163a2 Improve withheld message banner (#1167) 2023-06-06 14:15:30 -07:00
Brady
80530012b8 Fix hljs class parsing (#1174) 2023-06-06 14:13:23 -07:00
Adrian O.V
d98a6adfb3 Create button (#62) 2023-06-05 23:34:52 -04:00
Geometrically
6c628afe5d Auto doing fixes (#8) 2023-06-02 16:13:00 -07:00
Geometrically
abc99c7e69 Fix report + mod deletion (#626) 2023-06-01 08:53:16 -07:00
Wyatt Verchere
fe25cd3bec Minos push (#589) (#590)
* Minos push (#589)

* moving to other computer

* working redirection

* incomplete pat setup

* no more errors

* new migrations

* fixed bugs; added user check

* pats

* resized pats

* removed testing callback

* lowered kratos_id size

* metadata support

* google not working

* refactoring

* restructured github_id

* kratos-id optional, legacy accounts connect

* default picture

* merge mistake

* clippy

* sqlx-data.json

* env vars, clippy

* merge error

* scopes into an i64, name

* requested changes

* removed banning

* partial completion of github flow

* revision

---------

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2023-05-31 16:03:08 -07:00
Geometrically
ae3a35816e Fix publish act (#61)
* Fix publish act

* Fix again:
2023-05-28 16:59:52 -04:00
Geometrically
8ca4be5ac0 Fix publish act (#60) 2023-05-28 16:52:54 -04:00
Geometrically
1c814946d5 bump version (#59)
* Knossos Catch-up

* bump version

* fix build

* fix build again

* Fix lint

* downgrade pnpm

* fix modals

* fix btn style

* add missing styles

* bump again
2023-05-28 16:46:13 -04:00
Geometrically
1db59fc052 Knossos Catch-up (#58)
* Knossos Catch-up

* bump version

* fix build

* fix build again

* Fix lint

* downgrade pnpm

* fix modals

* fix btn style

* add missing styles
2023-05-28 16:36:49 -04:00
Geometrically
273a69258a Fix wrong func being parsed, md parser (#1169) 2023-05-28 16:00:25 -04:00
Sasha Sorokin
3b0dc2195d Switch to pnpm (#1168) 2023-05-28 14:21:14 -04:00
Geometrically
bbb2539ace Add missing input styles (#57) 2023-05-25 20:49:32 -04:00
Geometrically
03cfe9bf62 Fix none size (#56)
* Fix none size not working

* bump
2023-05-25 17:43:15 -04:00
Geometrically
e29a4d79ba Fix none size not working (#55) 2023-05-25 17:39:32 -04:00
Geometrically
4243bf9ba8 Remove uses of iconified-button (#54) 2023-05-25 16:25:36 -04:00
Prospector
2eb51edfb6 Merge pull request #623 from modrinth/reports-fixes
Reports fixes
2023-05-25 12:53:40 -07:00
Geometrically
715d564028 Merge branch 'master' into reports-fixes 2023-05-25 12:36:13 -07:00
Jai A
989b704efc Reports fixes 2023-05-25 15:27:15 -04:00
Geometrically
7ae9627a79 Fix multiselect + tooltip styles (#53) 2023-05-25 14:26:03 -04:00
Geometrically
097a1cc799 Notifications (#52)
* Notifications

* fix docs
2023-05-22 14:33:45 -07:00
triphora
0bfaeb8521 Update Discord webhook emojis (#592)
Fixes #569
2023-05-19 11:04:40 -07:00
Geometrically
625511d28b Disabling sliders (#51)
* Add disabled slider to omorphia

* lint
2023-05-18 19:57:35 -07:00
Geometrically
b6a58ee845 Mac disable outline (#50)
* Disable outline on macos

* bump
2023-05-18 16:43:14 -07:00
Geometrically
a349aed94c Fix reload (#1154) 2023-05-15 10:41:57 -07:00
Geometrically
3db00534c2 Fix launcher overrides (#7)
* Fix launcher overrides

* Remove none set

* Patch to work with legacy versions

* remove mc
2023-05-12 20:42:18 -07:00
Geometrically
82b96d1a14 Fix GIFs (#1130) 2023-05-08 19:01:06 -07:00
Geometrically
b85ddd1a53 Fix link style (#49) 2023-05-06 14:20:13 -07:00
Mikhail Oleynikov
732f88ff51 Renovate config files (#1117)
* Renovate the config files

* Return Vue and TS ESLint plugins

* Revert Prettier config
Add typing to ESLint config
Re-revert package.json

* Re-add ESLint plugin for Prettier
(it went missing during merge, oops)

* Try to fix CI by explicit dependency

* Try to fix CI by explicit dependency x2

* Try to fix CI magically
Additionally, remove unneeded jsconfig.json

* Brawaru found the reason

Co-authored-by: Sasha Sorokin <10401817+brawaru@users.noreply.github.com>

---------

Co-authored-by: Sasha Sorokin <10401817+brawaru@users.noreply.github.com>
2023-05-06 12:17:43 -07:00
Emma Triphora
c08139b812 Revert "fix(xss): allow any query parameters in youtube embed, ported from #1001 (#1064)"
This reverts commit f34845fd7d.
2023-05-06 14:56:59 -04:00
Emma Triphora
a6a6e73b04 Revert "Fix lint issues (#1126)"
This reverts commit 521e21072e.
2023-05-06 14:56:47 -04:00
Emma Triphora
9971201004 Revert "Fix the remove on the Discord theme because of the way the new remove… (#1127)"
This reverts commit e99b0f8052.
2023-05-06 14:56:14 -04:00
PandaNinjas
e99b0f8052 Fix the remove on the Discord theme because of the way the new remove… (#1127) 2023-05-06 12:46:54 -04:00
Calum
7a59b2b25d Ascending/Descending order by button for projects dashboard page. (#1100) 2023-05-06 11:12:35 -04:00
triphora
b713b324f9 Fix incorrect response to invalid input on bulk edit route (#579) 2023-05-06 10:45:29 -04:00
triphora
521e21072e Fix lint issues (#1126) 2023-05-06 10:44:51 -04:00
PandaNinjas
f34845fd7d fix(xss): allow any query parameters in youtube embed, ported from #1001 (#1064) 2023-05-06 10:37:15 -04:00
Matias Koivikko
29ccadbd43 Add cf.way2muchnoise.eu as allowed image domain (#1123) 2023-05-06 10:31:05 -04:00
Mikhail Oleynikov
ffb4b395d0 Fix mobile navbar spacing (#1116) 2023-05-06 10:30:51 -04:00
Magnus Jensen
19eba9526a add bstats.org as allowed domain name for markdown (#1122) 2023-05-06 10:25:14 -04:00
Colby Newman
09ed76904b Prevent images from being treated as text in markdown (#1119) 2023-05-06 10:25:04 -04:00
Colby Newman
22932241bd Support HTML image maps (#1118) 2023-05-06 10:24:53 -04:00
Nitro
afc95d99cb Fix changelog-bar overflowing (#1115) 2023-05-06 10:24:32 -04:00
Adrian O.V
5fde3c53b8 Switch to composition API, Add custom names (#47)
* Switch to composition API, Add custom names

* Update package.json

* Update DropdownSelect.vue
2023-05-03 17:50:39 -04:00
Zach Baird
1135852f25 Merge pull request #46 from modrinth/remove-projectcard-underline
Remove projectcard underline
2023-05-02 13:36:02 -04:00
Zachary Baird
e892f0cb45 Removes global underline a style. 2023-05-02 13:27:26 -04:00
Zachary Baird
de56374c4d Merge branch 'master' of https://github.com/modrinth/omorphia 2023-05-02 12:49:00 -04:00
Geometrically
6512dbae1c Merge pull request #6 from modrinth/quilt-m1-support
Support for ARM + Quilt
2023-04-26 12:05:46 -07:00
Jai A
3afda71349 fix some data 2023-04-26 10:41:43 -07:00
Jai A
568e5a9bb8 run fmt 2023-04-25 19:37:56 -07:00
Jai A
89e56ae279 Support for ARM + Quilt 2023-04-25 19:36:21 -07:00
Geometrically
339ac05443 Fix TM pending in project route (#584) 2023-04-22 17:44:51 -07:00
Geometrically
9d92b8cc6d fix btn transparent, add shadows (#45) 2023-04-22 12:18:09 -07:00
Geometrically
d9b3ba0ff2 Fix logged in user stall (#1114) 2023-04-22 09:59:46 -07:00
Geometrically
4be6b11c1e Fix data URL filtering (#1111)
* Fix data URL filtering

* upgrade nuxt
2023-04-21 18:39:11 -07:00
Adrian O.V
6794da0738 Dropdown improvements (#40)
* Disableability, Up or down rendering

* Switch to scale animation

* Update DropdownSelect.vue

* Fix animation

* bump

* adjustments

---------

Co-authored-by: Jai A <jaiagr+gpg@pm.me>
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2023-04-21 17:03:45 -07:00
Geometrically
5527170fab Fix URL bug + Redundant call (#1110)
* Fix URL bug + Redundant call

* Fix prettier
2023-04-21 14:48:23 -07:00
Geometrically
72cfa683cf Fix edit bug staging (#582)
* Fix edit bug staging

* Fix comp err

* Fix mod message bug

* Fix compile bug

* Run fmt

* Fix other bug
2023-04-21 13:55:50 -07:00
Geometrically
e732eed98a Fix tables (#44) 2023-04-21 12:58:30 -07:00
Zach Baird
5244642dee Adds a --color-super-raised-bg var. (#42)
* Adds card-divider and table styles.

* Adds parent table class. Adds button-span fix.

* Adds super-raised-bg vars.

* Changes super-raised var to use own value for light-mode.

* Removes erroneous var.
2023-04-21 11:41:06 -07:00
Geometrically
b329a44fef Fix input styling (#43) 2023-04-21 11:40:48 -07:00
Geometrically
3a6b9f04f9 Fix reports creation (#580) 2023-04-21 11:10:57 -07:00
Geometrically
59f24df294 Add dependencies to search (#578)
* Add dependencies to search

* add attrs for faceting

* run prepare

* Add user data route from token

* update to 24hrs

* Fix report bugs
2023-04-20 16:38:30 -07:00
Zachary Baird
c93632421d Merge branch 'master' of https://github.com/modrinth/omorphia 2023-04-19 23:55:59 -04:00
Justsnoopy30
97e0fd9f43 Always use https for wsrv.nl usage (#41) 2023-04-19 19:03:06 -07:00
Zach Baird
ea536c5537 Adds card-divider and table styles. (#39)
* Adds card-divider and table styles.

* Bumps package version.

* Adds parent table class. Adds button-span fix.
2023-04-19 12:07:53 -07:00
Zachary Baird
970c906c97 Adds parent table class. Adds button-span fix. 2023-04-19 15:01:51 -04:00
Zachary Baird
fe738da633 Adds card-divider and table styles. 2023-04-19 11:11:37 -04:00
Geometrically
5c559af936 Fix project scheduling (#576)
* Fix project scheduling

* fix comp

* Fix again

* Fix compile err

* Fix compile err

* Fix compile err

* fix random err
2023-04-18 17:12:44 -07:00
Geometrically
bb80505b76 Return pending TMs, fix notifs serde (#575)
* Return pending TMs, fix notifs serde

* fix compile
2023-04-18 14:16:41 -07:00
Calum
5e3da71ce4 Fix bulk link editing (Fixes #1087) (#1097) 2023-04-17 15:07:21 -07:00
Prospector
a0cccb299e Fix badge color being overridden by Categories (#1098) 2023-04-17 15:00:30 -07:00
Geometrically
a560f6e9f6 Monetization status, additional files fix, deps fix (#574) 2023-04-16 20:03:53 -07:00
Geometrically
95ae981698 Overhaul notifs + threads fixes (#573)
* Overhaul notifs + threads fixes

* fix lang
2023-04-15 19:48:21 -07:00
Geometrically
e56974f4b2 Navigation fixes (#1095)
* Navigation fixes

* remove console log

* Fix prettier

* Fix legal pages as well
2023-04-15 18:07:20 -07:00
Prospector
fd28da2a3b Add transfer history and unify back elements with breadcrumbs (#1088)
* Add transfer history and unify back elements with breadcrumbs

* Increase padding of breadcrumbs, include previous query params, more consistent link underlining

* Prettier

* Add project type text and link to project pages

* Remove console.log
2023-04-15 12:08:11 -07:00
Prospector
257b35e4ae Fix money rounding issue (#1094)
* Fix money rounding issue

* Re-add dollar signs

* Remove unncessary pre-rounding
2023-04-14 20:55:32 -07:00
Geometrically
4398563b85 Bump nuxt version (#1093)
* Bump nuxt version

* tests

* bump again

* fix modals
2023-04-13 15:27:41 -07:00
Geometrically
969eb67217 Add replies, private notes, get many threads (#572)
* Add replies, private notes, get many threads

* register multiple route

* filter out moderators in threads
2023-04-13 15:04:08 -07:00
Zach Baird
e23ace1bb0 Adds number input style and doc. Bumps package version. (#37) 2023-04-13 12:05:45 -07:00
Prospector
0dfebbad9d Merge pull request #571 from modrinth/threads-fixes
more threads fixes
2023-04-13 10:18:28 -07:00
Jai A
f87f4bd8cc more threads fixes 2023-04-13 09:54:03 -07:00
Geometrically
352caa85da Fix messages not showing (#570) 2023-04-12 21:18:03 -07:00
Geometrically
8f61e9876f Add report + moderation messaging (#567)
* Add report + moderation messaging

* Add system messages

* address review comments

* Remove ds store

* Update messaging

* run prep

---------

Co-authored-by: Geometrically <geometrically@Jais-MacBook-Pro.local>
2023-04-12 17:59:43 -07:00
Zach Baird
2ef333c66d Merge pull request #36 from modrinth/fixes-modal-xicon
Imports XIcon in Modal component.
2023-04-12 11:12:11 -04:00
Zachary Baird
c6ee44010c Fixes lint error in package.json. 2023-04-12 11:08:55 -04:00
Zachary Baird
71d770e679 Fixes lint error in DropdownSelect. 2023-04-12 10:55:19 -04:00
Zachary Baird
cf17b93201 Bumps package version. 2023-04-12 10:43:12 -04:00
Zachary Baird
08f284ce29 Fixes Lint error. 2023-04-12 10:19:46 -04:00
Zachary Baird
4336aeb0ad Imports XIcon in Modal. 2023-04-12 10:16:38 -04:00
Prospector
5fd3a45c64 Fix duplicate version featured links being wrong sometimes Fixes #842 (#1085) 2023-04-07 18:43:10 -07:00
Prospector
77f8bfcf25 Fix nested lists having bottom margins Fixes #1033 (#1081)
* Fix nested lists having bottom margins Fixes #1033

* prettier
2023-04-07 18:41:00 -07:00
Prospector
509a97e532 Fix project icon label in settings id linking to project name Fixes #1045 (#1080) 2023-04-07 18:40:29 -07:00
Prospector
604683efd5 Fix project type in Dashboard & settings URLs Closes #1066 (#1078) 2023-04-07 18:39:04 -07:00
Prospector
c731515b94 Make pixel art more reliably get pixelated rendering (#1077)
* Make pixel art more reliably get pixelated rendering Closes #289

* Run prettier
2023-04-07 18:38:21 -07:00
Prospector
8d85158f91 Fix disabled css selector Closes #1042 (#1076)
* Fix disabled css selector Closes #1042

* Run prettier
2023-04-07 18:37:18 -07:00
Adrian O.V
0736f372dc Update slider to composition API (#35)
* Update slider to composition API

* Version bump
2023-04-06 20:05:14 -04:00
Geometrically
fd19bb7cd5 Merge pull request #4 from modrinth/many-fixes-again
Fix forge syncing not working
2023-04-05 12:40:17 -07:00
Jai A
0c2e9137a2 Update id merging 2023-04-05 12:39:16 -07:00
Jai A
bf5a25a96f fmt + clippy 2023-04-05 12:02:47 -07:00
Jai A
aa84f21fde Fix forge syncing not working 2023-04-05 12:02:00 -07:00
Geometrically
b9de2b4b58 Merge pull request #3 from modrinth/many-fixes
Many fixes
2023-04-04 21:17:41 -07:00
Jai A
9754f2d1c5 Add limiter for forge downloading 2023-04-04 21:17:19 -07:00
Jai A
f66fc06b4f fix debug stuff 2023-04-04 20:26:10 -07:00
Jai A
79ceb56c60 Fix issues 2023-04-04 20:25:17 -07:00
Geometrically
a37210b22e Fix auth login (#1074) 2023-04-03 10:11:10 -07:00
Geometrically
ccf81ff7b9 Disable system theme detection (#1071) 2023-04-02 10:03:17 -07:00
Prospector
a4c1a65f10 Revert "Fix folia projects not showing as a plugin (#1069)" (#1070)
This reverts commit 02a82e1e59.
2023-04-01 23:59:04 -07:00
Adrian O.V
6bdea219bf Create component (#34) 2023-04-02 01:53:29 -04:00
Prospector
02a82e1e59 Fix folia projects not showing as a plugin (#1069) 2023-03-31 21:09:14 -04:00
Geometrically
d238b0b9f2 Add missing icons (#33)
* Markdown table styling

* Add missing icons

* add code icon
2023-03-31 14:04:09 -04:00
Geometrically
40026fbf53 Markdown table styling (#32) 2023-03-31 13:54:04 -04:00
Geometrically
4193818259 folia (#1067) 2023-03-29 15:12:59 -07:00
Adrian O.V
78840157ef Dropdown fix (#31)
* Fix v-model not working

* Fix clicking off not closing dropdown

* Update DropdownSelect.vue
2023-03-29 14:06:50 -04:00
Geometrically
f3d69a29b9 Bump version (#30) 2023-03-29 07:36:29 -07:00
Adrian O.V
1ae6709b26 Merge pull request #29 from modrinth/navrow-markdown
Add navrow + markdown parsing
2023-03-28 18:03:34 -04:00
CodexAdrian
8cc44b3958 Update parse.js 2023-03-28 18:02:22 -04:00
Jai A
70e894c268 fix vars 2023-03-28 10:43:16 -07:00
Jai A
9ff3ab1a2b lint 2023-03-28 10:42:03 -07:00
Jai A
8167f6f232 Add navrow + markdown parsing 2023-03-28 10:34:48 -07:00
Geometrically
de844e9b23 Bump package version (#28) 2023-03-28 09:46:24 -07:00
Geometrically
7214b71c29 Bump Nuxt + Minor Fixes (#1065)
* Bump Nuxt + Minor Fixes

* Run lint
2023-03-27 09:20:25 -07:00
Geometrically
be5df46803 Ads component (#27)
* Ads component

* run lint
2023-03-26 17:32:25 -07:00
Magnus Jensen
25bd61558b fix(project): update follower count client side (#1038)
* fix(project): update follower count client side

* move following increment to user composable

---------

Co-authored-by: MagnusHJensen <magnus.holm.jensen@lego.dk>
2023-03-26 11:44:33 -07:00
Nicholas Christopher
41961de619 Use nuxt-link for team member element (#1062) 2023-03-26 11:43:23 -07:00
TheBossMagnus
1ca3f6ef8a Update COPYING.md (#22) 2023-03-24 12:16:56 -07:00
Adrian O.V
f97c94832a Toggles (#24)
* Toggles!

* Toggle component

* Ran prettier
2023-03-24 12:15:55 -07:00
Adrian O.V
4ae7786362 Modal report (#17)
* Base modal implementation

* Modal Report page

* Upgrade multiselect

* Fixed multiselect styling

* fix build err

* rev change

* Added dropdown component, addressed changes

Removed unused classes after vue multiselect was removed
Updated markdown-it and xss

* Update index.js

* fix lint

* Fix prettier code style

* Address most changes

* New dropdown

* Undo comment

Makes the component close when not focused

* Fix accessibility issues

* Fix double focus

* addressed changes to modal

* Run Prettier

* Update ModalReport.vue

* Fixed spacing issues

---------

Co-authored-by: Jai A <jaiagr+gpg@pm.me>
2023-03-24 12:15:34 -07:00
Adrian O.V
d3d553ad5a Update Slider.vue (#26)
* Update Slider.vue

* Ran prettier
2023-03-24 12:15:12 -07:00
triphora
4faab006e3 Fix #725 (#1060) 2023-03-24 12:07:54 -07:00
triphora
80621f598e Small fixes (#1061) 2023-03-24 15:03:50 -04:00
Zach Baird
eaf689fe2f Formats version text based on count. (#1053) 2023-03-24 11:47:44 -07:00
Zach Baird
211e3304f3 See all versions will navigate to versions#all-versions. (#1052)
* See all versions will navigate to versions#all-versions.

* Runs prettier.
2023-03-24 11:47:21 -07:00
Zach Baird
d4c3b70f15 Adds margin to confirmation-text. (#1051) 2023-03-24 11:46:09 -07:00
triphora
7605df1bd9 Fix some routes not working (#566) 2023-03-23 09:39:46 -07:00
Adrian O.V
f874941e4d Merge pull request #23 from modrinth/final-components
Final few components
2023-03-17 13:34:07 -04:00
Geometrically
b91ec48178 Fix notification spam (#565) 2023-03-17 09:36:12 -07:00
triphora
3c2f144795 Perses finale (#558)
* Move v2 routes to v2 module

* Remove v1 routes and make it run

* Make config declaration consistent, add v3 module

* Readd API v1 msgs

* Fix imports
2023-03-16 11:56:04 -07:00
Geometrically
437b2ab30a Fix serverless crash + Version Filters on reload (#1050) 2023-03-14 15:33:10 -07:00
masecla22
0271337f8e Fixed an issue with colliding slugs when modifying a project (#562)
* Fixed an issue with colliding slugs when modifying a project

* Update projects.rs

---------

Co-authored-by: triphora <emma@modrinth.com>
2023-03-14 15:06:33 -07:00
Geometrically
630a71c46c Queue Dates + Warnings, some cleanup (#549)
* Queue Dates + Warnings, some cleanup

* Fix ping

* Fix repeated discord messaging

* Fix compile error + run fmt
2023-03-14 14:48:46 -07:00
Jai A
dcc2a5afe0 Final few components 2023-03-14 14:22:50 -07:00
TheBossMagnus
078e952f30 Update COPYING.md (#1049) 2023-03-14 09:22:42 -04:00
Zach Baird
2d2fe4983c Adds media query style to prevent Report button from overlapping username. (#1040) 2023-03-13 20:30:12 -07:00
Zach Baird
29ddc04f7b Changes demo-search height to be min-height. (#1039) 2023-03-13 20:29:37 -07:00
Geometrically
aac2da70cf Fix authentication hydration issue (#1048)
* Fix authentication hydration issue

* reset existing cookies

* Update if statement chaining
2023-03-13 20:21:55 -07:00
Geometrically
f5cbe0c4fe Update package.json (#21) 2023-03-13 15:08:58 -07:00
Geometrically
ab28d0a9b3 Fix publish GH action (#20) 2023-03-13 13:59:10 -07:00
Geometrically
6aaf4ed9d9 run lint + fix build output (#19)
* run lint + fix build output

* remove unused env var
2023-03-13 13:28:30 -07:00
Geometrically
1b81a1f4a6 Omorphia Cleanup + Adding missing styles (#18)
* Add missing knossos styles + some knossos cleanup

* remove yarn.lock

* Update output syntax
2023-03-13 11:40:41 -07:00
Geometrically
e838fe30de Fix datapack packaging (#1044) 2023-03-12 19:01:01 -07:00
Geometrically
150329dd4a Fix GV + Loader syncing on version create (#564)
* Fix GV + Loader syncing on version create

* Update rustc v
2023-03-12 16:42:25 -07:00
Geometrically
6d9779a497 Fix hydration issue + Edit Page (#1043) 2023-03-12 13:00:09 -07:00
Geometrically
130ece3d2e Fix upload version showing for everyone (#1037) 2023-03-10 16:37:23 -07:00
Geometrically
d63a794848 Search loading anim (#1036) 2023-03-10 16:18:26 -07:00
Geometrically
ba220abbbf Fix nuxt3 issues (#1035)
* Fix nuxt3 issues

* fix unintentional npm use
2023-03-10 14:51:48 -07:00
triphora
3825575f70 Fix #1007 (#1030) 2023-03-10 14:50:40 -07:00
Geometrically
8d69961130 Fix overflow tablet (#1029)
* Fix tablet overflow

* Fix with videos as well
2023-03-09 11:06:40 -07:00
Geometrically
740357d120 Migrate to Nuxt 3 (#933)
* Migrate to Nuxt 3

* Update vercel config

* remove tsconfig comment

* Changelog experiment + working proj pages

* Fix package json

* Prevent vercel complaining

* fix deploy (hopefully)

* Tag generator

* Switch to yarn

* Vercel pls 🙏

* Fix tag generation bug

* Make (most) non-logged in pages work

* fix base build

* Linting + state

* Eradicate axios, make most user pages work

* Fix checkbox state being set incorrectly

* Make most things work

* Final stretch

* Finish (most) things

* Move to update model value

* Fix modal text getting blurred from transforms (#964)

* Adjust nav-link border radius when focused (#961)

* Transition between animation states on TextLogo (#955)

* Transition between animation states on TextLogo

* Remove unused refs

* Fixes from review

* Disable tabbing to pagination arrows when disabled (#972)

* Make position of the "no results" text on grid/gallery views consistent (fixes #963) (#965)

* Fix position of the "no results" text on grid view

* fix padding

* Remove extra margin on main page, fixes #957 (#959)

* Fix layout shift and placeholder line height (#973)

* Fix a lot of issues

* Fix more nuxt 3 issues

* fix not all versions showing up (temp)

* inline inter css file

* More nuxt 3 fixes

* [skip ci] broken- backup changes

* Change modpack warnings to blue instead of red (#991)

* Fix some hydration issues

* Update nuxt

* Fix some images not showing

* Add pagination to versions page + fix lag

* Make changelog page consistent with versions page

* sync before merge

* Delete old file

* Fix actions failing

* update branch

* Fixes navbar transition animation. (#1012)

* Fixes navbar transition animation.

* Fixes Y-axis animation. Fixes mobile menu. Removes highlightjs prop.

* Changes xss call to renderString.

* Fixes renderString call.

* Removes unnecessary styling.

* Reverts mobile nav change.

* Nuxt 3 Lazy Loading Search (#1022)

* Uses lazyFetch for results. onSearchChange refreshes. Adds loading circle.

* Removes console.log

* Preserves old page when paging.

* Diagnosing filtering bugs.

* Fix single facet filtering

* Implements useAuth in settings/account.

* tiny ssr fix

* Updating nuxt.config checklist.

* Implements useAuth in revenue, moneitzation, and dashboard index pages.

* Fixes setups.

* Eliminates results when path changes. Adds animated logo.

* Ensures loading animation renders on search page.

---------

Co-authored-by: Jai A <jaiagr+gpg@pm.me>

* Fix navigation issues

* Square button fix (#1023)

* Removes checklist from nuxt.config.

* Modifies Nuxt CI to build after linting.

* Fixes prettierignore file.

* bug fixes

* Update whitelist domains

* Page improvements, fix CLS

* Fix a lot of things

* Fix project type redirect

* Fix 404 errors

* Fix user settings + hydration error

* Final fixes

* fix(creator-section): border radius on icons not aligning with bg (#1027)

Co-authored-by: MagnusHJensen <magnus.holm.jensen@lego.dk>

* Improvements to the mobile navbar (#984)

* Transition between animation states on TextLogo

* Remove unused refs

* Fixes from review

* Improvements to the mobile nav menu

* fix avatar alt text

* Nevermind, got confused for a moment

* Tab bar, menu layout improvements

* Highlight search icon when menu is open

* Update layouts/default.vue

Co-authored-by: Magnus Jensen <magnushjensen.mail@gmail.com>

* Fix some issues

* Use caret instead

* Run prettier

* Add create a project

---------

Co-authored-by: Magnus Jensen <magnushjensen.mail@gmail.com>
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
Co-authored-by: Jai A <jaiagr+gpg@pm.me>

* Fix mobile menu issues

* More issues

* Fix lint

---------

Co-authored-by: Kaeden Murphy <kmurphy@kaedenmurphy.dev>
Co-authored-by: triphora <emmaffle@modrinth.com>
Co-authored-by: Zach Baird <30800863+ZachBaird@users.noreply.github.com>
Co-authored-by: stairman06 <36215135+stairman06@users.noreply.github.com>
Co-authored-by: Zachary Baird <zdb1994@yahoo.com>
Co-authored-by: Magnus Jensen <magnushjensen.mail@gmail.com>
Co-authored-by: MagnusHJensen <magnus.holm.jensen@lego.dk>
2023-03-09 10:05:32 -07:00
Geometrically
5638f0f24b Update privacy policy (#998)
* Update privacy policy

* fix prettier weirdness

* Fixes, modifications, and changes

* We don't prevent automated access, we monitor it

* Fix wonky link and fix header hierarchy

* Update address

* Fix lint

* Transfer over three sections from old policy

---------

Co-authored-by: Emma Triphora <emma@modrinth.com>
2023-03-08 15:22:15 -07:00
Adrian O.V
c8a30e793a Update ProjectCard.vue (#16) 2023-03-08 12:20:44 -07:00
Adrian O.V
2264281e4d Project card (#15)
* initial impl

* merge from main

* No more crashy

* Almost there

* fix import

* fix more imports

* Code cleanup, Fixed components, Added Tooltip

* Added Env ind and Category pages

---------

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2023-03-07 14:59:21 -07:00
Adrian O.V
ce38d4ff6b Slider & Text Input (#12)
* WIP Slider

* Text Input component

* Finalized

* Finishing touches

* remove styles

* Fix sizes and colors

* Fix text input being too restrictive

* Fix enter being ignored

* Fixed duplicate export
2023-03-06 15:26:10 -07:00
triphora
59d7bce518 Actually fix pagination (#557) 2023-03-04 08:53:26 -07:00
Magnus Jensen
3c1e3cd38e Fix version name can be empty string (#537) 2023-03-03 18:20:04 -05:00
triphora
a2eb0bf9fe Add license name to license_text response (#555) 2023-03-03 18:09:27 -05:00
Geometrically
74773ade62 Update logo documentation (#14)
* Update logo documentation

* remove redunant class

* fix style on safari

* Fix favicon
2023-03-02 16:29:00 -07:00
Geometrically
3faf777db1 Add vercel conf change package name (#13) 2023-03-02 13:41:34 -07:00
Adrian O.V
09e880a90d Brand components (#11)
* Text + Animated logo

* Update text-logo.md

---------

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2023-03-02 13:02:50 -07:00
Orchid system (Emma)
5d48ecf86a Project Perses (API v1 yeetenings): parts 4 and 5 (#554)
* Project Perses (API v1 yeetenings): parts 4 and 5

Resolves MOD-219
Resolves MOD-220

* Note to Emma: Please test your stuff
2023-03-02 10:50:46 -07:00
Geometrically
d5785e87e8 Avatar, Badge, Checkbox, Chips, Pagination components (#10) 2023-03-01 17:31:48 -07:00
Prospector
d4a43bf051 Fix oled mode table alt color (#1018) 2023-02-26 20:46:16 -05:00
Geometrically
00d09aa01e Housekeeping + Fix DB perf issues (#542)
* Housekeeping + fix db perf issues

* run prep
2023-02-22 16:11:14 -07:00
triphora
9afdc55416 Add project color to embed accent color (#522)
Closes #521

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2023-02-21 17:44:18 -07:00
Prospector
76c0432f96 Merge pull request #9 from modrinth/make-a-lib
Make current code library + add docs
2023-02-18 23:44:22 -08:00
Jai A
4434796aab Make current code library + add docs 2023-02-18 11:43:12 -07:00
Prospector
0faa24d5d3 Start omorphia 2 (#8) 2023-02-16 15:02:39 -07:00
Geometrically
2c942c8809 Fix limit ordering (#543) 2023-02-16 14:24:57 -07:00
Geometrically
c15acc4ce3 Add API V1 flickers (#541)
Co-authored-by: triphora <emmaffle@modrinth.com>
2023-02-15 17:05:28 -05:00
Geometrically
b056610eaa Version slugs (#533)
* Version slugs

* Get rid of new field, finish it up
2023-02-15 13:38:37 -07:00
Magnus Jensen
8eb9fb1834 fix slug colliding error not showing when editing project (#534)
* fix slug colliding error not showing when editing project

* format

* re-introduce old code

* run sqlx prepare

---------

Co-authored-by: MagnusHJensen <magnus.holm.jensen@lego.dk>
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2023-02-15 10:41:00 -07:00
Magnus Jensen
7ec518b41c update index to use approval date if set (#540)
Co-authored-by: MagnusHJensen <magnus.holm.jensen@lego.dk>
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2023-02-15 10:20:34 -07:00
Magnus Jensen
dc15914a85 chore(validate): update error description to space actual error (#538)
Co-authored-by: MagnusHJensen <magnus.holm.jensen@lego.dk>
2023-02-15 09:40:32 -07:00
Geometrically
6c3b87c9b9 Update ads + careers (#994)
* Update ads + careers

* fix prettier errors
2023-02-14 20:22:13 -07:00
triphora
2fb31f5944 Make mod message card background red to stand out more (#987) 2023-02-08 16:41:14 -07:00
Geometrically
8be42e78de Update IP headers to support lowercase (#979) 2023-02-02 11:15:37 -07:00
Geometrically
6d242ee6c3 Fix analytics on vercel (#976) 2023-02-01 14:31:40 -07:00
Geometrically
6c910d2b5f Sync analytics w/ api changes (#975) 2023-02-01 11:34:20 -07:00
Geometrically
3b22f59988 Fix ariadne req URL (#531) 2023-02-01 11:17:46 -07:00
Geometrically
afdab0300e Update Analytics req + Fix versions list (#529)
* Update Analytics req + Fix versions list

* Fix sentry support

* Fix lint
2023-02-01 10:08:02 -07:00
Prospector
0caa56e618 Recalculate changelog deduplication when the filters change (#954) 2023-01-30 17:28:16 -07:00
Prospector
e5dc843d6a Fix version pages by non-members being broken (#952) 2023-01-29 12:16:51 -05:00
Geometrically
26533c47e7 Add loaders + game versions param to mods (#528) 2023-01-27 19:24:40 -07:00
triphora
3efd1ee325 Fix #934 (#943) 2023-01-23 12:55:31 -07:00
triphora
56a1367322 Fix floating clear message on every project (#938) 2023-01-21 16:25:54 -05:00
triphora
544aba53dc Miscellaneous fixes relating to statuses, et al (#920) 2023-01-21 16:02:11 -05:00
Sasha Sorokin
d68bbbf9a1 GitHub Actions: Use Node 16 to build Knossos (#913) 2023-01-18 19:39:53 -05:00
triphora
df3aeed291 Add scary warning for people still using API v1 (#525)
* Add scary warning for people still using API v1

* change [] brackets to headers
2023-01-17 15:01:26 -07:00
Geometrically
489737274a Careers button (#921)
* Careers button

* Add link target
2023-01-17 10:11:29 -07:00
Geometrically
867ba7b68f Fix various issues (#524)
* Fix various issues

* Fix multipart body hang

* drop req if error

* Make multipart errors more helpful
2023-01-16 16:45:19 -07:00
triphora
4c1fabffc3 Add nag for adding external resources (#918) 2023-01-14 13:23:10 -05:00
Geometrically
6a52d03329 Landing + other fixes (#909) 2023-01-13 12:01:20 -07:00
Prospector
17f00e6fea Fix moderation queue, moderation status card when approved, and invalid datapack packages (#907)
* Fool behavior

* Add leading underscore to packaged datapack package if it starts with a number

* Hide mod status card for all approved statuses without mod messages

* Fix project id sanitization
2023-01-11 16:21:39 -07:00
Prospector
c67bc33c23 Fix custom license erroring with spaces (#905) 2023-01-11 13:10:59 -08:00
Prospector
bb80dcb4e4 Improve moderation messages and add moderation UI on projects. (#889) 2023-01-11 16:05:11 -05:00
Prospector
8fff3e5389 Add release channel filter to versions pages (#902)
* Add release channel filter to versions pages

* Allow filtering by multiple release channels
2023-01-11 13:59:29 -07:00
Prospector
233109d23e Fix a couple of misc. page errors I noticed (#900)
* Fix for a couple of random bugs I noticed

* Add project status update to NOTIFICATION_TYPES

* Update wording

Co-authored-by: Jai A <jaiagr+gpg@pm.me>
2023-01-11 13:57:06 -07:00
Prospector
a6aa78e3b6 Balance search pages to have view mode-aware max search results (#858)
* Balance search pages to have view mode-aware max search results

* Remove console.log

* Implement #829 to prevent invalid pages when changing the max results

* dammit
2023-01-11 13:49:44 -07:00
Prospector
7536322e53 Remove numbers at the start of slugs when converting to mod ID (#897)
* Remove numbers at the start of slugs when converting to mod ID

* If mod id is all digits, replace with project ID
2023-01-11 13:49:13 -07:00
Prospector
b690e3d149 Add featured icon to featured versions on versions page Closes #769 (#890) 2023-01-11 11:13:24 -07:00
Prospector
aabf270144 Remove default description and license and add checklist nag for license (#892)
* Remove default description, remove default license, and add a checklist nag for setting a license

* Make Unknown license display nicer in License settings

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2023-01-11 11:06:29 -07:00
Prospector
61a4f15e53 Prevent user from adding the same dependency multiple times (#859) 2023-01-11 11:03:40 -07:00
Prospector
de212322e2 Fix project settings not allowing you to remove links & trim certain project fields (#895)
* Fix project settings not allowing you to remove links

* Trim project fields

Closes #850
2023-01-11 11:00:42 -07:00
Prospector
cda18fb957 Add support for loading Implementation-Version from MANIFEST.MF for Forge mods (#894)
* Add support for loading Implementation-Version from MANIFEST.MF for Forge mods

* Remove debug lines

* Replace just the key instead of the whole version number
2023-01-11 10:55:55 -07:00
Prospector
011ba5056a Overwrite default notification colors with !important (#898) 2023-01-11 10:54:41 -07:00
Prospector
44c871270b Remove dimming of featured gallery images in project cards (#899) 2023-01-11 10:54:01 -07:00
Prospector
9f6b0e1018 Add latest version URLs (Closes #830) (#901) 2023-01-11 10:52:43 -07:00
Prospector
2d9293732b Make landing page project cards use actual links instead of JS (#896)
* Make landing page project cards use actual links instead of JS

* Make landing page links animate like other clickable elements
2023-01-11 10:32:32 -07:00
jade
d4a131ad31 fix issue #855 (#856) 2023-01-09 18:07:53 -07:00
triphora
fa2316fb28 Fix various gallery issues reported on Discord (#854)
* Fix various gallery issues reported on Discord

Fixes #849

* fix stupidity on my part
2023-01-09 13:04:44 -07:00
triphora
6e5d1fb613 Account for new statuses (#853)
* Account for new statuses

More work is going to be needed for scheduling projects, but this is a stopgap measure to fix #852

* Fix lint

* Why, Prettier, why?
2023-01-09 13:03:57 -07:00
Geometrically
e45f0f0299 Fix text wrap (#841)
* Fix overflow search

* Make animation infinite
2023-01-07 23:26:39 -07:00
Prospector
62125d0284 Sort featured versions and remove heart fill when not signed in 2023-01-07 19:41:12 -08:00
Geometrically
d5ffede5ea Add changes from prod to master (#837)
* redo 6346b5b

* Fix incorrect caps

* Fix reduced motion
2023-01-07 19:40:34 -07:00
triphora
1679a3f844 Fix file uploading for admins (#519) 2023-01-07 19:35:40 -07:00
Prospector
212bb33142 Projects overhaul for creators (#827)
* Projects page

* Continue work on bulk edit

* editLinks is now bulkEdit

* Bulk Edit Links completed

* Edit URL clear fields.

* Create project button + other bulk buttons.

* Pagination (w/o reactivity.)

* Apply suggestions from code review

Co-authored-by: triphora <emmaffle@modrinth.com>

* Sorting fixed, broken page count though?

* Only make editable projects selectable + remove delete button

* Shorthand

* Start using computed

* Fix pagination

* Add Pagination Switching

* Final Style Changes

* Cleanup

* Action Affects dropdown

* Switch to checkbox swizzle

* Projects dashboard, the most hellish thing I have ever worked on

* Rewrite project dashboard without tables

* why's that there

* Fix mod message icon

* New project settings page

* Remove extra slash

* Bulk project route and improve styling of links UI

* Remove beta label from Monetization

* Relevant page links in project settings

* Don't vertically center header rows

* Improve error messages, add remove project icon button, add saving feedback, begin project checklist, fix license settings

* Remove contextual link from project settings, disable WIP checklist

* Fix bulk edit

* Project checklist, add featured gallery image to project pages, fix random bugs

* Remove old check

* Remove icon border on grid mode and hide project status card when unnecessary

* Fix build

* Make checklist progress smaller and add collapsing

* Remove uneven gap on nav cards

* Improve wrapping of checklist

* Replace project settings header link with status

* Fix bugs + status stuff

* Fix warns + compile error

* Update wording

* Hide environment type nag for project types without it

* Make member dropdown match

Co-authored-by: mineblock11 <93472213+mineblock11@users.noreply.github.com>
Co-authored-by: triphora <emmaffle@modrinth.com>
Co-authored-by: Jai A <jaiagr+gpg@pm.me>
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2023-01-07 18:37:47 -07:00
Geometrically
1d8c80c062 New landing page (#834)
* New landing page

* Edit gradient

* User + Creator sections, some css cleanup

* Most stuff

* Finish page (mostly)

* Compress images

* Moar compression

* Fix mobile zoom + adjust wording

* add utm stuff to subscribe link

* Fix border overlay

* Remove redundant CSS class

* Fix most issues (?)

* Add notifs showcase

* Spacing changes, update copy, fix lag

* add and

* Update spacing

* save work

* Update mobile support

* Update discovery copy

* Light theme

* Adjust logo banner on various screen sizes

* Add launcher links

* Oxipng

* Switch to cdn links for images

* Add animation

* Fix animation

* fix tags

Co-authored-by: Emma Cypress Pointer-Null <emmaffle@modrinth.com>
2023-01-07 18:04:43 -07:00
Robert
e8e11257d2 Make summaries and bios wrap (#833) 2023-01-06 04:49:57 -08:00
triphora
1611049623 Fix query params giving plain text error (#509) 2023-01-05 17:14:39 -05:00
Geometrically
7d195367a8 Bulk Editing + Random Projects Route (#517)
* Bulk Editing + Random Projects Route

* Run fmt + clippy + prepare

* Remove license_url
2023-01-04 19:23:47 -07:00
Geometrically
b4236b9a95 Fix duplicate version nums + etc (#831)
* Fix duplicate version nums + etc

* Update link info

* Remove useless loading conditions

* Update pages/legal/privacy.vue

Co-authored-by: triphora <emmaffle@modrinth.com>

* Update plugins/xss.js

Co-authored-by: triphora <emmaffle@modrinth.com>

Co-authored-by: triphora <emmaffle@modrinth.com>
2023-01-03 19:06:30 -07:00
Geometrically
d2b1404907 New gallery creation/editing/deleting UI (#826)
* New gallery creation/editing/deleting UI

* Finish new gallery UI

* port dp changes here

* Add ordering fix optional fields

* Fix dropping

* Fix fmt

* Fix version creation broken, edit issues, project type setting

* Update gallery in search
2022-12-31 23:47:47 -07:00
Geometrically
88a4f25689 Required slugs (#516) 2022-12-30 20:03:13 -07:00
BasiqueEvangelist
161dee89ec Add notification for project status updates (#511)
* Add notification for project status updates

* aaaaaa

* cargo sqlx prepare

* use friendly name of statuses

* Update src/models/projects.rs

Co-authored-by: triphora <emma@modrinth.com>

* only send notifications to accepted users

* only send notifications for people not on the team

* cargo sqlx prepare

* !=

* fully address pr comments

Co-authored-by: triphora <emma@modrinth.com>
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2022-12-30 14:40:00 -07:00
Geometrically
34af33607b Update file restrictions, download counting, project colors, etc (#515)
* Update file restrictions, download counting, project colors, etc

* Run fmt + clippy + prepare
2022-12-30 13:56:41 -07:00
Geometrically
5bb188a822 Project Colors (#512)
* Inital tests

* Finish project colors

* Run fmt + clippy + prepare

* Fix dp+rp fmting
2022-12-29 17:20:50 -07:00
triphora
f11aab6c19 SPDX: Fix niche issue with checkbox (#825) 2022-12-29 16:55:00 -07:00
Geometrically
1f133dbcd0 Datapack support (#815)
* Shader support PR

* Make search page work

* Fix env showing

* Make moderation look reasonable

* Fix search for shaders

* Datapack support

* Make file types work + datapack inferring

* Add editing to file types

* Finish datapack file generation

* Fix bugs, make forge support work

* Fix inconsistent data pack label

* Final fixes
2022-12-29 09:59:41 -07:00
Geometrically
60bb6f105d Nullable file types (#514) 2022-12-29 09:32:46 -07:00
Geometrically
df4680ee09 Fix data pack webhook (#513) 2022-12-29 09:13:39 -07:00
triphora
879576b613 Add animated logo in header and update copying info (#819) 2022-12-27 19:11:03 -05:00
Geometrically
6aaab09601 Fix file type setting (#510)
Co-authored-by: triphora <emmaffle@modrinth.com>
2022-12-26 13:21:37 -07:00
Geometrically
5da42575fd Add validator for file types + datapacks (#507)
* Add validator for file types + datapacks

* Make it compile
2022-12-23 19:49:47 -07:00
triphora
7a105a1538 Fix issues geo discovered (#818) 2022-12-23 17:30:32 -07:00
Geometrically
fe256d6a62 File types (#506)
* File types

* Run prepare + fmt

* Switch to struct

* Update docker version
2022-12-23 16:36:53 -07:00
triphora
5f175141e1 Improve error messages for report with invalid input (#505) 2022-12-23 15:24:45 -05:00
triphora
983e2df065 Miscellaneous improvements and removals (#502) 2022-12-23 15:19:15 -05:00
frikinjay
7408d7bc95 Change 'changelog-item' display to block from flex. (#812) 2022-12-23 14:36:51 -05:00
triphora
1d9820a7c9 Force authors to use the project status sidebar (#810) 2022-12-23 14:36:14 -05:00
beansquared
c536f7d342 Fix formatting of money values (#784)
Fixes https://github.com/modrinth/knossos/issues/736
2022-12-23 14:35:55 -05:00
Arbee
6d9dfb5deb make long Projectnames wrap with a '-' (#771)
fixes https://github.com/modrinth/knossos/issues/770
2022-12-23 14:35:41 -05:00
Max Henkel
a3d469a101 Persistent version filters (#700)
* Add version filter query string

* Add query parameter for showSnapshots

* Empty commit

* Use input event instead of watch

* Remove validateFilters method

* Shorten query params

* Inline getAsQuery

* Use fetch instead of mounted

* Await updateQuery

* Remove support for query parameters as array

* Await updateQuery
2022-12-23 12:35:04 -07:00
triphora
16d5a70c08 Add ordering to categories, gallery images, and team members (#501) 2022-12-23 14:34:04 -05:00
Jai A
b7e2d7fb8e Update copyright 2022-12-22 20:14:26 -07:00
Jai A
fb5f7a336d bump rust version in container (2) 2022-12-22 20:12:05 -07:00
Jai A
78dc5f4bf4 bump rust version in container 2022-12-22 20:11:22 -07:00
Jai A
45dbf5393f Bump versions + switch AWS/S3 library 2022-12-22 19:01:41 -07:00
Geometrically
97ecb0a5d6 Shaderpack support (#798)
* Shader support PR

* Make search page work

* Fix env showing

* Make moderation look reasonable

* Fix search for shaders
2022-12-20 13:47:41 -07:00
Geometrically
6f58e9e7bb Redo version page (#777)
* Redo version page

* More work on editing page

* Make saving work

* Finish version editing

* Version creation (base)

* Add creation buttons

* Add file uploader to versions page

* Add version file parsing

* Finish PR

* Fix version page responsiveness and use more consistent card design

* Whoops that wasn't supposed to be there

* Fixes + allow whole page dragging

* Re-add lost merge data

* Remove debug line

* Move back to list btm

Co-authored-by: Prospector <prospectordev@gmail.com>
2022-12-20 11:15:31 -07:00
stairman06
0de19a09ad Fix follow button being filled in when signed-out (#811) 2022-12-17 14:16:12 -05:00
Antikyth
17a56189dc fix "open-source" link on homepage's whitespace (#807) 2022-12-14 19:39:19 -05:00
triphora
520f9801be Corresponding frontend PR to modrinth/labrinth#449 (#763)
Co-authored-by: Prospector <prospectordev@gmail.com>
Fixes https://github.com/modrinth/knossos/issues/597
Fixes https://github.com/modrinth/knossos/issues/593
Fixes https://github.com/modrinth/knossos/issues/768
2022-12-14 19:36:28 -05:00
triphora
03a6b0311f Fix #673 (#687) 2022-12-14 19:36:04 -05:00
Geometrically
9fed1cde25 Fix webhook again (#499) 2022-12-09 12:29:16 -07:00
Geometrically
5c7b175e90 Webhook update (#498)
* Update webhook

* Run clippy
2022-12-08 19:44:46 -07:00
Geometrically
30b29de8ce Fix statuses again (#497)
* Fix statuses again

* Make it compile
2022-12-08 17:25:24 -07:00
Geometrically
a5f9331023 Fix hashes not showing (#496)
* Fix hashes not showing

* Run prepare + fmt
2022-12-08 15:42:59 -07:00
Geometrically
d8b9d8431e Shader fixes (#495)
* Shader fixes

* Add core shaders validator

* Update validator again

* Rename shaders

* Fix build
2022-12-08 15:13:01 -07:00
Geometrically
91a2ce2b3f Switch out references of 'TO_JSONB' (#494) 2022-12-07 23:30:41 -07:00
Geometrically
4da1871567 Public Webhook Fixes (#493)
* Public discord webhook

* Switch to jsonb for most queries + make gallery featured first

* Run fmt + clippy + prepare
2022-12-07 09:56:53 -07:00
Geometrically
e809f77461 Public discord webhook (#492) 2022-12-06 19:51:03 -07:00
jade
1a922d41df Fix modal URL field autofill allowing invalid characters (#790)
Closes #785
2022-12-06 18:13:18 -05:00
Geometrically
050f8f3c81 Fix lint errors (#794) 2022-12-06 18:12:38 -05:00
HyperSoop
5fc32c7b85 Fix a small wording mistake (#791) 2022-12-06 15:57:33 -07:00
Geometrically
e96d23cc3f Initial work on new status sys + scheduling releases (#489)
* Initial work on new status sys + scheduling releases

* Finish project statuses + begin work on version statuses

* Finish version statuses

* Regenerate prepare

* Run fmt + clippy
2022-12-06 09:14:52 -07:00
Prospector
964fa69fb4 Add gallery view to search pages (#773) 2022-12-03 10:29:49 -08:00
Geometrically
c34e2ab3e1 Fix team member splits being set to 0 by default (#490) 2022-12-02 10:32:17 -07:00
Trash Panda
f1a33db800 Fix header spacing (#787) 2022-12-01 17:35:37 -05:00
triphora
820519b4f7 Move to SPDX licenses (#449)
* Move to SPDX licenses

Found a way to do this without breaking API compat, so here it is, instead of waiting for v3

Resolves MOD-129
Resolves #396

* License URL updates

* what was I thinking

* Do a thing

* Add open source filter

* Remove dead imports

* Borrow

* Update 20220910132835_spdx-licenses.sql

* Add license text route

* Update migration

* Address comments
2022-11-29 21:53:24 -07:00
Geometrically
2e3b56c52f Fix ads not loading (#781) 2022-11-28 13:11:27 -07:00
Geometrically
8f137cf49d Security notice (#767)
Co-authored-by: triphora <emmaffle@modrinth.com>
2022-11-26 21:16:34 -05:00
triphora
34688852a4 Remove redundant files (#488) 2022-11-26 19:11:56 -07:00
Sasha Sorokin
de170ebdd2 Fix notifications fetching (#776) 2022-11-26 17:40:15 -05:00
triphora
e5ae1db49c Prevent people from selecting unknown environment (#775) 2022-11-26 13:35:13 -05:00
Geometrically
151f28081a [skip ci] Add security notice (#486)
* [skip ci] Add security notice

* Fix grammar
2022-11-24 22:13:31 -07:00
Sisby
63035196af Re-word "my profile" to "your profile"/"this profile" (#766) 2022-11-22 12:51:06 -05:00
Geometrically
213a64b1ff FlameAnvil fixes (#484) 2022-11-21 18:59:21 -07:00
Geometrically
e08d803a33 Add project redir + fix version 404 (#762) 2022-11-20 21:18:30 -07:00
Geometrically
df1a939798 Add adrinth link (#761)
* Add adrinth link

* Use article instead of aside to improve SEO

* Fix bad change

* Fix #737
2022-11-20 20:47:32 -07:00
Geometrically
f259d81249 FlameAnvil Project Sync (#481)
* FlameAnvil Project Sync

* Perm fixes

* Fix compile

* Fix clippy + run prepare
2022-11-20 19:50:14 -07:00
Geometrically
848f0db3d1 Fix user errors when logged out (#759) 2022-11-20 19:23:50 -07:00
Geometrically
9e2d47eab5 Fix user page err (#758) 2022-11-20 18:32:51 -07:00
triphora
589761bfd9 Statistics route (#453)
* Statistics route

Staging: https://i.imgur.com/YWx9uPA.png

* Remove users

* Address comment
2022-11-20 15:35:22 -07:00
Prospector
88fa103acb Improve badges and work on a more unified color scheme for random colors (#756) 2022-11-20 13:57:44 -08:00
Prospector
9849bc055c Use safe insets on bottom of screen (#755) 2022-11-20 12:57:53 -08:00
Prospector
1cf75a7169 Improve accessibility on contrast themes (#751) 2022-11-20 12:50:10 -08:00
triphora
e297dff0d4 Massively improved moderator message visibility (#754)
Co-authored-by: Prospector <prospectordev@gmail.com>
2022-11-20 15:49:29 -05:00
triphora
aafd7ed21f Add feature flag for opening external links in a new tab (#749)
Closes https://github.com/modrinth/knossos/issues/438
2022-11-20 12:43:01 -08:00
triphora
ab2c31aa8a Improve user deletion workflow (#686) 2022-11-20 00:02:58 -05:00
triphora
18fde86a20 Fix #464 (#467)
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2022-11-19 17:54:56 -07:00
Geometrically
47111819e7 Fix heart not showing up (#752) 2022-11-18 09:22:07 -07:00
triphora
ddd3f7c196 Fix text box resizing (#750)
Closes #416
Closes #475
Closes #525
2022-11-17 22:06:07 -05:00
triphora
1738f92ce2 Make download/follower displays consistent (#746)
Closes #602
2022-11-17 22:05:52 -05:00
Ennui Langeweile
074695b50c Remove bottom padding on <details>' last element (#748)
* Remove bottom padding on <details>' last element

* Fix linting screwup, refine the fix

* Fix linting for real
2022-11-17 22:03:02 -05:00
Tom Martin
ba28bc94d3 Fix all default clippy warnings (#480)
All trivial, fixes were for:
 - #[deny(clippy::if_same_then_else)]
 - #[warn(clippy::explicit_auto_deref)]
 - #[warn(clippy::bool_assert_comparison)]

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2022-11-17 10:09:53 -07:00
Geometrically
da19a07943 Payouts fees changes (#478)
* Payouts fees changes

* Update src/queue/payouts.rs

Co-authored-by: triphora <emmaffle@modrinth.com>

Co-authored-by: triphora <emmaffle@modrinth.com>
2022-11-16 13:46:36 -07:00
Sasha Sorokin
95ac136720 Bump Vue to 2.7 (#727)
List of changes in Vue 2.7:
https://blog.vuejs.org/posts/vue-2-7-naruto.html
2022-11-15 12:43:01 -07:00
Prospector
ecced27853 CMP Update Hotfixes (#729)
* Remove WIP for getting paid

* Fix beta badge border

* Update money formatting

* Add required "not affiliated with Mojang" notice

* Replace search video on home page
2022-11-15 12:41:38 -07:00
Sasha Sorokin
e86aa6b541 Fix project layout on right not working correctly (#730)
Fixes #726
2022-11-15 12:41:28 -07:00
Geometrically
91f74b44a0 New ads (same size + layout) (#735) 2022-11-15 08:22:46 -07:00
Geometrically
35d8e28b8c Update privacy policy (#724) 2022-11-12 19:16:49 -07:00
triphora
26a6af4ab2 Fix 404 error when creating a resource pack (#723)
Redo of #681
2022-11-12 18:11:17 -07:00
Geometrically
20785926e2 Rewrite Parity (#647)
* Rewrite Parity

* Update SEO, fix modals, add dashes to changelog

* Edit create version title

* Cache tags, SEO for search/partial noscript support, notifications fix

* Deploy?

* Fix vercel config

* Fix it again

* Finish user editing

* Remove broken docker build

* Switch reports to modals

* Update project card

* Navbar line animation in most places

* Add chips

* Move to navlink query params

* remove autogen file

* Add copy code

* Fix webkit text box outlines, port report modal

* Update error page

* Switch to avatar component

* Make keyboard nav work

* Fix team member spacing

* improve project ID display (#676)

* Bug fixes

* Update OG site title

* More fixes

* Design tweaks

* Fix card wrapping on mobile

* Darken light theme color a little

* Sidebar navigation for settings, notifications, and moderation

* Change follow icon from a heart to a bell

* Revert "Change follow icon from a heart to a bell"

This reverts commit e30b46ec5d93c57df847be88eba123c7419dd03b.

* Change follows icon in settings

* AaaaUUUUUUUGghghhhhhhhh

* Project sidebar transparent button animations

* Update file input button styling and change icon remove button text

* Fix environments filter condition being inverted

* Remove -> revert

* Improve readability of warning banners on light mode

* Fix mobile menu button colors

* Clean up notifications page more

* Creator dashboard and monetization work

* Add processing fees declarations and acknowledgement box

* Beta badges

* Downgrade Nuxt Vercel Builder

* Update the style of button groups to be more consistent

* More button consistency

* Remove desktop navbar on mobile

* Update home page progress indicators

* Fix page jumping (Thanks @stairman06)

* Make checkbox checked style consistent with other selection indicators

* More home page updates

* Properly reset NavRows

* Move filters menu on mobile

* Stylized checkbox updated to match active styling

* Filters icon

* Respect prefers-reduced-motion

* Add most backend payouts changes (untested)

* Finish tested payouts code

* Allow monetization unenrolling

* No longer use brand color for active highlights on standard nav elements

* More consistent button group on project page

* Rounded tables

* Fix some things (#716)

* Team member fixes + re-add changelog/versions stuff

* Remove dummy data

* The great CSS refactor

* Remove commented out css

* Give modals the legacy label styles and update profile edit labels

* Fix active chip size

* Remove shadow from selected chip

* Require email set for CMP

* Update styles of notifications to universal-card

* Equivalent exchange, trading some jank for some less bad jank

* Fix all gallery buttons being missing when there is only 1 image

* Update project creation modal

* Make beta badge less bright

* Beta badge heading styling

* Update withdraw processing fees info

* Remove redundant label

* be

* Fix inverted logic

* 2% is 0.02

* Add toggle to turn off alpha modpacks banner

* Why warning button?

* Add more footer links (#719)

* Add more footer links

* Move twitter

* Make items on user pages less comically large and move ad above navigation

* Bump text down a little on home page

* Update favicon colors

* Remove task list package and change default description to use bullet points

* I don't remember why I made this important but let's not

* Ah, yes

* this doesn't actually need to be important

* Align items in input groups

* Adjust some spacings and clear creation modal on opening

* Versions now clickable

* Add link to edit page to default description

* Improve monetization information text

* Make wrapped text inputs not shrink

* Make chips work better

* smol margin on clear mod message button

* Allow non-authenticated users to access settings

* Remove settings anchors

* Fix versions page button style on firefox

* Add advanced rendering toggle

* Update slug input and icon card in project edit page

* Legal sidebar

* h1 at beginning of description no longer has top margin

* Use universal card for legal pages

* Update email addresses on legal pages

* Update various page titles and descriptions for consistency

* Various fixes and consolidation to API URL retrieval

Prevents a bug where it's possible to generate the tags under one API, switch the API, and still have tags leftover from the old API

Also finally fixes staging URL being jank

* Make the theme button show regardless of login state

Also remove the change theme from the user dropdown because it's very redundant with the several other ways of changing theme

* Make mobile profile dropdown ordering consistent with desktop

* Change the base url back

* Revert "Change the base url back"

This reverts commit c1da89fddb83776b39f626eab33c8dc67f8a75e4.

* constantize

* Tiny fixes (#722)

* Box-shadow chip outlines

* Show settings when signed out

* mods -> projects

* space

* Beta badge border

* Slug input overflow fix, scrollable

* 🙈 it will all be okay 🙊 this is just temporary 🙉 😭😭 forgive me

* Fix minor bugs

* fix moderation  page

* More fixes

* Temp fix for download button

* BEGONE TABLES

* Fix download button

Co-authored-by: Ryan Cao <70191398+ryanccn@users.noreply.github.com>
Co-authored-by: Prospector <prospectordev@gmail.com>
Co-authored-by: stairman06 <36215135+stairman06@users.noreply.github.com>
Co-authored-by: triphora <emmaffle@modrinth.com>
2022-11-12 17:57:40 -07:00
Geometrically
ecc500fc91 Fix payouts bug with decimals (#477) 2022-11-11 10:04:46 -07:00
Geometrically
c22ac1e60a Support unenrolling from payouts (#476) 2022-11-09 16:01:10 -07:00
Geometrically
55d9aa2a4c Allow owner payout split to be edited (#475) 2022-11-08 19:15:30 -07:00
Geometrically
1d391e68e5 Better ser/deser for payouts vals (#474) 2022-11-08 14:14:07 -07:00
Geometrically
0429c44d18 Fix payouts conditions (#473)
* Fix payouts conditions

* Make it build
2022-11-07 20:17:44 -07:00
Geometrically
2c1bcaafc1 Use auto payments with paypal (#472)
* Use auto payments with paypal

* Remove sandbox key
2022-11-07 15:38:25 -07:00
Geometrically
35891c74cd Final fixes payouts (#471)
* Final fixes payouts

* add minimum payout
2022-11-01 09:53:43 -07:00
Geometrically
2ca6e67b37 Payouts finish (#470)
* Almost done

* More work on midas

* Finish payouts backend

* Update Cargo.lock

* Run fmt + prepare
2022-10-30 23:34:56 -07:00
Geometrically
66d0ee8156 Switch back to EthicalAds (#701)
* Switch back to EthicalAds

* Update privacy policy

* Cleanup a little
2022-10-26 10:21:03 -07:00
Geometrically
6e72be54cb R2 impl (#466)
* Add Cloudflare R2 impl

* Bump actix version

* Fix sec issues
2022-10-22 21:23:31 -07:00
Geometrically
6138b060d7 Fix typo in messages (#697) 2022-10-21 08:09:46 -07:00
Andre_601
308d661d7e Add Prism Launcher (#696) 2022-10-20 16:48:40 -04:00
GreenTriangle
4e106c2355 fix the "pack creators" I added by accident (#694) 2022-10-17 18:34:37 -04:00
GreenTriangle
456160fa29 remove link to PolyMC (#693) 2022-10-17 17:41:44 -04:00
Geometrically
07edb998e4 Fix integration with backblaze API (#461)
* Fix integration with backblaze API

* Remove keys (already reset, dw)
2022-10-09 19:10:06 -07:00
HERO
b553ac58d3 Fixed favicon not loading in some cases (#679) 2022-10-06 11:35:11 -04:00
evan
2c26f43035 Fix special characters in gallery title/description (#683) 2022-10-06 11:30:10 -04:00
Geometrically
3e52f804a7 More reasonable length restrictions (#458) 2022-09-26 18:09:50 -07:00
Sasha Sorokin
1b49844012 Bump @nuxtjs/color-mode to v2.1.1 (#678) 2022-09-26 19:38:33 -04:00
Geometrically
75b7583832 Increase dependency limit (#454) 2022-09-21 21:27:02 -07:00
wafflecoffee
75d45e8907 Quick fix #668 (#669) 2022-09-17 17:52:35 -04:00
wafflecoffee
d754eb74f7 Ignore any dependencies set manually for modpacks (#433)
* Ignore any dependencies set manually for modpacks

* actually build
2022-09-17 13:17:32 -07:00
wafflecoffee
b78bd5d6fd Prevent modpacks from manually adding dependencies (#575) 2022-09-17 15:26:16 -04:00
Sasha Sorokin
5d53344b75 More reliably detect ad load faults (#661)
Detecting that ad has failed to load with timeout is not accurate and
won't work on slow connections. This commit fixes that by changing
detection to use 'onerror' event on <script> tag instead, which will be
triggered if ad script fails to load due to blocking.
2022-09-12 08:14:32 -07:00
Geometrically
7cd58bd534 Fix stacked ads (#660) 2022-09-11 19:11:45 -07:00
Andre_601
9826bf67c2 Minor typo correction (#657) 2022-09-11 08:46:10 -04:00
Geometrically
350fe124d0 Update privacy policy (#656) 2022-09-09 09:31:36 -07:00
Geometrically
20aac83e5e Handle double ads shown (#655) 2022-09-08 20:50:52 -07:00
Geometrically
9d1c822ba1 Fix adblock message again (#654) 2022-09-08 20:42:08 -07:00
Geometrically
b8d46e2863 Fix adblock message (#653) 2022-09-08 20:25:39 -07:00
Geometrically
cd2f2d42a3 Try CarbonAds (#629)
* Try CarbonAds

* Move location

* add border, fix adblock msg

* Fix advertisement label look (#636)

Ever since changes for Carbon ads were introduced, the label did not
match the appearance of the card, leaving the bottom right corner of the
card not round. With more recent changes, where border was added, that
became even more apparent - now the border covers the label, which does
not look good; this effect only becomes worse when zooming.

This commit attempts to mitigate these issues with the following:

- To fix the border issues, label's absolute position is now calculated
  from the card wrapper, where the border is applied. This allows label
  to cover the border for seamless look. That is done by changing
  position of the card wrapper to relative instead of doing so for the
  ad contents container.

- The label now tries to take over the border, to do so the bottom and
  right relative positions have been changed to -3px.

- To account for the position change, the label is now a bit more
  padded, to make text content of it to look more or less as before,
  otherwise it would shift a bit. Not sure if the padding changes are
  accurate, but it does look close to how it looked before.

* Fix message again

* Update user ads position

* Remove privacy toggles (placebo and didn't do anything)

* Remove other code

* Link docs page

Co-authored-by: Sasha Sorokin <10401817+Brawaru@users.noreply.github.com>
2022-09-08 17:33:13 -07:00
wafflecoffee
60252267d5 Add slug to searchable attributes and add project_id to facets (#447)
Fixes #358

Adding project_id to the facets would allow the inclusion or exclusion of individual projects from search. For example, this would allow people to be able to exclude projects which they've already followed or are not interested in. My personal vision for this is to merge the [followed projects page](https://modrinth.com/settings/follows) into search itself.
2022-09-05 21:39:50 -07:00
Geometrically
4bfab89292 Fix misplaced buttons on versions page (#646) 2022-09-04 16:54:06 -07:00
Geometrically
1d3e8aedcd Fix required indicators showing on view page (#645) 2022-09-04 15:47:18 -07:00
Geometrically
b25af641e2 Fix gallery date display (#445)
* Fix gallery date display

* Fix approved date not setting
2022-09-04 13:37:11 -07:00
kevoh1516
75c41644c6 Enhance version creation (#535) (#616) 2022-09-04 10:56:32 -07:00
Sasha Sorokin
3e221f3b6a Minor fixes for "See all" link design (#627)
- Now styled as a proper link.
- Change :focus to :focus-visible to avoid link getting stuck in that
  'hovered' state because focus does not actually change (it deffo
  should though, something to fix in the future - should be one
  fragment change).
- Removed all padding and transition.
2022-09-03 22:34:19 -07:00
Geometrically
e7c3f8bf47 Initial work on payouts (badges, perms, splits) (#440)
* Initial work on payouts (badges, perms, splits)

* Fix clippy error, bitflag consistency
2022-09-02 12:38:58 -07:00
wafflecoffee
4c1dca73c4 Replace remaining icon.ext image paths with hash (#435)
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2022-09-02 12:19:39 -07:00
mooz
0bbb6b91fe Add plugin.yml support for bungeecord & waterfall (#438) 2022-09-02 08:39:58 -07:00
wafflecoffee
ee93d9b495 Sort version files and mods on user profile (#432)
* ???

* Moardering fixes

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2022-08-28 21:54:42 -07:00
Geometrically
535abdc481 Fix mobile navbar (#634) 2022-08-27 16:20:20 -07:00
Geometrically
3684126250 ???????? (#633) 2022-08-27 15:59:36 -07:00
Geometrically
bf8ac214a1 Attempt to fix multipart errors (#436) 2022-08-27 15:18:25 -07:00
Andre_601
d3fc34c824 Don't close dropdown when selecting loaders (#632) 2022-08-27 16:03:27 -04:00
Sasha Sorokin
8769b5d1b5 Improve design of "See all" link in feat. section (#625) 2022-08-24 13:30:57 -04:00
Ryan Cao
59bb132dd7 Add support for GitHub-styled color scheme dependent images (#617) 2022-08-23 22:38:22 -04:00
Igor Bedesqui
8a53fa0aab Add "See all" link next to featured versions (#550) 2022-08-23 22:16:47 -04:00
jade
71f42e405d Fixed description * wrap in project create page (#623) 2022-08-23 22:14:40 -04:00
Geometrically
64b89dd226 Fix search categories (#620)
* Fix search categories

* Invert condition
2022-08-22 15:29:03 -07:00
Geometrically
27d6b855b8 Fix loaders not showing (#622)
* Fix loaders not showing

* p

Co-authored-by: wafflecoffee <emmaffle@modrinth.com>
2022-08-22 15:25:42 -07:00
Geometrically
9c7b34d5e6 Apply additional categories fix to search indexing (#428)
* Apply additional categories fix to search indexing

* fix edit version validator
2022-08-20 22:34:00 -07:00
Geometrically
20c4f0dc10 Fix plugin URLs, display, redirects (#619)
* Fix plugin URLs, display, redirects

* Fix user profile + some redirects not working
2022-08-20 11:08:21 -07:00
Arbee
7c166d85e1 Fix inconsistent donation icons and add OpenCollective (#609)
resolved #608
* fixes Inconsistent donation icons and colours #608
replaces all donation png's with svg's from https://simpleicons.org
removes svg files with "-svg" at the end

* fixes the issues due to vscode formatting the code

* fixes Discord icon
fixes some formatting errors, caused by copy& from the previous commit with wrong formatting

* fixed else-if's
added Open Collective Icon
I couldn't find the icon for the Economy Category from Feather

* added unknown_donation.svg
replaced unknown donation icon
removed old unknown.svg icon

* renamed unkown donation icon for consistency

* somehow the cmmits before didn't add the new Icon
Fixed formatting issues (again)

* fixes formatting issues (I need to look into that)

* fixed else-if's that somehow got reverted

* Fix lint

* Strict equals

* Fix lint again
2022-08-18 10:34:27 -04:00
jade
093080894b added support for the kbd tag in markdown (#611) 2022-08-18 09:51:34 -04:00
Geometrically
76c0fa2fe2 Remove database requirement (#427) 2022-08-17 22:06:28 -07:00
Geometrically
ac3a17b178 Fix plugin validator, fix version urls, clippy lints, additional categories (#421) 2022-08-16 17:42:04 -07:00
Geometrically
9a2243da9f Fix devtools being enabled in prod (#601) 2022-08-14 22:18:13 -07:00
Geometrically
0f5aa9f8d9 Fix version sorting (#600) 2022-08-14 15:20:42 -07:00
Geometrically
673f7a82d1 New features (#592)
* New features

* Lots of bug fixes

* Fix respack creation

* Improve mobile nav with more project types

* Fix resolution sorting and remove icons

* Move cookie consent to top on small devices to get out of the way of navigation

* Move cookie consent + fix hydration

* Fix project editing + update search features

* Centralize hardcoding of loader/category names, fix cookie consent shadow, fix mobile navbar rounding

* Fix plugin platforms formatting

* Kitchen sink!

* Add support for display names

* LiteLoader formatting

* Fixed "show all loaders" toggle not resetting when changing pages

* Allow multiple loaders in version filter controls

* Fix clear filters button

* Revert "Add support for display names"

This reverts commit 370838763d86bcae51bf06c304248f7a1f8fc28f.

* Let's see how this goes. Upstream filters, attempt 1

* github? hello?

* No more "Server mod" on plugins

* Fix formatting of project types in project creation

* Move where project creation sets the resource pack loader

* Allow setting pixelated image-rendering

Allows to apply 'style' attribute to IMG tags with value
'image-rendering' set to 'pixelated', which can be useful for people who
use pixel art in their READMEs (to demonstrate items, for example).

* fix user page + hydration issue fix from Brawaru

* Rename to proxies

* Make categories use title case

* Always show project type on moderation page, improve project type display on project pages

* Remove invalid key

* Missed a check

* Fix browse menu animation

* Fix disabled button condition and minimum width for 2 lines

* Body -> Description in edit pages

* More casing consistency issues

* Fix duplicate version URLs

* Fix version creation

* Edit URLs, fix privacy page buttons

* Fix notifications popup overlaying

* Final merge fixes

Co-authored-by: Prospector <prospectordev@gmail.com>
Co-authored-by: Sasha Sorokin <10401817+Brawaru@users.noreply.github.com>
2022-08-14 12:42:58 -07:00
Geometrically
c76b527b93 Make maven support duplicate versions (#418) 2022-08-13 18:53:12 -07:00
Geometrically
ded4f95537 Fix additional category editing (#417) 2022-08-12 20:48:01 -07:00
wafflecoffee
87251878a5 Merge pull request #5 from jadelily18/generate-docs-spelling
fixed minor spelling mistake

[no ci]
2022-08-12 06:37:49 -04:00
wafflecoffee
3a14f363d9 Merge pull request #4 from frikinjay/main
object-fit property to contain to prevent avatar stretching.
2022-08-12 06:37:10 -04:00
jade
84921f04cd fixed minor spelling mistake 2022-08-11 23:00:55 -05:00
Geometrically
8272386733 Fix approved value setting (#415) 2022-08-07 09:21:49 -07:00
Geometrically
33988ed3fb Allow duplicate version numbers, fix version sorting, edit validators (#414) 2022-08-06 17:44:16 -07:00
frikinjay
b16475b8bd Change the link to Modrinth CDN from #581 (#582)
* Fix the bunny fonts link from #580

* Change the link to Modrinth CDN from #581
2022-08-06 12:06:55 -07:00
wafflecoffee
411b8e3cb6 Initial work on site moderation improvements (#410) 2022-08-02 23:31:56 -07:00
Geometrically
848e26eec6 Revert "Additional categories + fix project creation" (#591)
This reverts commit 62e86f9507.
2022-08-02 20:28:43 -07:00
Geometrically
916da16523 Fix filters (#389) 2022-08-01 21:23:13 -07:00
Geometrically
d165c081f7 Fix API breakage project creation (#409) 2022-07-31 21:54:17 -07:00
Jai A
62e86f9507 Additional categories + fix project creation 2022-07-31 20:19:41 -07:00
Geometrically
992de7d66e Fix search not working (#408) 2022-07-31 15:26:25 -07:00
Geometrically
46ab7bbcbe Fix category query (#407) 2022-07-31 14:42:22 -07:00
Geometrically
b04bced37f More project data (#406)
* More project data

* Array_agg fixes + cleanup

* fix prepare

* Add approval dates to search

* Update migrations/20220725204351_more-project-data.sql

Co-authored-by: wafflecoffee <emmaffle@modrinth.com>

* Add category labels + display categories

Co-authored-by: wafflecoffee <emmaffle@modrinth.com>
2022-07-31 13:29:20 -07:00
frikinjay
5b306f365e object-fit property to contain to prevent avatar stretching. 2022-07-31 11:00:33 +05:30
github-actions
ce8950da43 Bump package version [skip ci] 2022-07-29 20:46:43 +00:00
venashial
0e1c7cd8ed Add landing page data for statistics & contributors 2022-07-29 13:44:34 -07:00
github-actions
fba6dd750d Bump package version [skip ci] 2022-07-29 06:37:10 +00:00
venashial
e73b6bc39e Move fonts folder + Update setup docs for Vite 2022-07-28 23:34:43 -07:00
github-actions
fa3cbbee67 Bump package version [skip ci] 2022-07-29 05:52:18 +00:00
venashial
029e52eb5f Fix up setup docs and leftover CSS 2022-07-28 22:50:09 -07:00
github-actions
13914507e8 Bump package version [skip ci] 2022-07-29 05:48:24 +00:00
venashial
533f0213e3 Self-host fonts + Move Vite plugins export 2022-07-28 22:45:53 -07:00
Ricky12Awesome
13335cadc6 Adds /teams route (#373)
* basic list (no grouping yet)

* now groups and checks auth, moved Team::get_many to TeamMember::get_from_team_full_many

* Ran 'cargo sqlx prepare'

* batch TeamMember::get_from_user_id

* Batches before for loop

* Ran 'cargo sqlx prepare'

Co-authored-by: Emma Cypress <emmaffle@modrinth.com>
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2022-07-26 22:40:20 -07:00
github-actions
95d6dac055 Bump package version [skip ci] 2022-07-26 21:05:14 +00:00
venashial
2001d7f02a Fix scroll not being reset 2022-07-26 14:01:59 -07:00
github-actions
bae5b70023 Bump package version [skip ci] 2022-07-26 20:34:59 +00:00
venashial
8341d343d3 Fix noScroll & add prefetch to NavRow 2022-07-26 13:32:09 -07:00
frikinjay
278a56e580 Fix the bunny fonts link from #580 (#581) 2022-07-26 11:25:43 -07:00
moehreag
6ab44ccf0c Switch from google fonts to bunny (#580) 2022-07-26 13:32:12 -04:00
wafflecoffee
b864791fa6 Limit 'superuser' status of current moderators (#386)
Resolves MOD-88

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2022-07-23 18:47:32 -07:00
github-actions
918898d6fe Bump package version [skip ci] 2022-07-17 00:08:07 +00:00
venashial
566e5dea57 Run CI on pull requests + Test packaging 2022-07-16 17:04:53 -07:00
venashial
5d1bfa18b1 Merge pull request #3 from Wuzado/main
Add svelte2tsx to fix package builds
2022-07-16 17:03:41 -07:00
Wuzado
800540ce7f Add svelte2tsx to fix package builds 2022-07-17 01:49:13 +02:00
github-actions
74ee74365e Bump package version [skip ci] 2022-07-16 23:30:45 +00:00
venashial
75f6235111 Fix sveld plugin 2022-07-16 16:28:15 -07:00
venashial
fe415cbd77 Upgrade to Vite 3 2022-07-16 16:15:06 -07:00
Emma, Cypress, Rose ⚘
dc69c0d3e5 Implement new content rules (#570)
* Overhaul of the legal pages (rules, terms, privacy policy)

Resolves MOD-90
Resolves MOD-91

* Revert changes to privacy policy & terms

The privacy policy and terms are gonna require a lot more effort to review and we just want the rules stuff in ASAP

* CI fix

* Fix the headings of all things

* Update content section of terms
2022-07-16 15:35:05 -04:00
UbiOne
40b3f39249 Hoverable "joined" fields on user pages (#555) 2022-07-16 15:03:56 -04:00
Andre_601
a9acc55735 Create config.yml for issue selection (#566) 2022-07-16 15:03:47 -04:00
github-actions
9c07612274 Bump package version [skip ci] 2022-07-11 20:25:06 +00:00
venashial
3e87d88825 Add .link underline 2022-07-11 13:23:19 -07:00
github-actions
e280c0c5ca Bump package version [skip ci] 2022-07-10 22:41:44 +00:00
Emma Cypress ⚘
6614b56298 Revert "Add auto-reporting inappropriate text content" (#397)
* Revert "Add auto-reporting inappropriate text content (#387)"

This reverts commit 68f7dc9512.

* Maybe don't revert the whole thing
2022-07-10 10:02:41 -07:00
Emma Cypress ⚘
02c3894fc9 Add even more validators (#385)
* Add even more validators

I was gonna add shaderpacks too, but those have no standard metadata file at all.

* Make it compile

* Fix logic

* Update validators

* fix mistake

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2022-07-09 20:25:44 -07:00
Emma Cypress ⚘
68f7dc9512 Add auto-reporting inappropriate text content (#387)
* Add initial support for blocking inappropriate text content

To make something clear, **nothing** is automatically censored or
deleted as a result of this pull request. This pull request is
meant to add two things:
- Regenerate new IDs (project, version, user, etc.) with profanity
- Send reports to the moderators for new inappropriate content

* Make it build

* Fix logic issue

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2022-07-09 18:51:55 -07:00
venashial
64f750a097 Fix lint 2022-07-09 14:53:03 -07:00
venashial
48bc18017e Add Code component 2022-07-09 14:51:04 -07:00
venashial
18d1bc56fd Fix HTTP status code 200 -> 204 (#394) 2022-07-08 13:18:41 -07:00
github-actions
035fa3be3f Bump package version [skip ci] 2022-07-03 05:16:10 +00:00
venashial
f62723c274 Add .file class + Generator user agent 2022-07-02 22:14:20 -07:00
Geometrically
aca59019c1 Fix analytics env error (#562) 2022-07-02 15:50:01 -07:00
Geometrically
2186ea9a90 Use nuxt lifecycle hook for analytics (#561) 2022-07-02 11:23:24 -07:00
Geometrically
928f6e7009 Add ariadnee (#560) 2022-07-01 20:15:01 -07:00
Geometrically
1e4d07a52c Download counting (#388) 2022-07-01 19:31:37 -07:00
github-actions
64ed5fca3b Bump package version [skip ci] 2022-07-02 00:22:02 +00:00
venashial
4c7fc79843 CheckboxList, Modal, Select, & .link-group fixes 2022-07-01 17:20:08 -07:00
Emma Cypress ⚘
153d77359f Add more banners and warnings for some statuses & other fixes (#558)
* Add more banners and warnings for some statuses & other fixes

* Remove unused css
2022-07-01 08:20:35 -07:00
github-actions
c8a2fb92d2 Bump package version [skip ci] 2022-07-01 00:47:52 +00:00
venashial
dcc252b371 Update Select component 2022-06-30 17:42:15 -07:00
github-actions
846aadd7c6 Bump package version [skip ci] 2022-06-30 20:18:51 +00:00
venashial
3c604db234 Add .member hover style + NavRow & parse fixes 2022-06-30 13:17:07 -07:00
github-actions
cb3efb1c1d Bump package version [skip ci] 2022-06-30 19:20:06 +00:00
venashial
1423db35eb Fix NavRow on mobile 2022-06-30 12:17:55 -07:00
Geometrically
1fc579e907 Add project check route (#384)
* Add project check route

* Fix responsee
2022-06-28 14:36:47 -07:00
Danielle Hutzley
827c4e31ee fixup! Migrate to piston-meta 2022-06-27 13:59:06 -07:00
Danielle Hutzley
c2a1ed926e Migrate to piston-meta 2022-06-27 13:54:09 -07:00
Geometrically
4f86c117c3 Merge pull request #2 from modrinth/feature/bincode
Add Bincode support
2022-06-26 18:41:00 -07:00
Danielle Hutzley
93817ba92f Actually compile without Bincode 2022-06-26 16:41:22 -07:00
Danielle Hutzley
18153e0fcc Bump version 2022-06-26 16:23:57 -07:00
Danielle Hutzley
3123f6444f Add Bincode feature for efficient binary storage 2022-06-26 16:23:41 -07:00
Geometrically
cb2a7a88fc Fix auth URL using staging (#556) 2022-06-26 16:17:55 -07:00
stairman06
e530111283 Version search fix (#554) 2022-06-26 12:52:05 -07:00
Geometrically
4e97a3b3d5 More project type validators (#383) 2022-06-26 10:39:38 -07:00
Emma Cypress
332c4a1f98 Add note about adding multiple files to a version (#546)
* Add note about adding multiple files to a version

Closes #545 as not planned

Related to modrinth/docs#50

* Fix note showing on version.vue when it shouldn't
2022-06-25 22:10:22 -07:00
Emma Cypress
8541b95d8b Add Embedded dependency type (#553)
* Add Embedded dependency type

* Why, lint, did you not complain about this in my dev env???
2022-06-25 22:09:10 -07:00
Emma Cypress
e4584e3f04 Force file input to accept file type based on project type (#552) 2022-06-25 22:08:50 -07:00
Emma Cypress
134c43ad9e Always return the username as fetched from the database (#382)
Co-authored-by: Patrick <cryne@gmx.de>
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2022-06-25 22:04:34 -07:00
John Paul
e74b4b35b9 Don't consider a user's name taken by self (#376)
* Don't consider a user's name taken if self

* Fix incorrect types

* try-use more idiomatic Option tech

* true if `None`

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2022-06-25 21:50:41 -07:00
Emma Cypress
16e7194dfe Add Embedded dependency type (#380)
* Add Embedded dependency type

I couldn't find any SQL tables or anything for dependency types, so I'm going to assume there aren't any

* Make modpacks use Embedded instead of Required

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2022-06-25 19:16:46 -07:00
Geometrically
168ec9092a Fix random Nuxt internal server errors (#551)
* Fix random Nuxt internal server errors

* Fix ratelimit key being exposed

* Add GDPR clarification
2022-06-25 16:46:10 -07:00
github-actions
914b6c757d Bump package version [skip ci] 2022-06-25 20:25:26 +00:00
venashial
48d10d701e Expose fetching from `send function 2022-06-25 13:23:39 -07:00
github-actions
6479e94c4f Bump package version [skip ci] 2022-06-25 20:10:16 +00:00
venashial
fb3a9f1f29 Fix send function headers error 2022-06-25 13:08:20 -07:00
github-actions
e9d7df8862 Bump package version [skip ci] 2022-06-25 19:33:51 +00:00
venashial
123de56f38 Refactor setup documentation 2022-06-25 12:32:03 -07:00
github-actions
8627132d6a Bump package version [skip ci] 2022-06-25 07:40:01 +00:00
venashial
3ef9c4c626 Add .gitkeep to /generated to fix tsconfig 2022-06-25 00:37:57 -07:00
venashial
aec03294d6 Create send function for API requests 2022-06-25 00:17:42 -07:00
github-actions
2e6e1f4060 Bump package version [skip ci] 2022-06-25 05:53:31 +00:00
venashial
07f1103784 Add registry-url to workflow 2022-06-24 22:52:02 -07:00
Jai A
ffc8f133c9 Fix auth URL compute 2022-06-24 22:44:47 -07:00
github-actions
507f2a4c7c Bump package version [skip ci] 2022-06-25 05:42:29 +00:00
venashial
1c9e9b9367 Use npm for publishing 2022-06-24 22:41:05 -07:00
github-actions
4d81775f8d Bump package version [skip ci] 2022-06-25 05:32:53 +00:00
venashial
cf042931b6 Use alternate NPM_TOKEN config for release 2022-06-24 22:31:11 -07:00
github-actions
f6a931599a Bump package version [skip ci] 2022-06-25 05:28:29 +00:00
venashial
1b17049e94 Cut down highlight.js size 2022-06-24 22:26:49 -07:00
venashial
81c039d645 Fix packaging to correctly handle utils/ 2022-06-24 20:36:16 -07:00
Emma Cypress
932b0ccf24 Allow archived projects to show in search (#381)
Resolves MOD-96
2022-06-24 14:26:18 -07:00
github-actions
e245edc843 Bump package version [skip ci] 2022-06-23 06:18:30 +00:00
venashial
8494ed8ac3 Add NavRow animation 2022-06-22 23:17:00 -07:00
stairman06
371f14d2e4 Show report button when logged out (#548) 2022-06-22 22:33:57 -04:00
Emma Cypress
3e5c7f62d0 Update Mojang meta URL (#379)
Urgent, needs to be on prod before the next snapshot comes out
2022-06-22 12:22:19 -07:00
github-actions
1109fbfcc3 Bump package version [skip ci] 2022-06-22 05:48:57 +00:00
venashial
ff88f242fa Run pnpm format 2022-06-21 22:47:15 -07:00
venashial
bd3dd69ae1 Fix package.json + NavRow indicator 2022-06-21 22:37:26 -07:00
github-actions
06780c2805 Bump package version [skip ci] 2022-06-22 04:30:34 +00:00
venashial
e44e227af6 Reorder workflow pnpm installation 2022-06-21 21:29:17 -07:00
venashial
4ca06a9218 Fix workflow NPM publish auth secret 2022-06-21 21:25:22 -07:00
venashial
9e29761581 Fix NPM package script 2022-06-21 19:11:26 -07:00
venashial
110c389d85 Fix packaging index.ts 2022-06-21 19:08:22 -07:00
github-actions
d856ed89ff Bump package version [skip ci] 2022-06-22 00:26:48 +00:00
venashial
fa747515e9 NavRow animation improvements 2022-06-21 17:25:07 -07:00
venashial
b15c9d7655 Fix release workflow (replace pnpmnpm) 2022-06-21 00:45:16 -07:00
venashial
15c3ee4af2 Update release workflow 2022-06-21 00:41:53 -07:00
venashial
748248deab Fix formatting + Update README 2022-06-21 00:38:52 -07:00
venashial
70671ac672 Merge branch 'main' of https://github.com/modrinth/kleos 2022-06-20 23:50:41 -07:00
venashial
f70f670ed3 Skip Typescript compilation on packaging 2022-06-20 23:50:33 -07:00
github-actions
4b685716d5 Bump package version [skip ci] 2022-06-20 22:35:38 +00:00
venashial
252c812125 Add FileUpload component 2022-06-20 15:34:45 -07:00
John Paul
69a437a1a8 StatelessFIleInput: add maxSize and showIcon (#544) 2022-06-20 17:04:08 -04:00
github-actions
b8b36b6248 Bump package version [skip ci] 2022-06-20 04:46:09 +00:00
venashial
28e24cb9d6 .link-group minor fix 2022-06-19 21:45:24 -07:00
github-actions
2a0609fdb8 Bump package version [skip ci] 2022-06-20 04:28:30 +00:00
venashial
b3233cab71 .link fixes + Add Modal defaultData 2022-06-19 21:27:20 -07:00
Geometrically
bf19f5b9c0 Fix auth URL condition again (#378) 2022-06-19 17:20:21 -07:00
Geometrically
08a879bbb1 Fix auth URL condition (#377) 2022-06-19 14:41:41 -07:00
Prospector
405a3eda60 Nuxt Season Finale (#531)
Co-authored-by: Emma Cypress Pointer-Null <emmaffle@modrinth.com>
2022-06-18 21:39:53 -04:00
github-actions
49acfc496b Bump package version [skip ci] 2022-06-19 00:32:08 +00:00
venashial
a1932fa3dc sm Modal size 2022-06-18 17:31:29 -07:00
github-actions
87a8706299 Bump package version [skip ci] 2022-06-18 22:41:11 +00:00
venashial
92ec46147b Modal fixes 2022-06-18 15:40:17 -07:00
Geometrically
cd514285d9 Fix rejected files showing in hash routes (#375)
* Fix rejected files showing in hash routes

* Run prepare and formatter

* Add modrinth.com exception for callback URLs

* run fmt
2022-06-18 14:09:37 -07:00
John Paul
2bda7566b4 Reset version page state when currently selected version changes (#543)
* reset versions state on current version change

* 'mode' should not be reset
2022-06-17 22:19:15 -07:00
github-actions
43488cb57b Bump package version [skip ci] 2022-06-18 02:58:57 +00:00
venashial
137fbb638b Refactor folder structure 2022-06-17 19:58:01 -07:00
Geometrically
782bb11894 Secure auth route, fix quilt deps bug, optimize queries more (#374)
* Secure auth route, fix quilt deps bug, optimize queries more

* Add to_lowercase for multiple hashes functions
2022-06-17 16:56:28 -07:00
John Paul
76ed8d58fa Create StatelessFileInput, use in version.vue (#537) 2022-06-15 17:49:42 -04:00
github-actions
8204139df8 Bump package version [skip ci] 2022-06-14 04:44:37 +00:00
venashial
7926684930 Add Modal triggers 2022-06-13 21:43:57 -07:00
github-actions
73946a4ede Bump package version [skip ci] 2022-06-13 19:49:44 +00:00
venashial
aa88115d45 Add Field 2022-06-13 12:48:43 -07:00
github-actions
496c08b075 Bump package version [skip ci] 2022-06-13 18:47:51 +00:00
venashial
2388d1782f Add license + Fix CI 2022-06-13 11:46:57 -07:00
github-actions
e0e1c59d41 Bump package version [skip ci] 2022-06-13 18:35:46 +00:00
venashial
f2cb6ce972 Add Modal 2022-06-13 11:34:46 -07:00
github-actions
ed3535e9c9 Bump package version [skip ci] 2022-06-11 02:14:34 +00:00
venashial
62f1830197 Improve :focus accessibility & Polish animations 2022-06-10 19:13:28 -07:00
Geometrically
2fb62fe8be Add ratelimit key header on SSR (#532) 2022-06-09 15:34:30 -07:00
Geometrically
355689ed19 Replace ignore IP system with keys (#368) 2022-06-09 15:28:40 -07:00
Geometrically
75614fb13c Move downloads to queue for better performance (#367) 2022-06-09 12:21:51 -07:00
Geometrically
5c4a864680 Fix dep out of bounds error (#366) 2022-06-08 23:03:22 -07:00
Geometrically
eaeff891d6 Reimplement old database code for better performance (#365) 2022-06-08 22:24:20 -07:00
Geometrically
f0ab40d748 Fix update route (#364)
* Fix version updates route

* Run formatter, fix clippy, run prepare
2022-06-08 21:17:17 -07:00
github-actions
3243cbf039 Bump package version [skip ci] 2022-06-07 21:01:36 +00:00
venashial
eb171ecb21 Update CSS guidelines + Prefer rem 2022-06-07 14:00:53 -07:00
Geometrically
e497af4c26 Add deps list for override mods, fix version editing for packs (#363) 2022-06-05 10:42:33 -07:00
Geometrically
43b8941f7a External dependencies list (#518) 2022-06-04 12:43:32 -07:00
Ellemes
0b16839d7f Fix custom license being empty when editing a project. (#527) 2022-06-04 14:02:04 -04:00
venashial
164ba46259 Merge pull request #521 from modrinth/fix/512
Hotfix #512 not showing the correct date
2022-06-04 09:19:19 -07:00
Prospector
b174f7a023 Fix donation URLs hidden when there's no external links (#520) 2022-06-04 11:44:29 -04:00
venashial
c9ec9f14de Run prettier 2022-06-04 00:46:23 -07:00
venashial
597c071c3d Update Permissions class & docs 2022-06-04 00:05:23 -07:00
Geometrically
f860f57363 Fix version editing (#362) 2022-06-02 20:56:12 -07:00
Emma Cypress
91d05434ca Hotfix #512 not showing the correct date
Co-authored-by: Essem <smswessem@gmail.com>
2022-06-01 12:31:35 -04:00
github-actions
5b0aba99bb Bump package version [skip ci] 2022-06-01 04:04:01 +00:00
venashial
87c7d1a5f4 Update ago to respect user's language 2022-05-31 21:03:22 -07:00
github-actions
d841d69bd4 Bump package version [skip ci] 2022-06-01 02:14:22 +00:00
venashial
512bf1d013 Update Option interface for type-checking 2022-05-31 19:13:36 -07:00
Geometrically
02bf5ada89 Increase file size limit (#361) 2022-05-30 16:29:23 -07:00
Essem
adbd58a949 Add date tooltips (#512) 2022-05-30 16:29:07 -07:00
Josiah (Gaming32) Glosson
a0959d2730 Make system theme selectable (#505)
Also fixes #504
2022-05-30 11:33:39 -07:00
UbiOne
f455722bed Added missing PolyMC link from modpack pages. (#499)
* Added missing PolyMC link from modpack pages.

Fix of #498

* Fixed messed up things.
2022-05-30 11:28:38 -07:00
Emma C. Pointer-Null
735d23c9eb fix 'unknown' version in footer (#511)
fixes #483
2022-05-30 11:28:23 -07:00
github-actions
0fd6a23c78 Bump package version [skip ci] 2022-05-29 18:31:07 +00:00
venashial
fd73d8d67e Merge pull request #1 from baka-gourd/main
Add chs date format
2022-05-29 11:30:26 -07:00
venashial
347366e8d7 Fix server-side rendering 2022-05-29 11:29:53 -07:00
github-actions
eb8d4abcbe Bump package version [skip ci] 2022-05-29 04:26:46 +00:00
venashial
86acccebb0 Merge pull request #2 from wafflecoffee/report-types
Add report type tag
2022-05-28 21:26:03 -07:00
Emma Cypress Pointer-Null
8f184f76fa fix formatting 2022-05-28 13:11:01 -04:00
Emma Cypress Pointer-Null
1daabfa3e0 Add report type tag 2022-05-28 13:09:57 -04:00
baka-gourd
90b49106f0 add chs date format 2022-05-28 20:53:24 +08:00
github-actions
1a5638426c Bump package version [skip ci] 2022-05-27 02:17:55 +00:00
venashial
8d4da009af Update prettier config + Run pnpm format 2022-05-26 19:17:15 -07:00
venashial
89571d57bd Fix oled theme, docs, component bugs 2022-05-26 19:16:46 -07:00
4JX
d3b578fe8f Fix wrongfully parsed hashes for the version_files route(s) (#353)
* Fix wrongfully parsed hashes for the version_files route(s)

* Remove the hex dependency

* Remove unwraps

.

.

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2022-05-26 18:32:32 -07:00
Geometrically
d29d910ac6 Add mod lists for modpacks, liteloader support, update actix, fix moderation webhook (#357) 2022-05-26 10:08:19 -07:00
github-actions
5d4e06074a Bump package version [skip ci] 2022-05-26 06:20:56 +00:00
venashial
98522cf6e4 Move utils exports to separate path 2022-05-25 23:20:02 -07:00
github-actions
7cdb751606 Bump package version [skip ci] 2022-05-26 00:23:46 +00:00
venashial
4ffc90f963 Fix CheckBoxList SVG icons + Move docs source 2022-05-25 17:22:54 -07:00
github-actions
8da6572074 Bump package version [skip ci] 2022-05-25 04:40:41 +00:00
venashial
ee64aad670 Merge branch 'main' of https://github.com/modrinth/kleos 2022-05-24 21:39:55 -07:00
venashial
92cee2321f Add "icon" class to generated icons 2022-05-24 21:39:49 -07:00
github-actions
7f969b1252 Bump package version [skip ci] 2022-05-25 04:20:04 +00:00
venashial
a02e2e1fa1 Merge branch 'main' of https://github.com/modrinth/kleos 2022-05-24 21:19:07 -07:00
venashial
d690e1b37a Fix generator API URL & Button props 2022-05-24 21:18:54 -07:00
DioEgizio
3300c2302c add polymc to the list of supported pack launchers (#497) 2022-05-24 10:07:46 -04:00
stairman06
685470cf23 iOS video fix (#496) 2022-05-23 21:53:35 -07:00
stairman06
c545a959ac Mobile category overlap fix (#495)
* mobile spacing fix

* slightly less spacing
2022-05-23 21:53:28 -07:00
Prospector
a7832ef40f Fix font weight on code blocks (#494) 2022-05-23 21:53:22 -07:00
Prospector
3e941999d5 Make modpacks show as an yellow check mark to show it's alpha (#493) 2022-05-23 21:40:27 -07:00
Prospector
bebdfc259c Improved styling of the version file upload button (#492)
* Update SmartFileInput to be styled like the other file input

* Fix gallery upload layout
2022-05-23 21:40:17 -07:00
Prospector
d31a920eb7 Fix gallery floating buttons and text in light mode (#491) 2022-05-23 21:38:25 -07:00
Prospector
ec87821bcd Workaround ModLoader capitalization issue and make loaders list collapsible (#490) 2022-05-23 21:38:17 -07:00
Emma C. Pointer-Null
21df0e32c4 Fix #485 by removing default loader from version filters (#487)
* Fix #485 by removing default loader from version filters

It's really not our place to be imposing a default loader on people, especially as we start adding more loaders

* Fix Clear Filters button and capitalise loaders
2022-05-23 21:38:08 -07:00
stairman06
afaa235c75 Save OR facets in query string (#486)
* Save OR Facets

* revert back to staging
2022-05-23 21:37:56 -07:00
UbiOne
8d97e7136f Project ID removes spaces (Issue #467) (#484)
* Dependency Add fields now only accepts letters

No more annoying spaces, numbers or special characters

* Fixed problem(s)

Now it only disallows spaces
2022-05-23 21:37:41 -07:00
github-actions
89ac422929 Bump package version [skip ci] 2022-05-21 06:26:13 +00:00
venashial
d8d55f032e Fix tag icon generator 2022-05-20 23:25:35 -07:00
github-actions
c83d694c7a Bump package version [skip ci] 2022-05-21 04:48:01 +00:00
venashial
ea55650d45 Merge branch 'main' of https://github.com/modrinth/kleos 2022-05-20 21:47:16 -07:00
venashial
ec1aee60a1 Update brand color & preprocess config 2022-05-20 21:47:14 -07:00
github-actions
3a7a0918d3 Bump package version [skip ci] 2022-05-21 02:54:02 +00:00
venashial
8bf90714da Update utilities and documentation 2022-05-20 19:53:13 -07:00
venashial
d8b59925b0 Update Node version in workflow 2022-05-20 19:52:47 -07:00
venashial
d37fd6bea0 Run pnpm format 2022-05-20 00:10:45 -07:00
venashial
0f6263d82e Add generator plugin 2022-05-20 00:10:15 -07:00
Florentin Schleuß
e7c70945e6 Add skip links for "skip to main content" and "skip to search results" (#445) 2022-05-17 18:31:58 -07:00
UbiOne
095a936891 Fixed GitHub Issue #423 (#453)
Incrased line hights from default to 1.3 at text boxes.
2022-05-17 18:31:46 -07:00
stairman06
c49ce91fac History spam fix (#461) 2022-05-17 18:29:38 -07:00
Geometrically
dd52727055 Fix resubmit for approval button (#478) 2022-05-17 18:29:23 -07:00
Prospector
b48068c63c Add modpacks icon on mobile (#474) 2022-05-16 06:19:08 -04:00
Geometrically
c39d04e8a5 Fix broken discord link (#472) 2022-05-15 22:04:44 -07:00
venashial
0eff8e4bc8 Merge pull request #470 from modrinth/modpack-alpha-fixes
Add modpack page warning + Fix notifications nav titles
2022-05-15 18:39:44 -07:00
venashial
178551a467 Remove console.log 2022-05-15 18:36:41 -07:00
venashial
720739e50a Add modpack page warning + Fix notifications nav titles 2022-05-15 18:27:02 -07:00
venashial
46d1537d8f Modpack alpha release (#469) 2022-05-15 17:54:59 -07:00
Jai A
63b2bb55a1 Fix version editing 2022-05-15 13:06:08 -07:00
Jai A
e7b41f9a4c Urgent fixes 2022-05-15 12:05:44 -07:00
Geometrically
dd0aed4614 Bump version (#348) 2022-05-15 09:27:02 -07:00
Geometrically
b9b4f2bb7f Fix download count logic (#347) 2022-05-14 15:55:02 -07:00
Geometrically
3533d2a2cc Fix search rules, register download route (#346) 2022-05-11 18:09:29 -04:00
Geometrically
26d9ef5398 Rework download route (#345) 2022-05-11 11:32:01 -04:00
github-actions
06c210f5c8 Bump package version [skip ci] 2022-05-08 19:40:47 +00:00
venashial
a545c42047 Add secondary & tertiary buttons + Add utils index 2022-05-08 12:40:10 -07:00
github-actions
da4b4de292 Bump package version [skip ci] 2022-05-08 00:23:15 +00:00
venashial
fd936e5bf3 Update illustrations & icons docs + Fixes 2022-05-07 17:22:33 -07:00
Geometrically
a0f840bcf8 Add quilt validators, Deps fix, Fix slug collisions (#338) 2022-04-24 13:02:41 -07:00
stairman06
33d2a77e37 Maven fix (#337) 2022-04-24 10:55:56 -07:00
Geometrically
dc11340faf Switch loaders to OR filtering (#460)
* Switch loaders to OR filtering

* Add or filters to clear button

* Fix clear filters button again
2022-04-22 11:36:48 -07:00
Jai A
06d921d855 Fix login button 2022-04-18 10:54:15 -07:00
github-actions
91b602341b Bump package version [skip ci] 2022-04-16 23:13:43 +00:00
Prospector
ad853ca342 Add basic slider component 2022-04-16 16:13:13 -07:00
github-actions
14fa3481b0 Bump package version [skip ci] 2022-04-16 07:33:39 +00:00
venashial
2b6fee0455 docs: Fix pnpm-lock.yaml 2022-04-16 00:32:57 -07:00
venashial
a48e6f82d1 docs: Improve example component + Fix sidebar on mobile 2022-04-16 00:29:35 -07:00
Jai A
1020904fe0 Fix #450, Fix 449 2022-04-10 14:58:43 -07:00
github-actions
6aaced0c04 Bump package version [skip ci] 2022-04-03 18:45:37 +00:00
venashial
3646c0d0a3 Remove lodash.uniqueId 2022-04-03 11:45:04 -07:00
github-actions
44c8574f1b Bump package version [skip ci] 2022-04-03 06:19:35 +00:00
venashial
ea1ff65db7 Move svelte config + postcss config to package/config 2022-04-02 23:18:57 -07:00
venashial
85b7147927 Add classes: Actions + Divider + Illustration + InfoTable + Stat, Add utilities (needs docs) 2022-04-02 16:17:58 -07:00
github-actions
6b54c342aa Bump package version [skip ci] 2022-03-31 01:50:02 +00:00
venashial
60720b04db docs: fix breakpoints 2022-03-30 18:49:27 -07:00
github-actions
323a593159 Bump package version [skip ci] 2022-03-31 01:37:04 +00:00
venashial
baef94f14a docs: add mobile support + seo 2022-03-30 18:36:27 -07:00
github-actions
59b3cfee66 Bump package version [skip ci] 2022-03-30 21:05:48 +00:00
venashial
cbc85ca98f Move COMPONENT_API to src/generated 2022-03-30 14:05:15 -07:00
github-actions
425c8cd1d3 Bump package version [skip ci] 2022-03-30 05:07:15 +00:00
venashial
1d7949ded6 Add component API to built docs + Add Checkbox, CheckboxList, & CheckboxVirtualList 2022-03-29 22:06:43 -07:00
stairman06
2507170816 YouTube embed fix (#442) 2022-03-29 21:27:05 -07:00
Emma C. Pointer-Null
2c83425b42 Make newlines behave like GitHub (#441)
fixes #440, fixes #436 too somehow
2022-03-29 21:26:43 -07:00
Geometrically
80e00a80d5 Switch to time crate, add file sizes (#329)
* Switch to time crate, add file sizes

* Update deps, adjust pack format

* Run formatter, fix clippy
2022-03-29 19:35:09 -07:00
github-actions
1da281de8a Bump package version [skip ci] 2022-03-29 07:46:27 +00:00
venashial
98baab4d03 Update docs examples + Add Select component + Add Card, Base, Title classes 2022-03-29 00:44:23 -07:00
Geometrically
a3d5479878 Optimize DB pooling (#328) 2022-03-28 19:39:02 -07:00
Jai A
a49dc04f5d Add download set check 2022-03-27 19:14:39 -07:00
Geometrically
d1c0c9739d Shulkers of fixes (#327)
* Shulkers of fixes

* Fix validation message

* Update deps

* Bump docker image version
2022-03-27 19:12:42 -07:00
Emma C. Pointer-Null
7415b07586 Add more version creation data aliases (#325)
For consistency and also for making the OpenAPI spec a bit less janky
2022-03-24 19:58:07 -07:00
Geometrically
441069aa76 Send authentication headers for all project requests (#431) 2022-03-20 15:29:17 -07:00
github-actions
8c5bf55b51 Bump package version [skip ci] 2022-03-20 18:15:25 +00:00
venashial
b6d6955b39 Add Chips component 2022-03-20 11:14:46 -07:00
github-actions
0d68b1a73e (bot) Bump package version [skip ci] 2022-03-20 07:20:35 +00:00
venashial
15b7c241ff Update style vars + Add examples to docs + Add Avatar, NavRow, Pagination, & Link 2022-03-20 00:19:51 -07:00
venashial
de9c62617b Merge remote-tracking branch 'origin/main' 2022-03-16 23:35:10 -07:00
venashial
a0e05115a3 Add component API to docs (ex: props, events, slots) 2022-03-16 23:34:56 -07:00
Geometrically
023663b268 Fix permissions checks for projects, fix gallery URLs (#321) 2022-03-16 07:49:09 -07:00
Prospector
aaf58272f1 Add an indicator for required fields (#413) 2022-03-15 22:11:00 -07:00
Prospector
5ebaf5663d Add image description, make controls less obtrusive, display native size by default (Fixes #407), Fixed closing modal by clicking out of it (Fixes #405) (#412) 2022-03-15 22:10:30 -07:00
venashial
7dc3e6a08b Bump package version [skip ci] 2022-03-14 07:07:26 +00:00
venashial
5a5f817e59 Manually bump version 2022-03-14 00:06:52 -07:00
venashial
b650320a34 Prevent version bumping from committing tags 2022-03-14 00:03:36 -07:00
venashial
424fd8e4d3 Reorder release workflow 2022-03-13 23:59:51 -07:00
venashial
cfbf80fdfe Commit bumped package version in workflow 2022-03-13 23:48:54 -07:00
venashial
9b8ced2803 Auto bump NPM package 2022-03-13 23:40:17 -07:00
venashial
630a1d42b8 Prepare for NPM + Cloudflare pages 2022-03-13 23:10:58 -07:00
venashial
b69ff6ca8a docs: Improve header + sidebar
docs: Create workflows
lib: Start pagination
2022-03-12 01:34:09 -08:00
Glare
1a23b6178b Fixes confusing text in analytics description (#414) 2022-03-10 12:37:41 -05:00
venashial
de536d7305 docs: Improve theming + introduction 2022-03-10 00:08:59 -08:00
venashial
6dcd33bbc5 Add CSS & Icons docs 2022-03-09 23:17:28 -08:00
venashial
c6df78eb81 Improve docs 2022-03-09 22:18:22 -08:00
venashial
d1babe27ec Start work 2022-03-09 21:27:53 -08:00
Prospector
7596f62ca5 Gallery improvements (#404)
* Redo gallery controls

* Remove old css

* Geo's fixes to the gallery

* Fix filters not updating when clearing them

* Add max width to expanded images

* Center text as it gets super long

* Object-fit: cover

* Fix extra margin 😱
2022-03-08 21:43:06 -07:00
venashial
139e57f1eb Initial commit 2022-03-07 21:55:31 -08:00
Geometrically
e87d85b088 Removes google ads from codebase, fix analytics (#403) 2022-03-07 19:01:38 -07:00
Geometrically
91b79b703c Fix dependency display (#402) 2022-03-07 17:26:40 -07:00
Prospector
bdefa4a967 Fix version dropdowns and add link hover/active colors in markdown (#398)
* Fix version dropdowns and add link hover/active colors in markdown

* Add 'Clear filters' button to version filtering

* *Actually* fix #394

* semicolon
2022-03-07 08:27:10 -07:00
Geometrically
3883c509b9 Bypass compile-time query check (#317) 2022-03-06 21:06:29 -07:00
Prospector
b82efb6e3c Continue the cleanup train (#396)
* Improve links and search page controls... I know it looks kinda insane

* Fix donation padding Fixes #393

* Improve text field styling

* white icon

* Improve pagination and disabled button colors

* Round tab indicator

* Fix rounding of home page points card

* I hate browsers

* Change verbiage of legacy options
2022-03-06 19:34:40 -08:00
Prospector
a50e109043 Some more cleanup to prepare for 2.1.0 release (#395)
* Make syntax highlighting green match the brand color

* Fix version filter control wrapping and not obeying snapshot filter

* Fix checkbox hover state Closes #390

* Update components/ui/VersionFilterControl.vue

Co-authored-by: Emma Pointer-Null <emmaffle@modrinth.com>

* Fix missing hover and active states for various buttons

Co-authored-by: Emma Pointer-Null <emmaffle@modrinth.com>
2022-03-06 15:37:07 -07:00
Emma Pointer-Null
8b5db12e1d Make links on project pages more consistent, fix some selectors showing when they shouldn't (#391)
* Make links on project pages more consistent, fix some selectors showing when they shouldn't

* Update components/ui/VersionFilterControl.vue

Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>

Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2022-03-06 13:35:11 -08:00
Prospector
f1f8163bb7 Add Minecraft version snapshot filter to version edit/create page (#387) 2022-03-05 17:36:15 -07:00
Prospector
c0fac90b52 Improve Multiselect styling to not overlap other elements (#386)
* Make improvements to the Multiselects in VersionFilterControl apply to all Multiselects Closes #384

* Remove unnecessary unset
2022-03-05 17:36:02 -07:00
Prospector
15717ddca0 Fix sorting on version filtering (#389) 2022-03-05 17:35:53 -07:00
Prospector
a7ce9aaca5 Fix bad contrast ratio with secondary text in dark mode (#388)
* Fix bad contrast ratio with secondary text in dark mode

* Add some more accessibility improvements
2022-03-05 17:35:45 -07:00
Prospector
d8df8e1033 Use dropdown SVG for profile dropdown (#379)
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2022-03-05 13:35:05 -07:00
Prospector
440a35e491 Improve the file download icon so it's more obviously a download icon (#377) 2022-03-05 13:10:38 -07:00
Prospector
dbbc6ed0bb Add easier access to the Following page and add scroll support to mobile overflow menu (#382) 2022-03-05 13:09:45 -07:00
Prospector
86fbb383fd Fix changelog textarea being unusably small (#381) 2022-03-05 13:09:31 -07:00
Geometrically
18f34b4f83 Fix dep route again (#316) 2022-03-05 13:09:19 -07:00
Prospector
1c07a74bef Add version filter controls to Changelog and Versions pages (#378) 2022-03-05 09:18:44 -07:00
BasiqueEvangelist
2df93c2ceb Fix download buttons in the changelog page (#376) 2022-03-04 13:16:45 -07:00
Prospector
6ca40afac0 Add expanding gallery images by clicking on them (#371)
* Random css variable cleanup

* Add an option for developers to temporarily switch between staging and production API

* Added a feature to expand gallery images to view them larger.
2022-03-03 21:18:42 -07:00
Jai A
36a8f044ae Show dependency when project version is not found 2022-02-28 16:02:59 -07:00
Jai A
caed86d846 Fix filenames, dep route again 2022-02-28 16:00:12 -07:00
Jai A
276e5453f1 Fix dep project not showing 2022-02-28 10:07:06 -07:00
Geometrically
459e36c027 Run fmt, fix dep route (#312) 2022-02-27 21:44:00 -07:00
Jai A
0f81986684 Fix head attr for version pages 2022-02-27 19:00:35 -07:00
Jai A
bc54e536af Fix lint error 2022-02-27 18:00:19 -07:00
Jai A
acb57b3e9c Remove modpacks from mobile nav 2022-02-27 17:58:07 -07:00
Geometrically
725f8571bb Fix deps, download URLs, remove duplicate deps (#310) 2022-02-26 21:16:11 -07:00
Danielle
b7c7c0e862 Fix download counting (#309) 2022-02-26 08:37:24 -07:00
Geometrically
de0e30de57 Fix version creation, remove obsolete download counters, dep fix (#357) 2022-02-25 07:44:28 -07:00
Danielle
3f671b918a Move download counting to worker (#306)
* Move download counting to worker

* Run `cargo sqlx prepare`

* Format & some Clippy fixes
2022-02-21 19:57:40 -07:00
Geometrically
b8b942cdae Update embed, homepage and project creation fixes (#356) 2022-02-21 16:29:13 -07:00
Geometrically
9492363b22 Fix uploading (#305)
* Upgrade rust-s3 to fix tokio panics

* Run fmt

* Update deps
2022-02-20 20:16:32 -07:00
BasiqueEvangelist
3ee144459f Allow setting primary file when creating version (#304)
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2022-02-20 19:44:59 -07:00
Geometrically
c0c80c0fdf See if RateLimit is cors issue (#303) 2022-02-19 17:51:24 -07:00
Emma
0146a077e8 Bundle of small fixes (#355)
* Bundle of small fixes

![bundle of small fixes](https://i.imgur.com/IkPE3uP.png)

- List items in project body may overflow
- Reduce margin between pagination buttons for better mobile support
- Prevent titles from overflowing in search for better mobile support
- Don't show ThisOrThats with only one item
- Fix style inconsistencies on homepage
- Add more links to homepage to docs, GH, and discord, so they can't be missed

* Appease lint

* Dryer lint isn't even the worst type of lint. It's this.
2022-02-19 13:09:58 -07:00
ramidzkh
7c80b61666 Automatically generate updates.json for Forge mods (#298)
* Automatically generate updates.json for Forge mods

https://api.modrinth.com/updates/{id}/forge_updates.json serves a minimal update JSON for the Forge update checker

Closes #281

* Authenticate update JSON requests

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2022-02-19 13:09:09 -07:00
Jai A
a0fcf515cd Fix default base URL 2022-02-16 18:03:51 -07:00
Jai A
1719ad81a4 Fix home page on chromium 2022-02-16 18:01:34 -07:00
Geometrically
51a9a7b75d Landing page (#353)
* Landing page

* Change legal corp name, remove google from privacy policy, other fixes
2022-02-16 17:39:48 -07:00
Geometrically
d128f3e14e Send CORS wildcard, allow editing of non-accepted team members (#299) 2022-02-15 13:09:10 -07:00
Geometrically
4498b89ac4 Fix lax cors configuration (#295) 2022-02-12 19:57:00 -07:00
Geometrically
e576a58ead Fix error messages, auth routes, and remove category unique constraint (#293)
* Fix error messages, auth routes, and remove category unique constraint

* Run prepare

* Remove debug secrets

* Fix team member editing
2022-02-10 10:56:45 -07:00
Geometrically
eb4375258e Fix routing errors 2 + Version File Response (#290) 2022-02-06 17:54:01 -07:00
Geometrically
0cbc2001e2 Fix routing errors] (#289) 2022-02-06 16:35:52 -07:00
Geometrically
6bf5dbabee Upgrade to Actix V2, bump SQLX version, code cleanup, intergrate ratelimiter (#288)
* Upgrade to Actix V2, bump SQLX version, code cleanup, intergrate ratelimiter

* Add pack file path validation

* Fix compilation error caused by incorrect merge
2022-02-05 23:08:30 -07:00
BasiqueEvangelist
6a89646e66 Support other project types in maven (#284) 2022-02-05 22:19:02 -07:00
Geometrically
e91b0500c5 Fix browser base URL not working 2022-01-28 19:42:01 -07:00
Emma
2a17361a90 Fix issues with new left/right side toggles (#348)
https://canary.discord.com/channels/734077874708938864/734082619352023081/936801072146690079 - "cosmetics toggles v-model the wrong variable"
Also improves formatting of title/description of these options
2022-01-28 19:40:22 -07:00
Jai A
1eca3a8603 Fix right sidebar width being messed up 2022-01-28 18:25:43 -07:00
Geometrically
86f37863a7 Lots of fixes - see trello (#347)
* A ton of fixes

* Fix project deletion message
2022-01-28 18:11:34 -07:00
Emma
f3234a6b5e fix v1 parity issue: local- removed from mod_id field (#283) 2022-01-28 16:04:34 -07:00
Geometrically
73a8c302e9 Fix duplicate dates (#282) 2022-01-25 13:00:32 -07:00
BasiqueEvangelist
989f2d3001 Add support for hashes in Maven (#264)
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2022-01-25 10:57:45 -07:00
Geometrically
2badcfa546 Fix dependency updates and creating versions with no game versions/loaders (#280) 2022-01-24 11:27:39 -07:00
stairman06
643cd87706 Mostly accessibility stuff (#344) 2022-01-20 21:21:13 -07:00
Geometrically
98c85441f8 Fix a lot of bugs - see description (#343) 2022-01-17 21:49:34 -07:00
Prospector
1345f996da Rework user dropdown, redo mobile navigation, improve 'home' page (#342)
* Merge

* Mobile Navigation + home page fixes

* Remove debug line

* Fix "More" menu text
2022-01-17 21:49:10 -07:00
Emma
ff48f08241 Add OpenSearch for searching mods in browser bar (#337)
For more about what OpenSearch is, see [here](https://developer.mozilla.org/en-US/docs/Web/OpenSearch).
2022-01-12 09:37:45 -07:00
Emma
b5f438aa0c Fix various issues reported on the Trello (#341)
* Fix various issues reported on the Trello

* Remove accidental additions
2022-01-12 09:37:20 -07:00
Geometrically
384e14b32d Fix pack URL validation, Version file update route, and spaces in file download URLs (#275) 2022-01-09 15:35:01 -07:00
Redblueflame
a2266adb3f Add initial support for the v2 of the API (Still WIP) (#250)
* Functionally implement modpacks

* Add LogoAnimated to logo license

* Fix eslint errors

* Add `z-index: 20` to user dropdown (#287)

* Fix pages not working, add changelog page, redesign versions page

* Update theme colors, add OLED theme, update some project creation text. (#292)

* Update theme colors, add OLED theme, update some project creation text.

* Make summary normal text color

* Update favicons, update logos to use dynamic colors, updated filters panel a bit

* Update wording from #250

* Version page rework

* Manually apply some commits from master, other minor v2 fixes (#296)

* Homepage styling improvements (#285)

* Add border radius to video + example code colors

* Change color + allow overflow scroll

* Minor v2 fixes

- Makes multiple loaders display correctly (used to be `Fabric,Forge` is now `Fabric, Forge`
- Fix oopses in #292
- Allow .jar and .zip in file prompt
- Apply 30cbd3a6c372940d1e86cc8134d0dfc7e8e5ee9c to pages/create/project.vue
- Display `fabric, forge` instead of broken icons on pages/create/project.vue

* Markdown styling fixes (#268)

* Add table color variables (+ prettier fixes)

* Add details and table styling to .markdown-body

* Add indexing meta value depending on the status of the mod. (#261)

* General UI Improvement (again) (#255)

* Add and fix some stuff

* Add warning when leaving to `mod/create`

* Fix mods/create not working

* Fix a bug & add improvements to a couple moderation aspects (#278)

This PR fixes reports on the moderation dashboard going to `/dashboard/mod/_id` instead of to `/mod/_id`.
It also allows the ability for moderators to unlist mods in the queue from the frontend instead of having to do it via the backend.
![image](https://i.imgur.com/x8shSVn.png)
Unlisted mods should have the ability to resubmit for approval, so I've also changed "Submit for Review" to "Submit for approval", allowing unlisted mods to do that as well.
![image](https://i.imgur.com/OC8Vyfo.png)

* Add project guidelines to Terms page (#275)

* Add project guidelines to Terms page

This adds the project guidelines as outlined [here](https://discord.com/channels/734077874708938864/734077874708938867/806556531491471368).
NOTE: I've made a few tweaks in wording to accommodate this format, so this is not an exact copy.

* Move rules to its own page

* Allow users to login from search page when it is rendered serverside (#272)

* Change `this.$route.fullPath` → `this.$route.path`

* Closes modrinth/knossos#256

* Wrap mod icon and title in link (#273)

* Wrap mod icon and title in link

* Fixes #218

* Editor's note

    Skipped #249 (search was rewritten), #266 (couldn't figure out how to apply it), #270 (didn't seem to apply properly), #252 (manually merged in with #292), #262 (superceded by #270), #282, #271, #277, #283, and #281 (those five didn't get wiped)

Co-authored-by: venashial <venashial.levo@aleeas.com>
Co-authored-by: Redblueflame <contact@redblueflame.com>
Co-authored-by: Johan Novak <wickedtree@wickedtree.codes>

* SSR descriptions, version edit page

* Working version editing + dependency management (besides files)

* Version create page, file functionality

* Fix some issues with the version page

* More versions page fixes

* Project gallery

* Box shadows, user profile page, WIP header

* Finish user dashboard

* Finish search and fix minor issues

* Moderator page + messages, notifications page

* Fix dropdown menu, fix XSS, fix team members page

* Change doc url on main page (#309)

* Re-Fix docs url (#313)

* Clean up. Part 1: Fix immediate problems (#316)

* Clean up tabs and cards CSS a little

* Fix project page; Remove bad styles from search

* Yeet and flatten lots of styles; fix font sizes

* Restyle search; fix moderation

* Fix profile page

* Remove injected SCSS entirely

* Fix a mobile layout overflowing

* Apiv2-support fixes (#320)

* Fix member user_id -> user.id

* Fix incorrect report redirect

* Change theme switcher from button to multiselect

* Fix remaining items

Co-authored-by: Jai A <jaiagr+gpg@pm.me>

* Fix bugs

* Full mobile support, update create project page, fix various bugs

* New Dark Mode brand colors (#325)

* Use "color-brand-hover" for auth-prompt when hover over

* New dark mode brand colors

* Fix new version featured bug

* Remove old home page, other fixes

* Fix error when merging

* Fix prettier error :(

Co-authored-by: Jai A <jaiagr+gpg@pm.me>
Co-authored-by: venashial <venashial.levo@aleeas.com>
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
Co-authored-by: Emma <emmaffle@modrinth.com>
Co-authored-by: Johan Novak <wickedtree@wickedtree.codes>
Co-authored-by: Jai A <jaiagr@pm.me>
Co-authored-by: Mysterious_Dev <40738104+Mysterious-Dev@users.noreply.github.com>
Co-authored-by: Mikhail Oleynikov <contact@falseresync.ru>
Co-authored-by: Christian Popov <30723811+Xrey274@users.noreply.github.com>
2022-01-09 15:19:27 -07:00
Geometrically
016e743653 Fix version deletion (#273) 2021-12-29 22:46:37 -05:00
Jai A
00adf3631a Remove replacing assets index URL in manifest to preserve file integrity 2021-12-20 09:11:40 -07:00
Jai A
09aef18999 Fix incorrect condition for forge and incorrect fabric loader version ordering 2021-12-19 20:51:34 -07:00
Jai A
1d86aac338 Fix java version not being optional 2021-12-19 19:56:56 -07:00
Jai A
80173634a0 Fix java version specifier being in snake case 2021-12-19 19:04:42 -07:00
Jai A
c9598b674c Fix forge erroring out due to wonky version 2021-12-19 18:52:00 -07:00
Jai A
2a588d1e9a Make java stuff public, fix forge erroring out due to ratelimiting 2021-12-19 15:09:36 -07:00
Jai A
5a6c06c8a3 Host all loaders for forge, fix stable markers, add java version to daedalus 2021-12-18 22:55:03 -07:00
Geometrically
b2ef4e9619 Fix modpack env field being required (#270) 2021-12-14 22:25:46 -07:00
Geometrically
9e9d6e45b4 Set pack format content type (#269) 2021-12-14 21:07:43 -07:00
Geometrically
6752457ad8 Pack format changes (#268) 2021-12-14 18:08:53 -07:00
Geometrically
ddcb5cd4d3 Fix game version ordering, fix deleting versions with deps not working (#265) 2021-12-09 18:12:21 -07:00
Geometrically
a54b2db81b Fix gallery creation validation and validators returning incorrect er… (#263)
* Fix gallery creation validation and validators returning incorrect errors

* Remove docker image

* Add URL validation for pack files

* Remove unneeded dependencies
2021-11-30 20:07:23 -07:00
Geometrically
6740124364 Fix search returning incorrect ownership information (#261) 2021-11-24 13:20:25 -07:00
Geometrically
157731e4f8 Remove package lists to preserve space (#260) 2021-11-14 17:49:55 -07:00
Geometrically
2dd1496ef4 Fix HTTPS requests not working in the image (#259) 2021-11-14 16:27:33 -07:00
Geometrically
d1e4e72693 Switch docker image OS (#258) 2021-11-14 14:36:01 -07:00
Geometrically
77e8143290 Fix transferring ownership (#256) 2021-11-13 16:35:21 -07:00
Geometrically
7f791d4919 Move validators to seperate thread, other fixes (#253)
* Move validators to seperate thread, other fixes

* Update rust version in Dockerfile

* Fix notifs not working

* Fix pack validator not enforcing files
2021-11-13 15:46:08 -07:00
Jai A
d7e0468776 Fix library URL being set incorrectly 2021-11-10 18:40:12 -07:00
Jai A
f6c611bbba Add classpath variable for libraries 2021-11-10 17:34:53 -07:00
Jai A
0990ac4fc1 Add forge data to main version info 2021-11-08 20:17:20 -07:00
Jai A
e91f8f693b Add local libs to modrinth maven and other fixes 2021-11-07 18:42:33 -07:00
Jai A
2a7dbda133 Bump version + Fix partial version and full version argument joining 2021-11-03 17:49:58 -07:00
Jai A
793e542312 Bump version 2021-11-02 21:44:59 -07:00
Jai A
240269eb25 Fix lib not parsing maven file extensions 2021-11-02 21:44:31 -07:00
Jai A
c744dc8cc3 Bump library version 2021-11-02 20:25:55 -07:00
Jai A
d596bdb454 Fix import errors 2021-11-02 20:24:51 -07:00
Jai A
bec54b4283 Fix action title 2021-11-02 20:20:55 -07:00
Jai A
061b88f5b5 Fix docker action again 2021-11-02 20:19:43 -07:00
Jai A
8704eff632 Fix docker action 2021-11-02 20:17:12 -07:00
Jai A
fb16f25b07 Fixes in forge universal lib + other things 2021-11-02 19:59:10 -07:00
Jai A
e8057a5c8a Fix incorrect docker registry 2021-10-24 16:22:02 -07:00
Geometrically
3c5edb6171 Delete clippy.yml~ 2021-10-24 16:18:17 -07:00
Jai A
e36a191240 Fix incorrect file names (again) 2021-10-24 16:16:49 -07:00
Jai A
ecdfd65f50 Fix incorrect file names 2021-10-24 16:16:23 -07:00
Jai A
4294081abb Add GitHub actions again 2021-10-24 16:13:04 -07:00
Jai A
5218543c58 Add GitHub Actions 2021-10-24 16:10:38 -07:00
Jai A
d8332a27e5 Finish newer forge versions 2021-10-24 14:25:24 -07:00
Jai A
673658dfd2 Simplify mod loader manifests, start work on new forge profiles 2021-10-19 23:08:44 -07:00
Jai A
6528d3d7da Legacy Forge Support (forgot to git add) 2021-10-17 23:23:27 -07:00
Jai A
16af479b83 Legacy Forge Support 2021-10-17 23:22:23 -07:00
Leo Chen
13187de97d Rustic cleanups, dedups and making the code less hard to read in general (#251)
* typos :help_me:

* (part 1/?) massive cleanup to make the code more Rust-ic and cut down heap allocations.

* (part 2/?) massive cleanup to make the code more Rust-ic and cut down heap allocations.

* (part 3/?) cut down some pretty major heap allocations here - more Bytes and BytesMuts, less Vec<u8>s

also I don't really understand why you need to `to_vec` when you don't really use it again afterwards

* (part 4/?) deduplicate error handling in backblaze logic

* (part 5/?) fixes, cleanups, refactors, and reformatting

* (part 6/?) cleanups and refactors

* remove loads of `as_str` in types that already are `Display`

* Revert "remove loads of `as_str` in types that already are `Display`"

This reverts commit 4f974310cfb167ceba03001d81388db4f0fbb509.

* reformat and move routes util to the util module

* use streams

* Run prepare + formatting issues

Co-authored-by: Jai A <jaiagr+gpg@pm.me>
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2021-10-11 20:26:59 -07:00
Jai A
32850f6770 Fabric support 2021-10-09 14:04:45 -07:00
Jai A
4a7f4bde4a Working mirroring of minecraft metadata 2021-10-05 22:52:17 -07:00
venashial
c518f373df Makes mod editing only send changed data (#286)
* Add getDifferences lib

* Only send mod diff to backend for changes

* Disable fields when lacking permissions
2021-10-02 16:47:59 -07:00
Kir_Antipov
0010119440 Maven repo should return primary file by default (#252)
* Maven repo should return primary file by default

* Added fallback for versions that don't have a primary file
2021-10-02 16:10:16 -07:00
Emma
f4636fdca2 Direct people to docs for contributing (#306)
[no ci]
2021-10-02 14:29:33 -07:00
Emma
91065a6168 [no ci] Remove contributing file and instead direct people to docs (#248)
This fixes a long standing issue where people would point to the frontend homepage where it says 'fully documented' then point to the README here and say 'well that's sure hypocritical'

Thus the branch name :tiny_pumpkin:

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2021-09-26 15:41:10 -07:00
Redblueflame
efa8d5c575 Added monitoring, limited concurent connections (#245)
* reduced the default, and added environment override.

* Using parse is more stable and doesn't fail CI this time :P

* Added support for monitoring
This support is currently basic, but it can be improved later down the road.

* Forgot scheduler file

* Added health check

* Cargo fix

* Update cargo.lock to avoid action fails.

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2021-09-20 21:26:16 -07:00
Mysterious_Dev
4108d7827a Issues Forms (#304)
* Issues Forms

* Fix mistake

* Delete title
2021-09-11 19:26:15 -07:00
Geometrically
04998d0215 Fix gallery validation (again) (#247)
* Remove accidental URL validation for gallery

* Remove accidental URL validation for gallery
2021-09-02 22:39:29 -07:00
Geometrically
d0efa5d3fe Remove accidental URL validation for gallery (#246) 2021-09-01 21:19:49 -07:00
Geometrically
c87e72e08e Switch to alternate query strategy which simplifies code (#244) 2021-09-01 06:04:38 -07:00
Geometrically
efb82847cb Switch to ARRAY_AGG for database aggregations to improve peformance + fix gallery images not showing up (#242) 2021-08-31 15:29:51 -07:00
Geometrically
f37e267a5e Make gallery item featuring exclusive (#241)
* Make gallery featured value exclusive

* Run prepare
2021-08-29 15:18:45 -07:00
Geometrically
69928219a3 Fix project creation hash lookups failing (#239) 2021-08-25 23:18:44 -07:00
apersomany
5ccd40f530 Fixed minor issues (#291)
* Fixed xss sanitizer config for checkboxes

* Fixed typo in version navigation tree href

* Fixed navigation tabs' margins with pure css

* Prettier

For some weird reason my prettier config seems to be different

Co-authored-by: Redblueflame <contact@redblueflame.com>
2021-08-23 14:39:03 +02:00
venashial
8798340d48 Allow Youtube through iframes + using image syntax in markdown (#294)
* Allow iframes in markdown from acceptable sources

* Remove Discord from allowed sources

* Make youtube regex more specific

* Fix prettier not wanting new line for regex

* Extend image syntax to autodetect youtube links

* Fix image rendering to support normal images
2021-08-23 14:34:04 +02:00
Emma
e8d2959350 Add follow count & user ID to user page (#253)
* Add follows & user ID to user page
Closes #192

* Why did package lock change?

* Change name follows -> followers
2021-08-23 14:31:44 +02:00
Geometrically
fdf8845a2f Fix validators (#237)
* Fix file extension checks not working

* Fix validators not validating files of a non-matching extension
2021-08-22 09:11:38 -07:00
Geometrically
4073a7abc3 Force files to be unique, require all new versions to have at least one file (#236) 2021-08-21 19:38:32 -07:00
Geometrically
ffd9a34cf5 Query optimization (#235)
* Optimize version queries and decrease some query complexity

* Run formatter
2021-08-20 16:33:09 -07:00
Johan Novak
07226c6d21 Fix Docs Link (#233)
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2021-08-14 12:39:06 -07:00
Geometrically
b1bc7c1fc2 Add fields to gallery items (#234) 2021-08-05 22:01:26 -07:00
Geometrically
1b33f0cea9 Fix multiple projects query taking seconds to complete (#232) 2021-08-01 19:55:36 -07:00
Geometrically
8ece3b00f5 Fix project dependencies returning invalid values (#231)
* Fix project dependencies returning invalid values

* Run prepare
2021-08-01 16:11:07 -07:00
Geometrically
c9c58b65a6 Optimize dependencies route and change return value (#230) 2021-07-31 19:23:06 -07:00
Geometrically
66becbc4cc Fix dependencies route only showing one dependency per version (#229) 2021-07-28 11:34:47 -07:00
Geometrically
5b8612c919 Fix dependency route having incorrect return value (#228) 2021-07-27 18:48:56 -07:00
Geometrically
430c22e06e Add gallery parameter to meilisearch attributes (#227) 2021-07-27 18:10:40 -07:00
Geometrically
76b62eda3a Allow gallery featuring, add gallery images to search, rename rejection reasons, transfer ownership route (#226) 2021-07-27 16:50:07 -07:00
venashial
bc983162f3 Detect if redirect url contains a query string (#225) 2021-07-27 16:31:41 -07:00
Geometrically
4922598aee Add gallery item deletion + making them optional (#224) 2021-07-21 09:54:29 -07:00
Geometrically
b2f8bb9990 Fix panic on requesting projects (#223) 2021-07-19 14:47:14 -07:00
Geometrically
9ee92fb9e9 Project gallery, webhook fixes, remove cache, re-enable donation URLs (#222) 2021-07-19 11:30:39 -07:00
venashial
f1d838de6b Homepage styling improvements (#285)
* Add border radius to video + example code colors

* Change color + allow overflow scroll
2021-07-17 17:37:40 -07:00
Emma
ec92a4cd34 Fix a bug introduced in #278 ("submit for approval" always being present) (#283)
This fixes a bug where the "Submit for approval" button was always present no matter the project status. These things are finnicky.
2021-07-14 12:10:01 -07:00
Geometrically
b3b9788d37 License clarification on modrinth branding (#282)
* License clarification on modrinth branding

* Add favicon
2021-07-11 14:42:05 -07:00
venashial
67739e8e39 Correctly handle "" as custom license URL (#271)
* Fix `mod.license.url` check

* Fixes modrinth/knossos#267
2021-07-11 09:06:06 -07:00
Emma
be3ed7d380 Improve MIME type detection (fixes #279) (#281)
* Specify which application file types are allowed

* Attempt two

* attempt 3

* Update version edit too

good thing these commits will be squashed!

* Fix warnings
2021-07-11 09:05:21 -07:00
venashial
9b4d58cfe8 Add mod title to mod page meta description (#277) 2021-07-02 10:04:49 -07:00
venashial
fb6a8d999c Mod search fixes (#249)
* Remove all uses of `process.env.domain`

* Revert "Remove all uses of `process.env.domain`"

This reverts commit 5af9b83091f395d3a0f954cf6776494c1cfe7a04.

* Increase minimum amount of pages for pagination

Fixes modrinth/knossos#231

* Detect mod search query removal

Fixes modrinth/knossos#240

* Increase margin on project card categories mobile

Fixes modrinth/knossos#230
2021-07-02 10:04:08 -07:00
venashial
b2f6a06a1f Wrap mod icon and title in link (#273)
* Wrap mod icon and title in link

* Fixes #218
2021-07-02 10:02:55 -07:00
venashial
f7da32702f Allow users to login from search page when it is rendered serverside (#272)
* Change `this.$route.fullPath` → `this.$route.path`

* Closes modrinth/knossos#256
2021-07-02 10:02:15 -07:00
Emma
219d2246fa Add project guidelines to Terms page (#275)
* Add project guidelines to Terms page

This adds the project guidelines as outlined [here](https://discord.com/channels/734077874708938864/734077874708938867/806556531491471368).
NOTE: I've made a few tweaks in wording to accommodate this format, so this is not an exact copy.

* Move rules to its own page
2021-07-02 10:01:24 -07:00
Emma
979b5eb89c Fix a bug & add improvements to a couple moderation aspects (#278)
This PR fixes reports on the moderation dashboard going to `/dashboard/mod/_id` instead of to `/mod/_id`.
It also allows the ability for moderators to unlist mods in the queue from the frontend instead of having to do it via the backend.
![image](https://i.imgur.com/x8shSVn.png)
Unlisted mods should have the ability to resubmit for approval, so I've also changed "Submit for Review" to "Submit for approval", allowing unlisted mods to do that as well.
![image](https://i.imgur.com/OC8Vyfo.png)
2021-07-02 09:58:29 -07:00
venashial
a58811b1bf Fix notifications not being able to be dismissed (#270)
* Change undefined check to null check

* Make notification index and action index more clear

Fixes #178
2021-06-21 21:32:17 +02:00
venashial
be0e18d4b0 Markdown styling fixes (#268)
* Add table color variables (+ prettier fixes)

* Add details and table styling to .markdown-body
2021-06-21 21:06:11 +02:00
Geometrically
981bf1d56f Fix caching bug, and moderation webhook being sent at the wrong time (#215) 2021-06-19 22:01:11 -07:00
macbrayne
fea6f0ce81 fix #237 by alphabetically sorting the licenses (#266) 2021-06-19 21:17:41 +02:00
Johan Novak
5859ac7a58 General UI Improvement (again) (#255)
* Add and fix some stuff

* Add warning when leaving to `mod/create`

* Fix mods/create not working
2021-06-17 22:03:12 -07:00
Geometrically
d2c2503cfa Final V2 Changes (#212)
* Redo dependencies, add rejection reasons, make notifications more readable

* Fix errors, add dependency route, finish PR

* Fix clippy errors
2021-06-16 09:05:35 -07:00
venashial
566833da6e Fix first notification not performing action (#262)
* Change IF statement to accept 0

* Get rid of console.log()
2021-06-10 13:44:26 -07:00
Redblueflame
d174602cc0 Add indexing meta value depending on the status of the mod. (#261) 2021-06-10 07:17:03 -07:00
Geometrically
2a4caa856e More APIv2 Fixes (#210)
* Refactor search to not spam the database with queries, new utility routes for V2

* Run prepare

* More V2 Fixes

* Run prepare + formatter
2021-06-05 20:59:21 -07:00
Emma
46bc04f69f Adjust quite a bit of wording (#252)
* Adjust quite a bit of wording
Also converts many title case things to sentence case (fixes #238)

* Change advised to recommended

* Oops, I missed a page

* That page too

* Missed a spot
2021-06-05 20:34:43 -07:00
Geometrically
157962e42a Improve peformance of search indexing, v2 fixes + new routes (#205)
* Refactor search to not spam the database with queries, new utility routes for V2

* Run prepare
2021-06-02 18:33:11 -07:00
Geometrically
16db28060c Project Types, Code Cleanup, and Rename Mods -> Projects (#192)
* Initial work for modpacks and project types

* Code cleanup, fix some issues

* Username route getting, remove pointless tests

* Base validator types + fixes

* Fix strange IML generation

* Multiple hash requests for version files

* Fix docker build (hopefully)

* Legacy routes

* Finish validator architecture

* Update rust version in dockerfile

* Added caching and fixed typo (#203)

* Added caching and fixed typo

* Fixed clippy error

* Removed log for cache

* Add final validators, fix how loaders are handled and add icons to tags

* Fix search module

* Fix parts of legacy API not working

Co-authored-by: Redblueflame <contact@redblueflame.com>
2021-05-30 15:02:07 -07:00
venashial
bb8fd5500d Remove all uses of process.env.domain (#247)
* Remove all uses of `process.env.domain`

* Remove broken link on logout on revoke token page
2021-05-28 22:39:35 -07:00
Geometrically
d0df105dda Move auth domain to public runtime config (#246)
* Allow specifying a custom auth URL

* Readd default

* Move Host URL to top

* wat

* Move auth domain to public runtime config
2021-05-28 21:32:06 -07:00
Geometrically
a061fb5421 Allow specifying a custom auth URL (#245)
* Allow specifying a custom auth URL

* Readd default

* Move Host URL to top

* wat
2021-05-28 13:57:13 -07:00
Redblueflame
fd17e5a4c0 Add retrying logic for ethical ads, add variable for the API url (#244) 2021-05-28 13:20:22 -07:00
Geometrically
cd8bc7a7a1 Fix base URL conflicting with default axios ones (#243) 2021-05-28 12:43:44 -07:00
Geometrically
e22a586a41 Allow Base URL to be set by environment variable (#242)
* Switch site to use axios base url

* Fix team invites

* Fix find/replace setting the wrong thing

* Fix analytics being blocking, small issues

* Allow base url to be set by env variable
2021-05-28 12:26:05 -07:00
Geometrically
5017c5a5f1 Use base URL for axios (#241)
* Switch site to use axios base url

* Fix team invites

* Fix find/replace setting the wrong thing

* Fix analytics being blocking, small issues
2021-05-28 10:19:13 -07:00
venashial
03cbab5267 Checkboxes: use v-model value prop instead of "checked" prop (#227)
* Use v-model value prop instead of "checked" prop

* Scope CSS & Rename component

* Mod settings: Update prop & make Owner check all
2021-05-27 21:00:44 -07:00
venashial
2c22837d9f Fix notification & follow list sorting, Add notification badge + loading animation (#206)
* Order notifications and followed mods

Fixes modrinth/knossos#195

* Add user notification badge on avatar

Closes modrinth/knossos#145

* Add loading animation

* Chain calls, remove console.log

* Chain calls

* Fix formatting to match prettier

* Remove unused userFollows

* Create user vuex store

* Add notification count indication on dashboard

* Fix background for light mode

* Move delay check to action, add force parameter

* Slightly decrease notification badge opacity on dashboard

* Remove SVG for image masking, use border around bubble

Also adds CSS for when the dropdown is opened/hovered

* Fix merge conflicts

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2021-05-27 09:32:34 -07:00
venashial
4d64df37f5 Versatile auth URLs & many UI fixes (#199)
* Make project cards right-align their last element

Spaces out elements in a `.project-card` using `justify-content: space-between;`.

Fixes modrinth/knossos#170

* Automatically set URL for auth redirect

* Make login button use base url or current origin

Allows the login button to work in dev environment

* Remove Axios base URL trailing slash

* Update authUrl() on dashboard to match default

* Remove 'code' query from URL on page load
Allow non-exact paths to highlight mod & dashboard tabs

Fixes modrinth/knossos#200

* Make page 5 button visible on page 4 (pagination)

Fixes modrinth/knossos#184

* Color links on legal pages

Fixes modrinth/knossos#166

* Set max notifications to 5 and ignore duplicates

Fixes modrinth/knossos#175

* Add space above report button when no user desc

Fixes modrinth/knossos#143

* Better text spacing from edge of mobile screen

Fixes modrinth/knossos#179

* Fix slanted bars in modrinth/knossos#57

* Fix checkbox grid and role label

Fixes modrinth/knossos#191

* Move mod 'settings' button to the far right

Fixes modrinth/knossos#138

* Abbreviate minutes to min. when time is too long

Not a perfect solution imo, but works for now

Fixes modrinth/knossos#193

* Fix mobile header margins & add breakpoints

Fixes modrinth/knossos#203

* Clean up nuxt config
Silence babel warning & styleResources

* Upgrade sass-loader to 10.1.1 and remove warning

* Remove added horizontal footer padding

https://github.com/modrinth/knossos/pull/199#discussion_r629011624

* Improve mobile header fix

* Fix up minor inconsistencies in mod header

* Remove hard coded date

* Cleans up pagination to be more intuitive

* Fixes member invite input on moble

* Fix login button when searching mods

* Improved mobile mod search

Consistently sized pagination buttons

Breakpoint for sort buttons on smaller screens

* Consistent link style on text-only pages

* Better 4k support

* Slightly better mobile project-card support

Shuffles categories under mod icon when there is room

* Animate homepage typewriter effect backwards

* Tiny commit to align mod icons in mod headers

* Make processing status include 'Under Review'

This can be later updated once the backend has a separate status

* Create vercel.json

* Update domain auto detection

* Test vercel NODE_ENV

* Remove console.log for debugging hosting services

* Make mobile first + fix shrinked text circle size

* Optimize SVG

* Change media queries to be more mobile first

* Remove `|| window.location.origin`

* re-deploy vercel

* Change "Processing" message to "Under review"
2021-05-27 09:27:13 -07:00
Geometrically
b224f1d78d Fix descriptions not showing for some mod pages (#228) 2021-05-26 13:45:21 -07:00
venashial
52e018989d Add show snapshots to URL + Add snapshot checkbox (#210)
* Add show snapshots to URL + Add snapshot checkbox

* Revert spacing changes

* Make checkbox more reusable

* Use new checkbox for team permissions

* Remove XMLNS from imags/utils SVGs
2021-05-25 22:26:14 -07:00
Johan Novak
eb14193b23 Small Landing Page Fixes (#226)
* Front Page Fixes

* add webm video format
2021-05-25 22:24:44 -07:00
Redblueflame
001c2c88cd Fixed issue where ads would not show in some places. (#225) 2021-05-24 09:58:59 -07:00
venashial
98ab83976e Hide report button on user's own page (#222)
* Create vercel.json

* Add user ID check to report button

* Revert "Create vercel.json"

This reverts commit 3b261f09faa25fec6409fb3ddfc7b56d68ffb348.
2021-05-20 15:55:45 -07:00
Redblueflame
9cd5bf2992 Fixed issue where ads would not show in some places. (#216) 2021-05-20 15:44:21 -07:00
venashial
e876712af5 Revert "Fix report on own user page (#220)" (#221)
This reverts commit 9fc8d66601.
2021-05-20 15:40:17 -07:00
Mysterious_Dev
9fc8d66601 Fix report on own user page (#220) 2021-05-21 00:18:29 +02:00
Redblueflame
12d86493bf Switch ads provider, and switch the analytics system to Ariadne (#214)
* Switch ads provider, and switch the analytics system to Ariadne

* Fix CI error

* Remove debug messages and errors

* Updated nuxtjs
2021-05-18 07:48:26 -07:00
venashial
c97cba69b9 Client-side/server-side filters (#204)
* Add client and server side categories

* Quick fix for mistyped facet

* Get rid of console.logs used for debugging

* Re-add eslint overrides

* Optimize SVG

* Simplify .includes() checks
2021-05-16 12:35:46 -07:00
Jai A
63ed7a734b Fix downloading files on version pages not working 2021-05-11 20:23:26 -07:00
Geometrically
0e338ef453 Move mod pages to nuxt child (#201)
* Move mod pages to nuxt child

* Minor fixes

* Fix lockfile
2021-05-10 21:35:03 -07:00
Jai A
d914b38f9f Fix some page components not being imported 2021-05-02 16:22:52 -07:00
Geometrically
3ee00a4824 Remove analytics (#197) 2021-05-02 14:58:27 -07:00
Mysterious_Dev
5198c69f6b Fix "Available For" None (#189) 2021-04-28 20:13:52 -07:00
Emma
40704c4549 Add more detailed infos to about page (#180) 2021-04-24 19:54:33 -07:00
Milan
83df59e5f1 Allow webp images on mod creation (#186) 2021-04-24 19:53:48 -07:00
Milan
246602e275 Allow webp images on mod edit (#185) 2021-04-24 19:53:39 -07:00
Emma
d3449609da Add 'Switch to Dark/Light Mode' to header & footer (Fixes #174) (#177)
* Add 'Switch to Dark/Light Mode' to footer (Fixes #174)

* Cursed mess

* Adds mobile header dark/light mode toggle

I do not like CSS.
Mobile works fine, desktop does not

* Remove unused div & other things I don't remember

* Fixes dark/light mode toggles on desktop

Also simplifies css for footer slightly.
Sometimes a good night's sleep really does do ya good.
https://cdn.discordapp.com/attachments/745980892735864953/835256687803367464/modrinth-2021-04-23_16.50.59.webm

* that was a mistake for the login button but it actually works well
2021-04-24 19:52:49 -07:00
Mysterious_Dev
a872058704 Fix page title for dashboard (#181)
* Fix page title for dashboard

* Fix Notifications page title

* Fix My Mods title

* Fix M lowercase
2021-04-24 19:51:39 -07:00
Mysterious_Dev
3033376028 Fix "Available For" field who is set to None (#183)
* Fix "Available For" field who is set to None

* Fix 2
2021-04-24 19:51:02 -07:00
Mysterious_Dev
712424c339 Add alphabetically sorting (#190) 2021-04-24 19:44:11 -07:00
Redblueflame
0bda636113 Added mobile friendly ads & ads (#161)
* Fix spacing issues on mobile

* Added back linting on modules directory.
Please don't look at the dirty fixes :x

* Add support for responsive ads.

* Add lazy loading of images.
2021-04-15 06:48:33 -07:00
Geometrically
28092d6862 Remove analytics consent (#163)
* Remove analytics consent

* Use watch for cookie popup visibility

* Fix double scrollbar, delete account not centered
2021-04-11 14:31:21 -07:00
Jai A
cecafb726c Change auth token lifetime 2021-04-11 11:39:05 -07:00
Jai A
8418c21096 Fix privacy settings not reflecting cookie values 2021-04-11 11:21:41 -07:00
Redblueflame
c4ace1972a Fix server error (#160) 2021-04-11 19:41:19 +02:00
Redblueflame
862df1d2df Fixed double scrollbar (#159) 2021-04-11 10:03:52 -07:00
Redblueflame
487c1a58d6 Fix issues (#158)
* Fix accept all button simply not working

* Switched privacy settings icons to a shield
Fixed auth changing the theme and consent
Fixed server error on log in / out

* Fixed scrolling issue on mobile

* Fixed GPDR concerns
2021-04-11 08:21:07 -07:00
Geometrically
c06c3d48d2 Partial Mobile Support (#156)
* Add partial mobile support

* Remove file used for seperate PR

* Add mobile support for cookie consent, make dropdown close on page change
2021-04-10 22:51:10 -07:00
Jai A
7d3ad5a639 Fix issues with privacy settings 2021-04-10 21:54:16 -07:00
Redblueflame
03b2d02742 Change ads provider, and add consent system for advertising (#155)
* Add GAM integration & base for GPDR consent

* Moved consent to a specific page.

* Added functionality to the privacy page, and desactivate tracking if consent is not given.

* Added GeoEdge support, and fixed auth issues

* Fix actions issue

* Fix actions issue, attempt 2

* Added a module for analytics with consent support.

* Remove unnecessary function

* Add support for runtime config
2021-04-08 19:44:25 -07:00
Ruby
103ce44ba9 Update _id.vue (#152)
* Update _id.vue

https://discord.com/channels/734077874708938864/734077874708938867/828344523205246976
@Geometrically

* fix eslint?

* fix eslint
2021-04-04 19:38:37 -07:00
BasiqueEvangelist
22219af133 Fix adding team members (#153) 2021-04-04 19:38:20 -07:00
Emma
7d7377ab15 Fix two typos & clarify some wording (#147)
* Fix two typos

* Clarify a bit of wording
2021-03-31 18:59:29 -07:00
Redblueflame
af8fc53704 Layout refactor (#150)
* Revert recent commits

* Move things around, and do preparation work for nested page systems.

* Fixed issue on side bar not appearing
2021-03-31 19:09:18 +02:00
Jai A
e80a5d82a4 Fix icons not showing up 2021-03-30 21:52:04 -07:00
Jai A
2b73e745da Bring back popup 2021-03-30 21:45:49 -07:00
Jai A
e61a1080f7 Organize components, switch auth to not use session 2021-03-30 21:38:12 -07:00
Redblueflame
464f336790 Confirm popups (#135)
* Added confirmation popup for account deletion
(I nearly deleted my account twice, please help me)
Added component for easy adding of new confirmation popups.

* Add confirmation popup for mod deleting

* Add confirmation popup for version & file deletion

* Changed the placeholder to a generic value
2021-03-30 09:02:45 -07:00
Redblueflame
1dc6e085cc Ordered the licences in alphabetical order, and put custom at the bottom (#134)
* Ordered the licences in alphabetical order, and put custom at the bottom.

* Fixed package-lock.json version change
2021-03-30 09:02:26 -07:00
Redblueflame
8594ff0c23 Automatic redirection once you create a new version (#137) 2021-03-30 08:43:28 -07:00
Redblueflame
e58963410e Added illustration & mezssage when a page doe not contain any mod / projects (#133)
* Added new messages with illustration displaying that this page does not contain any elements
Fixed 404 error after deleting mod

* Fixed typo
2021-03-30 08:41:20 -07:00
Jai A
1e0d118930 Final auth fix 2021-03-29 19:15:18 -07:00
Jai A
723e6dd13f Fix auth again 2021-03-29 18:34:57 -07:00
Jai A
e941af0905 Fix broken login button 2021-03-29 18:14:06 -07:00
Geometrically
24c8e29691 More secure custom authentication solution (#126)
* Remove Nuxt Auth from the project, and switch to a custom solution

* Replace old testing code

* Remove warnings

* Add comments to hard to understand function calls in middleware

* Use arrow functions
2021-03-29 09:43:00 -07:00
Siphalor
8911bdf966 Fix #85 (Notification icon sized incorrectly for short user names) (#127) 2021-03-29 17:15:39 +02:00
Redblueflame
0834759e1a Add version support for the docker builds & local builds. (#128)
Add experimental support for github actions
2021-03-29 16:51:49 +02:00
BasiqueEvangelist
15c56dfcb8 Maven endpoint support (#180)
* Basic maven endpoint

* Clean up maven endpoint

* cargo sqlx prepare

* Minor cleanup

* Remove indentation

* Borrow &str instead of &String

* Refactor mod_data-getting
2021-03-29 10:36:55 +02:00
Redblueflame
b98ad47618 Fixed spacing (#181)
Co-authored-by: 0SoggyMustache0 <george@georgekazan.dev>

Co-authored-by: 0SoggyMustache0 <george@georgekazan.dev>
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2021-03-28 22:30:56 -07:00
Redblueflame
4778c5f5e8 Github container repository support (#183)
* Add GHCR support

* Add layer caching
2021-03-28 14:01:19 -07:00
MulverineX
d041671dc5 Update banner URL & Fix spelling (#105)
* Update banner URL

From https://gist.github.com/MulverineX/6f0a27bc67692f14567816ce1c3f7710 instead of a discord attachment

* Fix spelling of proper laboratory

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
Co-authored-by: Redblueflame <contact@redblueflame.com>
2021-03-28 12:40:21 -07:00
Redblueflame
bb8c0d264e Github Container Registry support (#125)
* Initial tests for ghcr.io integration

* Fixed login issue

* Try with only GHCR

* Removed unused system

* Time to break everything with hub.docker.com support

* Fix format error

* Update dockerfile to use latest recommended version of nodejs.
2021-03-28 12:27:17 -07:00
Redblueflame
c7da8c5fd3 Follow page, and edit button consistency (#123)
* WIP: Added base for follow page

* Updated style for moderation page, and added label for unfollow button (not sure about that one)

* Fixed overflow issue, and width of element

* Updated npm to restore the package-lock.json file
2021-03-28 09:20:40 -07:00
Geometrically
5cab65d197 Fix #178 (#179) 2021-03-26 22:10:30 -07:00
Jai A
30789ff6e2 Merge 2021-03-26 22:08:13 -07:00
Jai A
e6ece10716 Fix #9, Fix #42, Fix #48, Fix #95, Fix #96, Fix #97, Fix #99, Fix #119. Fix 120 2021-03-26 22:07:15 -07:00
TheEpicBlock
ea7a255006 Implement header ids (#115) 2021-03-14 10:46:47 -07:00
Jai A
98df1f5312 Follows + Reports 2021-03-11 18:14:11 -07:00
Jai A
b5bf627fb1 Fix ID serialization being broken on report create route 2021-03-11 15:52:38 -07:00
Jai A
6104150b77 Fix users not being able to see their own unapproved mods 2021-03-11 10:32:47 -07:00
Jai A
a13bae2f39 Fix report create route 2021-03-10 20:20:37 -07:00
Jai A
fd80e98207 Register report type routes 2021-03-09 21:18:04 -07:00
Jai A
f43b95f001 Fix primary files not showing when requesting multiple versions 2021-03-09 13:40:19 -07:00
Geometrically
38802d3522 Fix primary files, file deletion, checks for mod following, fix user following route (#175) 2021-03-08 12:52:48 -07:00
Jai A
9f7813622d Fix team invites 2021-03-07 20:46:04 -07:00
Jai A
75d67207aa Register users notification route 2021-03-07 18:53:38 -07:00
Jai A
e596a8f731 Fix search 2021-03-07 18:44:24 -07:00
Jai A
5b0cc73792 Change server side and client side fields to optionals 2021-03-07 17:52:04 -07:00
Jai A
2163d4465f Fix license field not working: 2021-03-07 17:07:32 -07:00
Jai A
8becf45714 Fix broken search 2021-03-07 16:39:47 -07:00
Jai A
2bf08787d8 Switch notifications to new route, fix normal text from being bright white 2021-03-07 16:12:11 -07:00
Jai A
853ead26ca Register notification routes, add action method for notifications, and fix auto-featuring versions 2021-03-06 13:47:49 -07:00
Geometrically
0ccb6cb873 Follows (#172)
* Follows initial

* Fix #171, Fix #170, Fix #169, Fix #164

* More work on follows

* Fix compile error

* Upgrade meili version, add follows to search
2021-03-04 20:35:23 -07:00
Prospector
b8f7e4211c Clarify that monetization is not yet available (#110) 2021-02-25 07:34:53 -07:00
BasiqueEvangelist
e46ff3de8b Add slug validation (#168) 2021-02-23 08:04:10 -07:00
BasiqueEvangelist
b581d0c44f Fix uploading files to existing versions (#106) 2021-02-20 20:37:17 -07:00
Jai A
0b613812f7 Fix #93, Fix #105, Add Mod Secondary Nav Bar, Add featured versions, Remove page transition, Make load bar smaller 2021-02-14 12:02:23 -07:00
Geometrically
a02e08a879 Fix featured versions sorting (#166)
* Reports WIP

* Finish reports

* Clippy fixes

* Fix featured versions sorting

Co-authored-by: Geometrically <geometrically@pop-os.localdomain>
2021-02-13 22:38:00 -07:00
dependabot[bot]
4d066a762f Bump marked from 1.2.0 to 2.0.0 (#104)
Bumps [marked](https://github.com/markedjs/marked) from 1.2.0 to 2.0.0.
- [Release notes](https://github.com/markedjs/marked/releases)
- [Changelog](https://github.com/markedjs/marked/blob/master/release.config.js)
- [Commits](https://github.com/markedjs/marked/compare/v1.2.0...v2.0.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-02-13 13:00:14 -07:00
Geometrically
109d7d87bd Reports (#165)
* Reports WIP

* Finish reports

* Clippy fixes

Co-authored-by: Geometrically <geometrically@pop-os.localdomain>
2021-02-13 12:11:13 -07:00
Geometrically
3df740702c Fix version hash (#154) 2021-01-30 16:51:32 -07:00
Geometrically
8a30a65818 Fix lint 2021-01-29 20:53:57 -07:00
Geometrically
01703aff43 Visual fixes 2021-01-29 20:49:13 -07:00
Geometrically
06bb6f7bff Dependencies, fix panic on version get, Filtered Versions route (#153) 2021-01-29 20:35:29 -07:00
Mysterious_Dev
9d62931af9 Fix Discord and wiki not open new tab (#94) 2021-01-29 16:05:47 -07:00
Geometrically
e33738a876 Fix queries, also add error message for database (#152) 2021-01-28 14:36:53 -07:00
Geometrically
f887f5dca3 Return database error so I can actually debug this 2021-01-28 11:15:29 -07:00
Geometrically
257c16690a Merge pull request #151 from modrinth/fix-duplicates
Fix some mods and versions 'dissapearing'
2021-01-28 09:36:23 -07:00
Geometrically
7114e88992 Merge branch 'master' into fix-duplicates 2021-01-28 09:08:08 -07:00
Geometrically
de7e869ca9 Fix some mods and versions 'dissapearing' 2021-01-28 09:07:10 -07:00
Geometrically
eaee9c9522 Merge pull request #150 from modrinth/fix-duplicates
Fix several bugs
2021-01-27 16:01:03 -07:00
Geometrically
bee11a6d41 Fix several bugs 2021-01-27 15:43:44 -07:00
Geometrically
647e44147f Merge pull request #149 from modrinth/fix-version-get
Fix version get
2021-01-27 09:18:08 -07:00
Geometrically
4a5d46915d Fix version get 2021-01-27 08:46:38 -07:00
Geometrically
8ad19585cb Merge pull request #148 from modrinth/sentry
Sentry Integration
2021-01-27 07:27:21 -07:00
AppleTheGolden
951a33fae9 Add Sentry integration 2021-01-27 14:38:18 +01:00
Geometrically
bcf174cd1e Delete labelsync.yml 2021-01-25 15:27:04 -07:00
Geometrically
1e82909f58 Update issue templates 2021-01-25 15:23:07 -07:00
Geometrically
33e83b8414 Merge pull request #144 from modrinth/query-optimizations
Fixes
2021-01-25 14:43:43 -07:00
Geometrically
592c56cb20 Merge branch 'master' into query-optimizations 2021-01-25 14:43:36 -07:00
Geometrically
710528c01a Fixes 2021-01-25 14:42:26 -07:00
Geometrically
03cadc2604 Delete labels.yml 2021-01-25 14:35:57 -07:00
Geometrically
dd73bb95a4 Merge pull request #143 from modrinth/query-optimizations
Query Optimization
2021-01-25 14:14:42 -07:00
Geometrically
40e0a55378 Merge branch 'master' into query-optimizations 2021-01-25 13:51:48 -07:00
Geometrically
269884d9f3 Fix docker build failing 2021-01-25 13:15:32 -07:00
Geometrically
fcd548c313 Fix queries not working 2021-01-25 13:00:04 -07:00
Geometrically
140a8b6804 Fix docker image build failing 2021-01-24 22:49:28 -07:00
Geometrically
b5378c1296 Query Optimization 2021-01-24 21:33:32 -07:00
Prospector
e53d8fd4fa Mod icons link to the mod page (#92) 2021-01-23 22:16:03 -07:00
Prospector
0dbde32ed4 Attempt to fix flex-shrink issue with Safari (#90) 2021-01-23 17:51:08 -07:00
Geometrically
1445d6ea8c Merge pull request #142 from modrinth/follows
Hotfix everything broken
2021-01-23 11:49:12 -07:00
Geometrically
5385431051 make compile 2021-01-23 11:37:25 -07:00
Geometrically
f14f4498fb Hotfix everything broken 2021-01-23 11:32:32 -07:00
Geometrically
d506fdb68c Merge branch 'master' of https://github.com/modrinth/knossos 2021-01-22 22:44:07 -07:00
Geometrically
9c10186158 Mod page fixes, better ad wrapper to make it look better with the site 2021-01-22 22:43:55 -07:00
boredomh1
3eed51dbac Fix summary tags being always escaped by XSS (#84)
* Fix summary tags being removed by XSS

* Follow falseresync's suggestion

Co-authored-by: joaoh1 <joaoh1@users.noreply.github.com>
2021-01-21 14:40:09 -07:00
Geometrically
1c1855f0c3 Fix possible (?) page hang 2021-01-18 11:40:44 -07:00
Geometrically
e0a277fa45 Fix version ordering 2021-01-18 11:15:34 -07:00
Geometrically
3d6c7171d2 Remove version moderation 2021-01-18 10:47:04 -07:00
Geometrically
fc2786f5e8 Merge pull request #138 from modrinth/fixes
A number of fixes
2021-01-18 10:46:17 -07:00
Geometrically
174dbb5e74 Fix auth params, Add params to indexing, Order version game versions, Remove version moderation, Return donation platforms in get routes 2021-01-18 10:10:45 -07:00
Geometrically
0fee90e4df Fix broken placements 2021-01-18 08:56:41 -07:00
Geometrically
0cced44491 Switch to Google Adsense 2021-01-17 20:14:10 -07:00
Geometrically
f21f758591 Fix #81, Fix #82, Add missing data to mod pages, donation platforms WIP 2021-01-16 22:54:37 -07:00
Geometrically
68517c15f2 Merge pull request #136 from modrinth/small-fixes
Fix version number editing
2021-01-15 08:18:15 -07:00
Geometrically
11ee142e4b Merge branch 'master' into small-fixes 2021-01-15 07:59:39 -07:00
Geometrically
51e9527d53 Fix #78 2021-01-15 07:52:25 -07:00
Geometrically
1e1d047e07 Run prepare 2021-01-15 07:48:37 -07:00
Geometrically
62f1e39e6e Fix version number editing 2021-01-15 07:45:59 -07:00
Geometrically
05756da495 Merge pull request #135 from modrinth/fix/file-upload-permissions
Fix #134
2021-01-15 07:36:43 -07:00
Mikhail Oleynikov
fa35b2a66f Fix #134 2021-01-15 16:13:08 +03:00
Geometrically
268cd131dc Fix mod body editing 2021-01-14 22:44:33 -07:00
Geometrically
26997ad5c3 Fix delete button showing for unauthorized users 2021-01-14 21:54:46 -07:00
Geometrically
ce1786f128 Version editing, user, mod, version deletion 2021-01-14 21:43:58 -07:00
Geometrically
d2094e2b68 Merge pull request #132 from modrinth/move-descriptions
Bug Fixes
2021-01-14 13:41:09 -07:00
Geometrically
075b2df738 Fix lint failures 2021-01-14 12:23:39 -07:00
Geometrically
ec3c31a106 Move descriptions to database, switch to SHA-512 hashes, fix declining invites not working, allow user deletion, fix broken permission checks for many things, security fixes 2021-01-14 10:08:38 -07:00
Geometrically
888057f64a Fix version sorting 2021-01-12 07:48:38 -07:00
Geometrically
3c6c4d9601 Merge branch 'master' of https://github.com/modrinth/knossos 2021-01-11 14:04:22 -07:00
Geometrically
5e8bcf8faf Version moderation 2021-01-11 14:01:56 -07:00
Mikhail Oleynikov
0d6f2f93bf Select only a subset of hljs languages (#70) 2021-01-05 08:22:26 -07:00
Geometrically
937b00cfcc Fix accepting team invites on frontend 2021-01-03 17:55:01 -07:00
Geometrically
0d4432720c Fix icon editing for mod pages 2021-01-03 12:32:52 -07:00
Geometrically
0ec49643ee Fix teams 2021-01-03 11:52:44 -07:00
Geometrically
0d80ea4f4c Fix download button for files on version page 2021-01-03 11:38:59 -07:00
Geometrically
d2b26124e4 Fetch descriptions from origin 2021-01-02 18:34:59 -07:00
Geometrically
343116ea24 Merge branch 'master' of https://github.com/modrinth/knossos 2021-01-01 11:47:41 -07:00
Geometrically
10dc699b21 Fix last broken link 2021-01-01 11:47:24 -07:00
Geometrically
e2183c2214 Merge pull request #123 from modrinth/fix-ratelimit
Bump ratelimit to 200 RPM, allow specified IPs to have lax ratelimit …
2021-01-01 11:19:14 -07:00
Geometrically
4994064e6e Fix lint 2021-01-01 09:27:37 -07:00
Mysterious_Dev
015c5f07bc Fix User Page Title (#68) 2021-01-01 09:21:13 -07:00
Geometrically
a40b9f4054 Fix clippy error (?) 2021-01-01 09:13:27 -07:00
Geometrically
a0b6a3bed6 Better error handling, fix some more broken OG links 2021-01-01 09:09:53 -07:00
Geometrically
ee8d65977d Fix YAML syntax error 2020-12-31 21:47:17 -07:00
Geometrically
b4ea11e55e Fix actions to use build cache 2020-12-31 19:25:19 -07:00
Geometrically
b8d2ef1eb5 Fix SQLX errors 2020-12-31 19:09:23 -07:00
Geometrically
0efeffeaa3 Bump ratelimit to 200 RPM, allow specified IPs to have lax ratelimit restrictions, and allow wildcard for CORS 2020-12-31 18:54:58 -07:00
Geometrically
9de5950f4d Fix version and other pages not working 2020-12-31 12:20:28 -07:00
Geometrically
26488b793a Teams (#67)
* Teams

* Fix errors on versions with no files

* Fix user lookup

* Fix mod pages breaking
2020-12-31 12:12:11 -07:00
Geometrically
7a86d272bb Merge pull request #121 from modrinth/fix-description-cache
Fix description cache
2020-12-31 10:58:40 -07:00
calum6541
5a6c2dfcd5 Add small ease-in-out transition between pages. (#66)
Really makes a big difference than before.
2020-12-31 10:21:00 -07:00
Geometrically
4d780904d1 Fix formatting, remove failing backblaze test due to expired token 2020-12-31 10:16:32 -07:00
Geometrically
0a6fa65075 Fix clippy 2020-12-31 10:09:57 -07:00
Geometrically
6440220640 Fix again 2020-12-29 22:25:52 -07:00
Geometrically
4350c9a72b Fix again 2020-12-29 22:19:03 -07:00
Geometrically
77feae0ab9 Merge branch 'fix-description-cache' of https://github.com/modrinth/labrinth into fix-description-cache 2020-12-29 22:12:00 -07:00
Geometrically
1261696ba2 Make it compile 2020-12-29 22:11:23 -07:00
Geometrically
6b35a0a527 Merge branch 'master' into fix-description-cache 2020-12-29 21:57:54 -07:00
Geometrically
fd33ff81c9 Fix description cache 2020-12-29 21:49:01 -07:00
Geometrically
7e891ecb79 Fix user lookup (#65)
* Teams

* Fix errors on versions with no files

* Fix user lookup
2020-12-28 22:06:50 -07:00
Geometrically
178b1e8bb0 Merge pull request #120 from modrinth/team-member-fixes
Fix revocation of invites, allow for /user_id/teams to be useful
2020-12-28 10:51:16 -07:00
Geometrically
12840f2428 Teams (#64)
* Teams

* Fix errors on versions with no files
2020-12-28 10:50:59 -07:00
Geometrically
9d50f03cb1 Fix game version editing for versions 2020-12-27 18:58:27 -07:00
Geometrically
8c1688657a Fix revocation of invites, allow for /user_id/teams to be useful 2020-12-27 18:50:10 -07:00
Geometrically
833cb99f41 Merge pull request #119 from modrinth/team-member-fixes
Add 'accepted' field to TeamMember
2020-12-27 08:18:34 -07:00
Geometrically
bd5d84abcd Add 'accepted' field to TeamMember 2020-12-26 22:49:07 -07:00
Geometrically
d451ba9b6e Merge pull request #118 from modrinth/fix-invites
Fix invites
2020-12-26 15:21:41 -07:00
Geometrically
14bd02a569 Merge branch 'master' into fix-invites 2020-12-26 15:18:47 -07:00
Geometrically
4beace1bb0 Fix inites (again) 2020-12-26 15:17:51 -07:00
Geometrically
6996dfcd3b Fix incorrect route for team fetching (#117)
* Fix invites failing

* Fix incorrect route for team fetching
2020-12-26 12:25:27 -07:00
Geometrically
42c46d7d5c Fix incorrect route for team fetching 2020-12-26 12:20:23 -07:00
Geometrically
9b31ce83c5 Fix invites failing (#116) 2020-12-26 12:13:09 -07:00
Geometrically
cb5250527b Fix invites failing 2020-12-26 12:08:28 -07:00
Geometrically
0b160a6741 GitHub Actions 2020-12-24 18:48:50 -07:00
calum6541
dff34a8ae2 Added new options to the settings dashboard tab. (#60)
* Created developer tools dashboard

* Remove PopUp and use inline version

* Moved developer tools to the settings tab

At request of Geo

* Fixed some bugs.

* Fix Typos and flex on buttons

* Lowercased token

* Fix button styles

* Move screenshot in-house.

* Move screenshot in-house.

* Completed Developer Settings and Added features to Settings Tab.

Also fixed the about page, updated the "alpha" mention to beta.

* Update revoke-token.vue
2020-12-24 18:24:37 -07:00
Geometrically
8f780ad89e Google ad verification code 2020-12-22 19:35:33 -07:00
Jai A
4624ef393d Merge branch 'master' of https://github.com/modrinth/knossos 2020-12-21 22:26:01 -07:00
Jai A
2ce8a890e2 Re-add EthicalAds 2020-12-21 22:25:46 -07:00
Prospector
90e0e9000e Fix environment supportedness on create page too 2020-12-21 19:00:08 -08:00
Jai A
a6bb1c156d Fix bio description 2020-12-20 22:03:47 -07:00
ProspectorDev
31db8161b5 Remove the broken No Functionality side option and replace with Optional 2020-12-17 22:43:29 -08:00
Jai A
c0d1448080 Fix some links not using slugs 2020-12-16 16:19:49 -07:00
Jai A
4e4f4e60b6 Merge 2020-12-16 13:32:06 -07:00
Jai A
dcc83271af Add slugs 2020-12-16 13:30:20 -07:00
Geometrically
a38458c9be Add user settings page (#58)
* Several fixes

* User edit page
2020-12-16 13:24:17 -07:00
Gamebuster
7934f65ae8 Mod authors don't give rights to modrinth forever (#56)
Modrinth's terms has an issue similar to what overwolf used to have:

https://curseforge-ideas.overwolf.com/ideas/CF-I-222
2020-12-15 12:57:58 -07:00
Geometrically
f0b73fd696 Change index interval, add slug to search documents (#110)
* Change index interval, add slug to search documents

* Allow the removal of '@' for slug get

* Fix

* Remove name and rename side type

* Run prepare
2020-12-13 18:10:58 -07:00
Alistair Jenkins
aea0cec061 Accessibility Changes (#53)
* Semantic HTML: Cards are now articles.

* Semantic HTML: Changed aside to header.

* Changed some references from aside to header.

* Added aria-label to left and right buttons.

* Added aria-hidden to catergory icons.

* Added aria-label to the logo.

* Added aria-hidden on more icons.

* Added aria-hidden to some icons.
2020-12-11 13:11:31 -07:00
Jai A
7ac56b1a0c Peformance fixes for mod pages, Fix #52, #51 2020-12-10 17:01:00 -07:00
Jai A
f5ed0b700f Ad ads code 2020-12-06 18:04:04 -07:00
Jai A
1ff3b83766 File input fixes 2020-12-06 17:41:45 -07:00
Jai A
40eca1727e Icon editing, ready for review button 2020-12-03 15:41:09 -07:00
Jai A
9505e68ef7 Ad verification 2020-12-02 19:55:51 -07:00
Jai A
5847806a16 Allow editing of drafts 2020-12-02 13:06:26 -07:00
Jai A
e427ea44aa Fix Internal Server Error 2020-12-02 12:00:38 -07:00
Jai A
8df8bf33a4 Fix sorting 2020-12-02 10:56:50 -07:00
Jai A
29d2b942e8 Cleaner request formatting 2020-12-02 10:45:31 -07:00
Geometrically
df5684a9f8 Fix access controls (#109)
* Fix access controls

* Remove CF indexing, fix some stuff
2020-12-02 10:24:20 -07:00
Jai A
992cdb992a Fix some moderation bugs 2020-12-01 11:39:47 -07:00
Prospector
db0dc71319 Fix discord field model 2020-12-01 02:29:26 -08:00
Prospector
2c871d1339 Make edit button on dashboard more visible and fix edit button on mod page 2020-11-30 19:10:17 -08:00
Prospector
9673922ca1 Prevent sign in button from wrapping Closes #43 2020-11-30 19:03:58 -08:00
Jai A
d311870b61 Fix file upload box showing for everyone 2020-11-30 17:51:01 -07:00
Jai A
8dd1ff593a Add version title to request 2020-11-30 16:05:40 -07:00
Jai A
0f64a769c2 Fix mod creation 2020-11-30 15:47:21 -07:00
Jai A
a8d150db5c Remove CurseForge integration - some more minor fixes 2020-11-30 15:34:04 -07:00
Jai A
d7e6367ff3 Minor Fixes 2020-11-30 15:10:30 -07:00
Prospector
7b84d8c3d5 [WIP] Rework design (#34)
* WIP: Redesign the default layout

* Merge old & new default layouts

* Fix login logic; add proper user controls dropdown

* Fix latest version listing (#31) (#32)

Co-authored-by: Aeledfyr <45501007+Aeledfyr@users.noreply.github.com>

* First pass of design cleanup

* Improve ad integration and fix light theme

* Begin splitting up variables, change some styling to new mockup

* Continue redesign progress

* Work on some more pages

* Add missing dark theme variables for text

* Continue working on modularizing

* Continue progress, redo pagination

* Fix auth buttons in navbar layout

* Continue progress

* Continue progress more

* Redo ModResult

* Scope ModPage :irritater:

* Continue Dashboard

* Continue progress on Dashboard and cleanup

* Add missing variables for dark theme

* Small tweaks, cleanup, and continue mod page progress

* Fix user not being able to see hidden mods that they own

* Start reworking mod creation

* Continue revamp of mod creation page

* Yank v-html out

* Hotfix markdown rendering and some spacing issues

* Move legal; continue with mod creation; create reusable footer

* Create README.md

* Update README.md

* Update README.md

* Add in basic usage instructions

* Fix some stuff

* Continue with mod creation; fix some CSS errors

* Start user page

* Start transition to vue-select; fix a few bugs

* Continue mod creation page

* Finish mod pages

* Add very raw version editing

* Mod editing + creation

* Fixed versions that were in processing causing a 404 (#39)

Co-authored-by: Mikhail Oleynikov <falseresync@gmail.com>
Co-authored-by: Aeledfyr <45501007+Aeledfyr@users.noreply.github.com>
Co-authored-by: Jai A <jai.a@tuta.io>
Co-authored-by: MulverineX <mulverin3@gmail.com>
Co-authored-by: diabolical17 <calumproh28@gmail.com>
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2020-11-30 14:55:01 -07:00
Aeledfyr
b3f724c799 Hotfix: fix version delete permissions and CORS allowed methods (#107) 2020-11-30 10:45:59 -07:00
Geometrically
a7be6504a2 Fix hash (#106)
* More mod info

* Downloading mods

* Run prepare

* User editing + icon editing

* Finish

* Some fixes

* Fix clippy errors

* Fix hash lookup

* Run prepare

* Run formatter
2020-11-29 14:27:40 -07:00
Jai A
e025df0824 Fix main page, fix mod creation 2020-11-28 08:57:14 -07:00
Jai A
c3392d5386 Fix mod creation again 2020-11-27 14:30:07 -07:00
Geometrically
1da5357df6 More mod info (#104)
* More mod info

* Downloading mods

* Run prepare

* User editing + icon editing

* Finish

* Some fixes

* Fix clippy errors
2020-11-27 10:57:04 -07:00
Jai A
2c09e6a7c0 Update mod creation 2020-11-27 10:56:38 -07:00
Jamie Mansfield
2a0740e135 Apply 'active-paginate' to Previous button (#35)
This has the effect of the cursor being shown when hovering over
the previous button.
2020-11-19 13:41:54 +03:00
diabolical17
ac65357c8a Template Codeblock with example for index.vue (#29)
* Replace runkit GIF with actual code on index.vue

Sometimes the GIF will not load due to a slow or crappy connection.
Syntax highlighting could be added at a later date.

* Added syntax highlighting with vue highlightJS

* Move scss to highlightjs.scss

* Introduce better syntax highlighting.

* Changed to monospace font
2020-11-16 16:28:33 +03:00
Aeledfyr
92e1847c59 Hotfix: route new moderation routes (#103) 2020-11-15 20:47:45 -07:00
Geometrically
0500994def Moderation + Mod Editing (#101)
* Moderation + Mod Editing WIP

* Run prepare, fix perms

* Make it compile

* Finish moderation and edit routes

* More fixes

* Use better queries

* Final Fixes
2020-11-15 19:58:11 -07:00
Aeledfyr
07c255f7f8 Fix latest version listing (#31) 2020-11-10 10:59:54 -07:00
Aeledfyr
da911bfeb8 Minor fixes to orderings and permission serialization (#102)
* Fix latest_version in search results

* Handle users with invalid permissions instead of skipping them

* Specify order of some queries, fix serialization of permissions

* Run sqlx prepare
2020-11-10 09:27:36 -07:00
Geometrically
578d673a4e Team routes (#92)
* Team routes template

* More work on teams

* Updating routes WIP

* Edit routes

* Fixes

* Run prepare, prevent non-members from seeing perms

* More fixes

* Finish team routes

* More fixes

* Unpushed changes

* Some more fixes and error handling

* Fix sqlx prepare, formatting

Co-authored-by: Aeledfyr <aeledfyr@gmail.com>
2020-11-09 19:39:23 -07:00
Jai A
198b3c9f1b Full mobile support 2020-11-05 21:44:08 -07:00
Jai A
f5c567eb90 Merge branch 'master' of https://github.com/modrinth/knossos 2020-11-05 18:01:00 -07:00
Jai A
8ca09f6384 Fix ad warning, add snapshot search 2020-11-05 18:00:40 -07:00
Aeledfyr
c8e58a1e5b Fix indexing, upgrade MeiliSearch sdk (#100)
* Hotfixes for indexing

* Handles missing INDEX_CACHE_PATH environment variable
* Exits on startup if environment variables are missing. The flag
  --allow-missing-vars disables this, but that is generally a bad
  idea, since most environment variables are required (and the ones
  that aren't should be marked as such).
* Disables the query loggers

* Upgrade meilisearch-sdk to 0.4.0 for MeiliSearch 0.16 support

* Fix swap of Forge and Fabric labeling
2020-11-05 08:38:03 -07:00
Charalampos Fanoulis
386dfe42d0 fix: word the alt text (#27) 2020-11-04 22:11:41 +03:00
Jai A
7445f43b1b Tooltips, alternate ad text, better error messages 2020-11-03 21:29:45 -07:00
Aeledfyr
d477874535 Optimize and fix some bugs in indexing (#98)
* Improve curseforge and local indexing

This should make curseforge indexing more efficient, and reuses
some of the normal local indexing for the queued indexing of
recently created mods.

* Unify impls for single and multiple routes for mods and versions

This uses the same backend for the single and multiple query
routes so that they no longer return inconsistent information.

* Cache valid curseforge mod ids to reduce request load

This caches the ids of minecraft mods and reuses them on indexing
to reduce the amount of unused addons that are returned.
2020-11-03 17:55:50 -07:00
Jai A
5b77e78662 Unpushed stuff 2020-11-02 22:05:08 -07:00
Jai A
4b0b8d4de2 New error page, add legal pages, responsiveness for home page 2020-11-02 22:04:40 -07:00
Aeledfyr
da79386cc3 Track and sort by release date of game_versions tags (#95) 2020-10-31 21:06:47 -07:00
Jai A
b7de47b6fb Fix Theme Change breaking ads 2020-10-31 09:59:57 -07:00
Jai A
3434907f52 Update Ad Placement, fix version sorting 2020-10-30 22:15:08 -07:00
Jai A
099adb3853 Merge branch 'master' of https://github.com/modrinth/knossos 2020-10-28 20:43:10 -07:00
Jai A
dd9b1c047c Change to EthicalAds 2020-10-28 20:39:44 -07:00
Aeledfyr
a4ba6d1444 Game Version types, indexing, and bugfixes (#91)
* Add types to game_versions, allow filtering by version type

- Fixes an issue with version numbers in the initial mod indexing
  queue
- Modifies the /api/v1/categories/game_versions route to take an
  optional query parameter `type` to filter the listed game versions
- Creating tags is now idempotent
- Creating game_versions now requires a JSON body that specifies
  the version type

* Implement automatic indexing of new Minecraft versions

It's currently set to run every 6 hours and isn't configurable; we
could add config for it, but it doesn't seem likely to be rate
limited or have issues with frequency.
2020-10-28 09:11:49 -07:00
Aeledfyr
6084bb15cf Fix meta tags for embeds (#11) 2020-10-26 19:21:43 -07:00
Jai A
42b568952e Edit version route 2020-10-25 14:03:18 -07:00
Geometrically
ef28459b61 Rate limiting + version fixes (#90)
* Rate limiting + version fixes

* Move patch to proper place

* More fixes

* Fix commit hash pin
2020-10-25 13:51:07 -07:00
Jai A
d3bac307bb Test ads, fix search reload on non-relevance sort types 2020-10-25 13:48:13 -07:00
Jai A
7e488b0fa3 Allow null changelogs 2020-10-25 09:15:04 -07:00
Jai A
7d7a6191ce Fix version creation 2020-10-25 08:55:55 -07:00
Jai A
5c644b31ca Make edit buttons hidden when not authorized 2020-10-23 19:27:04 -07:00
Jai A
7b4398dfee Finish ability to add files to versions and create new versions 2020-10-23 13:48:42 -07:00
Jai A
663418e943 Move everything to components, (WIP) Version creation 2020-10-22 22:46:10 -07:00
Jai A
969bec248a Add version page 2020-10-21 21:24:39 -07:00
Jai A
8f487d7d4e Bug Fixes 2020-10-21 14:30:13 -07:00
Jai A
89ebce79b2 Add versions section 2020-10-21 13:43:49 -07:00
Geometrically
1ff8c908b8 Add way to fetch team members (#89)
* Add way to fetch team members, fix files not being returned with version route

* Make it compile

* Fixes

* Use default error handling
2020-10-21 12:30:35 -07:00
Jai A
34ce510fbd Mod pages base 2020-10-20 22:33:49 -07:00
Aeledfyr
e966ef96e5 Await an unused future and change #![allow(unused)] to dead_code (#88)
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2020-10-19 22:24:40 -07:00
Geometrically
b05b38b269 Add files to initial versions/mods (#84)
* Add files to initial versions/mods

* Remove useless code, fix actual problem

* Remove debug text

* Rename body to description
2020-10-19 22:08:47 -07:00
Jai A
39f29399e7 Turn off dev mode in production, work on mod pages 2020-10-19 22:02:29 -07:00
Geometrically
8e1f1ff2e6 Fix another bug (#87) 2020-10-19 20:04:26 -07:00
Geometrically
680d6c20ca Search hotfix (#86) 2020-10-19 19:46:33 -07:00
Geometrically
c886e7949e Support for using a master key (#83)
* Support for using a master key

* Expand scope of PR, add wrapper struct, add files to intitial versions/mods

* Change changelog path, run formatter

* Split file changes into different PR

* Formatting, rename main variable

Co-authored-by: Aeledfyr <aeledfyr@gmail.com>
2020-10-19 14:23:05 -07:00
Jai A
8cd4cc7d0d Fix SVGs, cleanup, switch stats backend 2020-10-18 20:00:03 -07:00
Geometrically
e0b972f6d6 Add S3 File Host (#81)
* Add S3 File Host

* Fix tests, set default ACL level to public

* Refactor

* Fix merge conflicts

* Env fixes

* Run formatter

* Remove extra allocations
2020-10-18 13:26:13 -07:00
Aeledfyr
25daa9f2da Update actix-web to 3.0, update deps (#82) 2020-10-18 10:50:37 -07:00
Aeledfyr
d0fb5c3bd5 Refactor mod creation route, add more checks (#80)
This also removes the `team_members` field of `InitialModData`, as
team members are no longer specified at mod creation.
2020-10-17 19:34:23 -07:00
Jai A
608ab8f4ad Fix creation + make it more accessible. Also added User Pages. User Context Menu moved to settings cog 2020-10-17 11:28:05 -07:00
Aeledfyr
520b12e56b Make mod creation always create initial versions & don't require mod id for mod creation versions (#79)
* Make mod creation always create initial versions, other fixes

* Fix sqlx prepare

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2020-10-16 13:28:53 -07:00
Jai A
e95643f198 Remove console statements 2020-10-16 12:45:47 -07:00
Jai A
3b1712345b Creation fixes 2020-10-16 12:44:32 -07:00
Geometrically
5c8ffe961e Fix local indexing (#78) 2020-10-16 11:21:07 -07:00
Aeledfyr
7983e82b60 Fix some issues with search and mod creation (#77) 2020-10-16 10:04:38 -07:00
Jai A
6effe47bcc Finish mod creation 2020-10-15 20:23:01 -07:00
Geometrically
77d35b61a9 Fix indexing (#76) 2020-10-15 09:56:41 -07:00
Geometrically
285a97aaf8 Creation fix (#74)
* Lots of little fixes

* Change + Add TODOs back that were incomplete

* Fix migrations

* Run prepare

* Minor fixes

* Fix formatting

* SQLX Prepare

* Add status to creation query
2020-10-14 20:43:40 -07:00
Jai A
205080a210 Creation work 2020-10-14 16:03:09 -07:00
Geometrically
ad29f2477e Lots of little fixes (#73)
* Lots of little fixes

* Change + Add TODOs back that were incomplete

* Fix migrations

* Run prepare

* Minor fixes

* Fix formatting

* SQLX Prepare
2020-10-14 13:19:38 -07:00
Jai A
bc998988c2 Mod creation WIP 2020-10-12 22:33:56 -07:00
Aeledfyr
1072d1306b Make indexing date format consistent (#72) 2020-10-12 14:08:43 -07:00
Jai A
80b470cfd3 Fix scaling issue 2020-10-11 22:46:26 -07:00
Geometrically
b8eda40937 Fix date format (#71) 2020-10-11 11:35:50 -07:00
Jai A
3df2b4b7f8 Add ackee analytics 2020-10-10 20:12:08 -07:00
Jai A
6141b60294 Fix embed finally 2020-10-09 20:09:38 -07:00
Jai A
e1cfb0cab6 Edit embed again 2020-10-09 19:52:12 -07:00
Jai A
9b9782ce94 Change embed 2020-10-09 18:57:26 -07:00
Jai A
5d9eb25e38 Fix meta tags 2020-10-09 15:48:02 -07:00
Jai A
f4a518ce6b Remove lots of inline SVGs, use moment.js for times, add some pages for future work 2020-10-09 14:25:02 -07:00
Geometrically
2719ae5df2 Add API routes to request multiple of an item (#70)
* Change header name

* Add default bio value

* Remove default

* Make name null

* Run prepare

* Add new API Routes for requesting multiple of an item

* Run formatter

* Simplify get mods query

* Run prepare

* Refactor to use one query for most routes, change version create route to have mod_id in data

* More fixes
2020-10-05 14:25:32 -07:00
Jai A
3656e6ef54 Some search fixes, switch from created() to fetch() for SSR 2020-10-04 20:19:48 -07:00
Jai A
a545d7d8b1 Add user context menu 2020-10-03 22:55:58 -07:00
Geometrically
68ee2bdcdc Fix another GitHub OAuth Bug, allow users to register with null names. (#69)
* Change header name

* Add default bio value

* Remove default

* Make name null

* Run prepare
2020-10-03 16:31:10 -07:00
Geometrically
da654fdff5 Add default bio value, to fix GitHub integration errors (#68)
* Change header name

* Add default bio value

* Remove default
2020-10-03 12:11:36 -07:00
Jai A
3127f7a31b A little bit of SEO, fix auth callback URL 2020-10-02 22:50:41 -07:00
Jai A
f561de200d Auth 2020-10-02 21:05:43 -07:00
Geometrically
d7f9d5a66f Change header name (#67) 2020-10-02 15:55:47 -07:00
Jai A
d85a063db8 General fixes, compress gifs 2020-10-02 12:58:00 -07:00
Jai A
d6bf935ceb Lazy load GIFs 2020-10-01 22:56:59 -07:00
Jai A
0d6ff822e7 Landing page 2020-10-01 22:46:07 -07:00
Jai A
1c0cc8e91c Homepage base 2020-09-30 22:37:34 -07:00
Aeledfyr
c4fb7b7928 General cleanup: fix some bugs, some refactoring (#65)
* Merged mod file upload in version creation, mod creation and
  version file add to one function;  This makes sure that they are
  consistent
* Made some fields on `User` optional: `github_id`, `avatar_url`, `bio`.
    * We may not want to publicly show the `github_id` to everyone
      with access to the API
    * If we allow non-github users, some of those fields would be
      invalid; some oauth providers may not have avatars or bios
* Made CORS origins should configurable
* Made `--reconfigure-indices` and `--reset-indices` exit after
  completion instead of starting the server
2020-09-30 22:07:52 -07:00
Geometrically
43a791db65 Merge pull request #64 from modrinth/auth-fix
Make scopes safe for browser
2020-09-29 12:56:58 -07:00
Jai A
217311211a Remove org read scope 2020-09-29 11:55:12 -07:00
Jai A
ca55890ad2 Make scopes safe for browser 2020-09-29 11:46:11 -07:00
Geometrically
d6ecf5b8a9 Merge pull request #63 from modrinth/ghauth
GitHub Authentication
2020-09-29 11:27:56 -07:00
Jai A
e52edde11f Run prepare scripts 2020-09-29 07:36:28 -07:00
Jai A
2e514735ec User retrieval routes 2020-09-28 22:30:13 -07:00
Jai A
3d32c30d2d Authenticate protected routes 2020-09-28 21:05:42 -07:00
Jai A
05235f8385 Implement users in API 2020-09-28 10:48:15 -07:00
Jai A
cd28a75c86 Authentication workflow complete, add database link 2020-09-27 22:49:38 -07:00
Jai A
34075738ea Basic GitHub integration 2020-09-26 22:49:16 -07:00
Jai A
fb38573b7e Make Search fully SSR 2020-09-22 08:21:07 -07:00
stairman06
8a2f45ec23 Make responsive (#8)
* Refactor ModResult to use CSS Grid

* Mobile support for ModResult

* Mobile navbar

* Mobile fixes, get rid of x overflow

* Mobile filter support

* Fully responsive

* Collapse categories view later

* Mobile-first

* Fix version selector width
2020-09-18 13:05:13 -07:00
Jai A
fee2eb9251 Fix spinner CSS, add snapshots + alpha/beta versions 2020-09-18 10:23:25 -07:00
Jai A
24035c4ae8 Finish Search 2020-09-17 22:14:57 -07:00
Jai A
aa8215df34 URL Handling 2020-09-16 22:35:58 -07:00
Jai A
eb78e3d640 Version filters 2020-09-15 21:43:11 -07:00
Jai A
f8201cd2bc Fix filters using OR queries 2020-09-14 22:13:11 -07:00
Jai A
f37b3ecd26 Dark Theme 2020-09-13 20:11:34 -07:00
Geometrically
88c0b8a8f0 Search fixes (#62) 2020-09-12 18:16:05 -07:00
Jai A
e6dba59ae6 Add normalize css and clear filters button 2020-09-11 22:34:11 -07:00
Jai A
a7bc6b4f36 Platform filters 2020-09-10 18:12:43 -07:00
Jai A
cacc5ac803 License disclosure 2020-09-08 22:09:46 -07:00
Jai A
46dc0f144b Fix clipping on select, fix another scaling issue 2020-09-07 17:37:15 -07:00
Jai A
3cc5275592 Make search results conform to window size 2020-09-07 17:31:24 -07:00
Jai A
a3955a1ba8 Sort types 2020-09-07 17:11:26 -07:00
Jai A
89dfaf1d5d Pagination fixes, change displayed results to 6 2020-09-07 13:01:42 -07:00
Geometrically
e8bbc117e1 Allow for API user to change the amount of mods responded with in search (#61)
* Add more info to search route:

* Run formatter

* Allow for API user to change the amount of mods responded with in search

* Refactor SearchResults

* Fix searchresults usage
2020-09-07 11:44:21 -07:00
Jai A
fc6246c5cb Pagination 2020-09-06 22:29:35 -07:00
Jai A
ce8a0cab2a Unpushed stuff 2020-09-06 18:58:55 -07:00
Geometrically
b99f45874f Add more info to search route (#60)
* Add more info to search route:

* Run formatter
2020-09-06 08:19:53 -07:00
Jai A
b36b6c78a2 Add search filters 2020-09-05 14:23:19 -07:00
Jai A
5232dc6485 Fix no results bug 2020-09-04 20:19:19 -07:00
Jai A
b1d9fc6c9a Filters base 2020-09-03 22:01:23 -07:00
Geometrically
0dfa378e38 Add modrinth.com to CORS (#59)
Co-authored-by: Redblueflame <redblueflame1@gmail.Com>
2020-09-02 08:24:42 -07:00
Geometrically
80ded84f7a Search (#7)
* Initial Search Item

* Pagination thing

* Local changes

* Push component

* Interface with API

* Temporary loader indication

* Fix sidebar spacing

* Filters sidebar

* Add filters sidebar

* Make package files the same
2020-09-02 07:55:48 -07:00
Jai A
8394535725 Remove security vulnerability 2020-09-01 11:43:12 -07:00
Geometrically
adf780d25b Google Ads (#6) 2020-09-01 11:30:09 -07:00
Geometrically
749ae3deb3 Dockerize knossos (#5)
* Dockerize knossos

* Docker actions

* Remove useless thing
2020-09-01 09:08:35 -07:00
Redblueflame
3da0c07bcd fix: Fixed ssl error with the docker container. (#58) 2020-08-29 20:24:15 +02:00
Redblueflame
2196b53075 Switched base container for the docker build (#57) 2020-08-29 07:56:50 -07:00
Redblueflame
a8340f37bb Update Dockerfile (#56)
* Update Dockerfile

* Update Dockerfile
2020-08-28 12:03:00 -07:00
Redblueflame
7b1710ee63 Update Dockerfile (#55) 2020-08-28 20:24:43 +02:00
Redblueflame
38b7d9724e feat(migration): Added automatic migration (#54) 2020-08-28 08:48:01 -07:00
Geometrically
2b1ed49e9a Update Meilisearch SDK (#53)
* Update Meilisearch SDK

* Run Formatter

* Fixes
2020-08-27 17:53:40 -07:00
Geometrically
017cf9e464 Make CORS work (#52)
* Make CORS work

* Add use statement

* Add to TOML
2020-08-27 08:47:18 -07:00
Aeledfyr
781f0c843e Implement more database methods and basic API routes (#50)
* feat: Implement more database methods & add mod and version routes

* feat: Implement deleting mods/versions & implement categories

* feat: Implement routes for categories, game versions & loaders

* feat: Reorganize API routes in a (hopefully) usable way
2020-08-12 12:54:03 -07:00
Geometrically
e2bf474332 Version Creation (#47)
* Creation Stuff

* Make it work

* Response structs + Mod ID validation

* Run code formatter

* Push local changes

* Finish up version creation - fix comments, impl file creation

* fix: Add sqlx prepare data

Co-authored-by: Aeledfyr <aeledfyr@gmail.com>
2020-08-12 11:05:49 -07:00
AppleTheGolden
7e2f1c9a8b Update rust version in dockerfile (#49) 2020-08-02 09:48:02 -07:00
Aeledfyr
8e798dde48 feat(search): Faceted search based on mod host (curse/modrinth) (#48)
This also adds a commandline argument library (gumdrop) for dealing
with indices - reseting, reconfiguring, and skipping them. I don't
know which library is best for this case, but gumdrop has shorter
compile times and many fewer dependencies than clap, which is why
I chose it.
2020-07-31 18:18:23 -07:00
Aeledfyr
c05ae6e94c fix(postgres): Fix sqlx's misinterpretation of Ids, update sqlx (#46) 2020-07-30 20:45:22 -07:00
Aeledfyr
ff28ea8fa8 Refactor Meilisearch, update to latest SDK, and implement faceted search (#44)
* feat(indexing): Reindex curseforge & local database at an interval

* fix(indexing): Use strings for meilisearch primary key

Fixes #17 by prefixing curseforge ids with "curse-" and local ids
with "local-".

* feat(indexing): Add newly created mods to the index more quickly

* feat(indexing): Implement faceted search, update to meilisearch master

Fixes #9, but only uses faceted search for categories.  It should
be reasonably simple to add support for versions, but it may not
be as useful due to the large number of versions and the large
number of supported versions for each mod.

* feat(indexing): Allow skipping initial indexing

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2020-07-27 16:54:10 -07:00
Charalampos Fanoulis
7914e89212 fix: quote the numbers on the github label (#43) 2020-07-23 23:26:53 +02:00
Valentin Ricard
558ff90e27 fix/ci: Fix build matrix (#42)
* ci: Test #1

* ci: Test #2

* ci: Fix an unrelated issue

* ci: Restore the branch filter
2020-07-23 23:18:36 +02:00
AppleTheGolden
ee69653a83 Switch to Postgres (#39)
* WIP Switch to Postgres

* feat(postgres): more work on porting to postgres, now compiles

* feat(docker-compose): Changed the docker-compose.yml file to use postgres.

* Update docker, documentation, gh actions...

* Remove bson dependency

* Remove bson import

* feat: move mock filehost to trait rather than cargo feature

* feat(postgres): transactions for mod creation, multipart refactor

* fix: Add Cargo.lock so that sqlx functions

* Update sqlx offline build data

* fix: Use SQLX_OFFLINE to force sqlx into offline mode for CI

* Default release channels

* feat(postgres): refactor database models to fit postgres models

* fix: Fix sqlx prepare, fix double allocation in indexing

* Add dockerfile (#40)

Co-authored-by: Charalampos Fanoulis <charalampos.fanoulis@gmail.com>

Co-authored-by: Aeledfyr <aeledfyr@gmail.com>
Co-authored-by: redblueflame <contact@redblueflame.com>
Co-authored-by: Jai A <jai.a@tuta.io>
Co-authored-by: Valentin Ricard <redblueflame1@gmail.Com>
Co-authored-by: Charalampos Fanoulis <charalampos.fanoulis@gmail.com>
2020-07-23 22:46:33 +02:00
Siphalor
2d7760e67c Add line ending configuration (#4) 2020-07-17 20:38:16 +03:00
Aeledfyr
95339a8338 Create a mock file host for dev, Fix mod creation route (#38)
* fix(mod-creation): fix actix server data & mod creation route

* feat(file-host): implement mock file hosting

This implements a mock file hosting system backed by the system's
filesystem.  It mirrors the API of the backblaze integration, but
puts the files directly on disk in the path specified by the
MOCK_FILE_PATH environment variable (defaults to /tmp/modrinth).

The mock file hosting is enabled by default using cargo features
to allow people to work on modrinth without access to a valid
backblaze account and setup.  To enable backblaze, specify the
cargo feature "backblaze" when running, ex. `cargo run --features
backblaze`.

* feat(file-hosting): implement basic backblaze API error handling

* fix(mod-creation): fix extension parsing, use base62 ids for paths
fix(file-hosting): reduce unnecessary allocations

* fix: fix auth with docker mongodb

* fix: fix failing checks

* fix: remove testing files
2020-07-16 21:06:58 -07:00
Geometrically
39b1435725 Mod Creation (#34)
* Inital creation stuff

* File Reader

* Upload bodies

* Major rework:

* Finish Multiple Files

* Proper Error Handling

* Switch to database models

* Run formatter

* Make dependencies dependent on Versions over mods

* Fixes

* Fix clippy

* Run lint one last time

* Update src/models/mods.rs

Co-authored-by: AppleTheGolden <scotsbox@protonmail.com>

Co-authored-by: AppleTheGolden <scotsbox@protonmail.com>
2020-07-16 10:16:35 -07:00
Aeledfyr
b1d3e258bd fix(indexing): chunk adding documents to indexing server (#36)
This should prevent adding too many mods and going over
meilisearch's request size limit by attempting to add all mods in
one request.
2020-07-15 15:01:49 -07:00
Mikhail Oleynikov
c915926e0f Merge branch 'master' of github.com:modrinth/dungeon 2020-07-14 16:43:03 +03:00
Mikhail Oleynikov
25203934e6 Switch to Nuxt 2020-07-14 16:42:46 +03:00
Aeledfyr
6ff7fa74e2 Improve error handling (#33)
* refactor: improve error handling

* fix: specify bind address instead of port

* fix: remove temporary testing file

* fix(errors): change error names to snake_case

* refactor(errors): split indexing error types, remove unused errors

* feat: add env variable checking at program start

This just checks whether the enviroment variables exist and can
parse to the given type and gives a warning if they can't. This
should prevent cases where the program fails at runtime due to
checking an environment variable that doesn't exist.
2020-07-03 10:44:39 -07:00
Geometrically
91305262f1 Add Backblaze Driver (#32)
* Backblaze Driver

* Update action to work with new tests

* Fix minor issues

* Run Formatter + Switch to reqwest json parser
2020-07-02 14:00:04 +02:00
Aeledfyr
6d16b68f11 Create schema for the API (#28)
* feat(schema): add basic structs for schema

* feat(schema): implement base62 id parsing

* docs(schema): add documentation for schema structs
fix(schema): prevent integer overflow in base62 decoding

* refactor(schema): move ids into submodules, reexport from ids mod

* feat(schema): add random generation of base62 ids
style: run rustfmt
2020-07-01 22:24:42 +02:00
Charalampos Fanoulis
f22e4f1cc7 feat: Add label syncing. (#30)
* ci: Add label syncing

* ci: add more label sprinkles
2020-07-01 11:32:23 -07:00
Geometrically
4b1b2878ea Create LICENSE.md 2020-07-01 11:15:45 +03:00
MulverineX
2851d12357 readme edits (#29)
* Update README.md

* Update README.md
2020-07-01 08:43:44 +02:00
Valentin Ricard
73968e4277 fix(env): Hotfixed the env name (#27) 2020-06-30 20:00:41 +02:00
Valentin Ricard
7a6ecd86c6 Rewrite the app (#23)
* chore: Removed everything not needed, and added base for rewrite
feat(error_handling): Added 404 general cache
feat(index): Added informations about the app in the / route.

* feat(indexing): Brought back the indexing, with conditions to make it easier

* fix: Fixed build error with a forgotten call

* feat: Add Docker development enviroment (#19)

* ci: add a *lot* of new actions

* fix: rename linting action

* fix: invalid yaml begone(?)

* ci: Added cache to speed up build times

* fix(ci): 🦀ed the yaml errors

* fix(ci): fixed a missing hyphen

* ci: Added matrix of rust versions, and changed way to install rust toolchain

* fix(ci): Added names to build with the matrix so it's easier to find the source of the problem

* style(ci): Added eof lines

* refactor: Finished moving the search.rs file to a separate module.

* Search Endpoint

* refactor: Moved around functions and struct for a better understanding of what it does.

* chore: Change env default settings to resolve conversation

* refactor: Removed #[use_macros]
fix: Fixed meilisearch address from env

* chore: Added email to Aeledfyr

* fix: Brought back the dotenv variables

* style: Ran `cargo fmt`

Co-authored-by: Charalampos Fanoulis <charalampos.fanoulis@gmail.com>
Co-authored-by: Jai A <jai.a@tuta.io>
2020-06-30 19:23:52 +02:00
Mikhail Oleynikov
b11d5514b9 Initial commit 2020-06-29 11:56:46 +03:00
Jai A
1ff2a08d19 Final push before rewrite 2020-06-28 13:53:03 -07:00
Geometrically
d1efd62e7b Merge pull request #14 from Aeledfyr/master
Minify icons and implement SVG spritesheets
2020-06-27 20:18:01 -07:00
Aeledfyr
366c95cd3c Fix a few display bugs 2020-06-27 17:30:35 -05:00
Aeledfyr
7e03f3958e Implement SVG sprite sheet for icons, use thumbnails for mod icons 2020-06-27 17:30:34 -05:00
Aeledfyr
e069184721 Compress/Minify icons 2020-06-27 17:26:59 -05:00
Geometrically
5182441cb3 Merge pull request #12 from joaoh1/master
Make category badges more generic
2020-06-27 15:06:02 -07:00
joaoh1
0de55a8ff5 Make category badges more generic 2020-06-27 16:22:09 -03:00
Jai A
0900d7c764 Add staging popup 2020-06-27 10:29:49 -07:00
Jai A
8540e09ba7 Fix #11 and Cleanup dependencies 2020-06-26 22:35:20 -07:00
Jai A
6e301601f9 Fix minor styling issues 2020-06-25 22:40:29 -07:00
Geometrically
1bf0eab2d9 Merge pull request #7 from Aeledfyr/master
Improve styling for narrower screens
2020-06-25 19:23:16 -07:00
Aeledfyr
d560f656f4 Reduce duplication of Forge logo using svg <use>
This uses svg <use href="#..."> to avoid having to duplicate the
logo at every use.  Surprisingly this just works with the current
theme css, and doesn't require any changes.
2020-06-25 21:14:50 -05:00
Aeledfyr
0bc256aa23 Miscellaneous fixes and requested changes 2020-06-25 20:19:07 -05:00
Aeledfyr
ebc073a52e Tweak styles for narrower screens, add indicator for no results
Makes the styles of search results work better with narrower
screens.  The category badges on each result collapse to just an
icon (with title text) when the screen is too narrow.

Adds a text label for the Forge/Fabric icons.

Adds a message for when a query returns no results.
2020-06-25 17:14:12 -05:00
Jai A
23503dc439 Base creation page 2020-06-22 21:04:17 -07:00
Geometrically
1f4985c7dd Merge pull request #6 from emilyploszaj/master
Implemented a dark theme
2020-06-22 19:57:37 -07:00
emilyploszaj
ed88d9e10d Implemented a dark theme 2020-06-22 21:48:42 -05:00
Jai A
906196bac3 Staging Test 2020-06-20 18:19:19 -07:00
Jai A
cb9751be04 Add CONTRIBUTING.md 2020-06-19 20:19:19 -07:00
Geometrically
09e03d579b Merge pull request #4 from Geometrically/dependabot/add-v2-config-file
Create Dependabot config file
2020-06-18 22:21:47 -07:00
dependabot-preview[bot]
9fcca2698e Create Dependabot config file 2020-06-19 05:21:30 +00:00
Geometrically
bba8cd9b58 Merge pull request #2 from Geometrically/dependabot/cargo/bson-1.0.0
Update bson requirement from 0.14.1 to 1.0.0
2020-06-18 22:21:07 -07:00
dependabot-preview[bot]
c8bb30289a Update bson requirement from 0.14.1 to 1.0.0
Updates the requirements on [bson](https://github.com/mongodb/bson-rust) to permit the latest version.
- [Release notes](https://github.com/mongodb/bson-rust/releases)
- [Commits](https://github.com/mongodb/bson-rust/compare/v0.14.1...v1.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-19 05:13:06 +00:00
Geometrically
69f56c1eb7 Merge pull request #3 from Geometrically/dependabot/cargo/mongodb-1.0.0
Update mongodb requirement from 0.10.0 to 1.0.0
2020-06-18 22:11:42 -07:00
dependabot-preview[bot]
adc8e23356 Update mongodb requirement from 0.10.0 to 1.0.0
Updates the requirements on [mongodb](https://github.com/mongodb/mongo-rust-driver) to permit the latest version.
- [Release notes](https://github.com/mongodb/mongo-rust-driver/releases)
- [Commits](https://github.com/mongodb/mongo-rust-driver/compare/v0.10.0...v1.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-19 05:09:44 +00:00
Jai A
88005c6603 API Page 2020-06-09 21:57:52 -07:00
Jai A
33ee4c36b4 API Page base 2020-06-05 20:19:19 -07:00
Jai A
1a142b7fe6 Versions Search 2020-06-04 20:19:19 -07:00
Jai A
90373806c0 Main mod page 2020-06-03 20:19:19 -07:00
Jai A
a47634bf49 Static content serving from non-root routes 2020-06-02 20:59:20 -07:00
Jai A
e03e58323b Cleanup + Database code 2020-06-02 12:03:45 -07:00
Jai A
ab1e31c0e7 Finish search 2020-06-01 17:01:13 -07:00
Jai A
aa5505d693 Edit CF indexer 2020-05-31 22:20:16 -07:00
Jai A
74f8f687cf Github Actions checks 2020-05-30 17:09:24 -07:00
Jai A
d54500bad5 Sort Types 2020-05-30 16:53:56 -07:00
Jai A
4966b4d58d Sort by WIP 2020-05-29 22:21:53 -07:00
Jai A
b75a4667c2 Migrate to MongoDB 2020-05-28 13:28:58 -07:00
Geometrically
14579a9320 Merge pull request #1 from Scotsguy/master
Fix clippy warnings & rustfmt
2020-05-27 12:28:57 -07:00
AppleTheGolden
1d92eff974 Fix serde attributes 2020-05-27 21:25:39 +02:00
AppleTheGolden
91274267e5 Run rustfmt on everything 2020-05-27 20:51:28 +02:00
AppleTheGolden
c49f0ede16 Fix clippy warnings 2020-05-27 20:46:59 +02:00
Jai A
42a0f452b1 FOSS 2020-05-27 11:03:19 -07:00
Jai A
c24ab9831a Add categories + Infinite Scroll 2020-05-23 21:06:36 -07:00
Jai A
506a68ee6a Fixes + Finish Indexer 2020-05-22 22:48:17 -07:00
Jai A
1291f792ab Curseforge Indexer 2020-05-21 22:38:39 -07:00
Jai A
51cfb1903d CF Indexer start 2020-05-20 22:32:57 -07:00
Jai A
1b1c15694a Fix Mod page styling 2020-05-19 22:39:05 -07:00
Jai A
251f1941a9 Finish mod main page 2020-05-18 22:35:03 -07:00
Jai A
625617bb20 Mod navigation bar 2020-05-18 22:20:34 -07:00
Jai A
f80f161886 Start mods page 2020-05-16 22:37:02 -07:00
Jai A
4b4889d5f2 Finish database code 2020-05-15 22:00:47 -07:00
Jai A
fee34ba257 Basic Database 2020-05-14 22:53:22 -07:00
Jai A
c29ab25dd2 Version Selector 2020-05-13 22:34:19 -07:00
Jai A
e0308a11c9 Search filters 2020-05-12 22:27:31 -07:00
Jai A
a738998c2c Badges + Refactoring 2020-05-11 22:53:08 -07:00
Jai A
6be22c474d Working Search 2020-05-10 22:30:28 -07:00
Jai A
da19743ba5 Initial Commit 2020-05-09 22:11:48 -07:00
1996 changed files with 246629 additions and 25028 deletions

View File

@@ -1,3 +1,6 @@
# Windows has stack overflows when calling from Tauri, so we increase compiler size
[target.'cfg(windows)']
rustflags = ["-C", "link-args=/STACK:16777220"]
rustflags = ["-C", "link-args=/STACK:16777220"]
[build]
rustflags = ["--cfg", "tokio_unstable"]

View File

@@ -1,13 +1,18 @@
# Editor configuration, see http://editorconfig.org
root = true
[*]
charset = utf-8
indent_style = space
indent_size = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
trim_trailing_whitespace = true
max_line_length = 100
[*.md]
max_line_length = off
trim_trailing_whitespace = false
[*.rs]
indent_size = 4

1
.gitattributes vendored Normal file
View File

@@ -0,0 +1 @@
* text=auto eol=lf

59
.github/ISSUE_TEMPLATE/1-app-bug.yml vendored Normal file
View File

@@ -0,0 +1,59 @@
name: 🎮 Modrinth App bug
description: Report an issue in the Modrinth Launcher.
labels: [bug, app]
body:
- type: checkboxes
attributes:
label: Please confirm the following.
options:
- label: I checked the [existing issues](https://github.com/modrinth/code/issues?q=is%3Aissue) for duplicate problems
required: true
- label: I have tried resolving the issue using the [support portal](https://support.modrinth.com)
required: true
- label: I have ensured my Modrinth App installation is up to date
required: true
- type: input
id: version
attributes:
label: What version of the Modrinth App are you using?
description: Find this in ⚙️ Settings (bottom right) -> After Modrinth App (bottom left)
validations:
required: true
- type: dropdown
id: oses
attributes:
label: What operating systems are you seeing the problem on?
multiple: true
options:
- Windows
- MacOS
- Linux
- type: textarea
attributes:
label: Describe the bug
description: A clear and concise description of what the bug is. Include screenshots if applicable.
validations:
required: true
- type: textarea
attributes:
label: Steps to reproduce
description: Steps to reproduce the behavior.
placeholder: |
1. Go to '...'
2. Click on '...'
3. Scroll down to '...'
4. See error
validations:
required: false
- type: textarea
attributes:
label: Expected behavior
description: A clear and concise description of what you expected to happen.
validations:
required: false
- type: textarea
attributes:
label: Additional context
description: Add any other context about the problem here.
validations:
required: false

52
.github/ISSUE_TEMPLATE/2-web-bug.yml vendored Normal file
View File

@@ -0,0 +1,52 @@
name: 🌐 Website bug (modrinth.com)
description: Report an issue on the Modrinth website.
labels: [bug, web]
body:
- type: checkboxes
attributes:
label: Please confirm the following.
options:
- label: I checked the [existing issues](https://github.com/modrinth/code/issues?q=is%3Aissue) for duplicate problems
required: true
- label: I have tried resolving the issue using the [support portal](https://support.modrinth.com)
required: true
- type: dropdown
id: browsers
attributes:
label: What browsers are you seeing the problem on?
multiple: true
options:
- Chrome (including Arc, Brave, Opera, Vivaldi)
- Microsoft Edge
- Firefox
- Safari
- Other (please specify)
- type: textarea
attributes:
label: Describe the bug
description: A clear and concise description of what the bug is. Include screenshots if applicable.
validations:
required: false
- type: textarea
attributes:
label: Steps to reproduce
description: Steps to reproduce the behavior.
placeholder: |
1. Go to '...'
2. Click on '...'
3. Scroll down to '...'
4. See error
validations:
required: false
- type: textarea
attributes:
label: Expected behavior
description: A clear and concise description of what you expected to happen.
validations:
required: false
- type: textarea
attributes:
label: Additional context
description: Add any other context about the problem here.
validations:
required: false

View File

@@ -1,11 +1,19 @@
name: Bug report
description: Create a report to help us improve Modrinth
labels: [bug]
name: 🛠️ API issue (api.modrinth.com)
description: Report an issue regarding the Modrinth API.
labels: [bug, backend]
body:
- type: checkboxes
attributes:
label: Please confirm the following.
options:
- label: I checked the [existing issues](https://github.com/modrinth/code/issues?q=is%3Aissue) for duplicate problems
required: true
- label: I have tried resolving the issue using the [support portal](https://support.modrinth.com)
required: true
- type: textarea
attributes:
label: Describe the bug
description: A clear and concise description of what the bug is.
description: A clear and concise description of what the bug is. Include screenshots if applicable.
validations:
required: false
- type: textarea
@@ -25,13 +33,9 @@ body:
description: A clear and concise description of what you expected to happen.
validations:
required: false
- type: textarea
attributes:
label: System information
description: Add any information about what OS you are on (like Windows or Mac), and what version of the app you are using.
- type: textarea
attributes:
label: Additional context
description: Add any other context about the problem here. This might include logs, screenshots, etc. The more the merrier!
description: Add any other context about the problem here.
validations:
required: false

View File

@@ -1,10 +1,28 @@
name: Enhancement
description: Suggest an enhancement for an existing Modrinth feature
name: 💡 Feature Request
description: Suggest an idea
labels: [enhancement]
body:
- type: checkboxes
attributes:
label: Please confirm the following.
options:
- label: I checked the [existing issues](https://github.com/modrinth/code/issues?q=is%3Aissue) for duplicate feature requests
required: true
- label: I have checked that this feature request is not on our [roadmap](https://roadmap.modrinth.com)
required: true
- type: dropdown
id: projects
attributes:
label: What parts of Modrinth is your feature request related too?
multiple: true
options:
- App
- Website
- API
- type: textarea
attributes:
label: Is your suggested enhancement related to a problem? Please describe.
label: Is your suggested feature related to a problem? Please describe.
description: A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
validations:
required: false

View File

@@ -1,16 +1,14 @@
blank_issues_enabled: true
contact_links:
- name: Discord
about: Ask questions on our Discord Server.
- name: 🫶 Support Portal
about: Get support using through our portal.
url: https://support.modrinth.com
- name: 💬 Chat
about: Join our Discord server to chat about Modrinth.
url: https://discord.modrinth.com
- name: Roadmap
- name: 🛣️ Roadmap
about: View our Roadmap. Please do not open issues for items on our roadmap.
url: https://roadmap.modrinth.com
- name: Discussions (Feature requests)
about: |
Please use Issues for reporting bugs and suggesting enhancements to existing features.
Suggestions for new features should be made as a Discussion.
url: https://github.com/orgs/modrinth/discussions/categories/feature-requests
- name: Documentation
about: Useful documentation about Modrinth, its API, and how you can contribute.
- name: 📚 Documentation
about: Useful documentation about Modrinth's API
url: https://docs.modrinth.com

BIN
.github/assets/api_cover.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

BIN
.github/assets/app_cover.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

BIN
.github/assets/monorepo_cover.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 262 KiB

BIN
.github/assets/web_cover.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

44
.github/workflows/daedalus-docker.yml vendored Normal file
View File

@@ -0,0 +1,44 @@
name: daedalus-docker-build
on:
push:
branches:
- '**'
paths:
- .github/workflows/daedalus-docker.yml
- 'apps/daedalus_client/**'
- 'packages/daedalus/**'
pull_request:
types: [opened, synchronize]
paths:
- .github/workflows/daedalus-docker.yml
- 'apps/daedalus_client/**'
- 'packages/daedalus/**'
merge_group:
types: [checks_requested]
jobs:
docker:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Fetch docker metadata
id: docker_meta
uses: docker/metadata-action@v3
with:
images: ghcr.io/modrinth/daedalus
- name: Login to GitHub Images
uses: docker/login-action@v1
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push
id: docker_build
uses: docker/build-push-action@v2
with:
file: ./apps/daedalus_client/Dockerfile
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.docker_meta.outputs.tags }}
labels: ${{ steps.docker_meta.outputs.labels }}

51
.github/workflows/daedalus-run.yml vendored Normal file
View File

@@ -0,0 +1,51 @@
name: Run Meta
on:
schedule:
- cron: '*/5 * * * *'
workflow_dispatch:
jobs:
run-docker:
if: github.repository_owner == 'modrinth'
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Log in to GitHub Container Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Pull Docker image from GHCR
run: docker pull ghcr.io/modrinth/daedalus:main
- name: Run Docker container
env:
BASE_URL: ${{ secrets.BASE_URL }}
S3_ACCESS_TOKEN: ${{ secrets.S3_ACCESS_TOKEN }}
S3_SECRET: ${{ secrets.S3_SECRET }}
S3_URL: ${{ secrets.S3_URL }}
S3_REGION: ${{ secrets.S3_REGION }}
S3_BUCKET_NAME: ${{ secrets.S3_BUCKET_NAME }}
CLOUDFLARE_INTEGRATION: ${{ secrets.CLOUDFLARE_INTEGRATION }}
CLOUDFLARE_TOKEN: ${{ secrets.CLOUDFLARE_TOKEN }}
CLOUDFLARE_ZONE_ID: ${{ secrets.CLOUDFLARE_ZONE_ID }}
run: |
docker run \
--name daedalus \
-e RUST_LOG=warn,daedalus_client=trace \
-e BASE_URL=$BASE_URL \
-e S3_ACCESS_TOKEN=$S3_ACCESS_TOKEN \
-e S3_SECRET=$S3_SECRET \
-e S3_URL=$S3_URL \
-e S3_REGION=$S3_REGION \
-e S3_BUCKET_NAME=$S3_BUCKET_NAME \
-e CLOUDFLARE_INTEGRATION=$CLOUDFLARE_INTEGRATION \
-e CLOUDFLARE_TOKEN=$CLOUDFLARE_TOKEN \
-e CLOUDFLARE_ZONE_ID=$CLOUDFLARE_ZONE_ID \
ghcr.io/modrinth/daedalus:main

30
.github/workflows/frontend-pages.yml vendored Normal file
View File

@@ -0,0 +1,30 @@
name: Clear pages cache
on:
push:
branches:
- prod
jobs:
wait:
if: github.repository_owner == 'modrinth'
runs-on: ubuntu-latest
permissions:
contents: read
deployments: write
steps:
- name: Cloudflare Pages deployment
uses: WalshyDev/cf-pages-await@v1
with:
apiToken: ${{ secrets.CF_API_TOKEN }}
accountId: '9ddae624c98677d68d93df6e524a6061'
project: 'frontend'
commitHash: ${{ steps.push-changes.outputs.commit-hash }}
- name: Purge cache
if: github.ref == 'refs/heads/prod'
run: |
curl -X POST \
-H "Authorization: Bearer ${{ secrets.CF_API_TOKEN }}" \
-H "Content-Type: application/json" \
--data '{"hosts": ["modrinth.com", "www.modrinth.com"]}' \
https://api.cloudflare.com/client/v4/zones/e39df17b9c4ef44cbce2646346ee6d33/purge_cache

View File

@@ -1,42 +0,0 @@
name: GUI Build + Lint
on:
push:
branches: [master]
pull_request:
jobs:
build:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./theseus_gui
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Use Node.js
uses: actions/setup-node@v3
with:
node-version: 18.x
- name: Install pnpm via corepack
shell: bash
run: |
corepack enable
corepack prepare --activate
- name: Get pnpm store directory
id: pnpm-cache
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
- name: Setup pnpm cache
uses: actions/cache@v3
with:
path: ${{ steps.pnpm-cache.outputs.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: Install dependencies
run: pnpm install
- name: Run Lint
run: pnpm lint
- name: Build
run: pnpm build

47
.github/workflows/labrinth-docker.yml vendored Normal file
View File

@@ -0,0 +1,47 @@
name: docker-build
on:
push:
branches:
- '**'
paths:
- .github/workflows/labrinth-docker.yml
- 'apps/labrinth/**'
pull_request:
types: [opened, synchronize]
paths:
- .github/workflows/labrinth-docker.yml
- 'apps/labrinth/**'
merge_group:
types: [checks_requested]
jobs:
docker:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./apps/labrinth
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Fetch docker metadata
id: docker_meta
uses: docker/metadata-action@v3
with:
images: ghcr.io/modrinth/labrinth
- name: Login to GitHub Images
uses: docker/login-action@v1
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push
id: docker_build
uses: docker/build-push-action@v2
env:
SQLX_OFFLINE: true
with:
file: ./apps/labrinth/Dockerfile
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.docker_meta.outputs.tags }}
labels: ${{ steps.docker_meta.outputs.labels }}

View File

@@ -1,109 +0,0 @@
name: 'Tauri GUI Build'
on:
push:
branches: [ master ]
pull_request:
jobs:
test-tauri:
strategy:
fail-fast: false
matrix:
platform: [macos-latest, windows-latest, ubuntu-20.04, ubuntu-22.04]
runs-on: ${{ matrix.platform }}
defaults:
run:
working-directory: ./theseus_gui
steps:
- uses: actions/checkout@v3
- name: Rust setup (mac)
if: startsWith(matrix.platform, 'macos')
uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt, clippy
targets: aarch64-apple-darwin, x86_64-apple-darwin
- name: Rust setup
if: "!startsWith(matrix.platform, 'macos')"
uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt, clippy
- name: Rust cache
uses: swatinem/rust-cache@v2
with:
workspaces: './src-tauri -> target'
- name: Use Node.js
uses: actions/setup-node@v3
with:
node-version: 18.x
- name: Install pnpm via corepack
shell: bash
run: |
corepack enable
corepack prepare --activate
- name: Get pnpm store directory
id: pnpm-cache
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
- name: Setup pnpm cache
uses: actions/cache@v3
with:
path: ${{ steps.pnpm-cache.outputs.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: install dependencies (ubuntu only)
if: startsWith(matrix.platform, 'ubuntu')
run: |
sudo apt-get update
sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev libappindicator3-dev librsvg2-dev patchelf libselinux1
- name: Install frontend dependencies
run: pnpm install
- name: build app (macos)
uses: tauri-apps/tauri-action@v0
id: build_os_mac
if: startsWith(matrix.platform, 'macos')
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
ENABLE_CODE_SIGNING: ${{ secrets.APPLE_CERTIFICATE }}
APPLE_CERTIFICATE: ${{ secrets.APPLE_CERTIFICATE }}
APPLE_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }}
APPLE_SIGNING_IDENTITY: ${{ secrets.APPLE_SIGNING_IDENTITY }}
APPLE_ID: ${{ secrets.APPLE_ID }}
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
APPLE_PASSWORD: ${{ secrets.APPLE_PASSWORD }}
TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }}
TAURI_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }}
with:
args: --target universal-apple-darwin
- name: build app
uses: tauri-apps/tauri-action@v0
id: build_os
if: "!startsWith(matrix.platform, 'macos')"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }}
TAURI_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }}
- name: upload ${{ matrix.platform }}
uses: actions/upload-artifact@v3
if: startsWith(matrix.platform, 'macos')
with:
name: ${{ matrix.platform }}
path: "${{ join(fromJSON(steps.build_os_mac.outputs.artifactPaths), '\n') }}"
- name: upload ${{ matrix.platform }}
uses: actions/upload-artifact@v3
if: "!startsWith(matrix.platform, 'macos')"
with:
name: ${{ matrix.platform }}
path: "${{ join(fromJSON(steps.build_os.outputs.artifactPaths), '\n') }}"

157
.github/workflows/theseus-release.yml vendored Normal file
View File

@@ -0,0 +1,157 @@
name: 'Modrinth App build'
on:
push:
branches:
- main
tags:
- 'v*'
paths:
- .github/workflows/theseus-release.yml
- 'apps/app/**'
- 'apps/app-frontend/**'
- 'apps/labrinth/src/common/**'
- 'apps/labrinth/Cargo.toml'
- 'packages/app-lib/**'
- 'packages/app-macros/**'
- 'packages/assets/**'
- 'packages/ui/**'
- 'packages/utils/**'
workflow_dispatch:
jobs:
build:
strategy:
fail-fast: false
matrix:
platform: [macos-latest, windows-latest, ubuntu-22.04]
runs-on: ${{ matrix.platform }}
steps:
- uses: actions/checkout@v4
- name: Rust setup (mac)
if: startsWith(matrix.platform, 'macos')
uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt, clippy
targets: aarch64-apple-darwin, x86_64-apple-darwin
- name: Rust setup
if: "!startsWith(matrix.platform, 'macos')"
uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt, clippy
- name: Setup rust cache
uses: actions/cache@v4
with:
path: |
target/**
!target/*/release/bundle/*/*.dmg
!target/*/release/bundle/*/*.app.tar.gz
!target/*/release/bundle/*/*.app.tar.gz.sig
!target/release/bundle/*/*.dmg
!target/release/bundle/*/*.app.tar.gz
!target/release/bundle/*/*.app.tar.gz.sig
!target/release/bundle/appimage/*.AppImage
!target/release/bundle/appimage/*.AppImage.tar.gz
!target/release/bundle/appimage/*.AppImage.tar.gz.sig
!target/release/bundle/deb/*.deb
!target/release/bundle/rpm/*.rpm
!target/release/bundle/msi/*.msi
!target/release/bundle/msi/*.msi.zip
!target/release/bundle/msi/*.msi.zip.sig
!target/release/bundle/nsis/*.exe
!target/release/bundle/nsis/*.nsis.zip
!target/release/bundle/nsis/*.nsis.zip.sig
key: ${{ runner.os }}-rust-target-${{ hashFiles('**/Cargo.lock') }}
restore-keys: |
${{ runner.os }}-rust-target-
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: 20
- name: Install pnpm via corepack
shell: bash
run: |
corepack enable
corepack prepare --activate
- name: Get pnpm store directory
id: pnpm-cache
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
- name: Setup pnpm cache
uses: actions/cache@v4
with:
path: ${{ steps.pnpm-cache.outputs.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: install dependencies (ubuntu only)
if: startsWith(matrix.platform, 'ubuntu')
run: |
sudo apt-get update
sudo apt-get install -y libwebkit2gtk-4.1-dev build-essential curl wget file libxdo-dev libssl-dev pkg-config libayatana-appindicator3-dev librsvg2-dev
- name: Install frontend dependencies
run: pnpm install
- name: build app (macos)
run: pnpm --filter=@modrinth/app run tauri build --target universal-apple-darwin --config "tauri-release.conf.json"
if: startsWith(matrix.platform, 'macos')
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
ENABLE_CODE_SIGNING: ${{ secrets.APPLE_CERTIFICATE }}
APPLE_CERTIFICATE: ${{ secrets.APPLE_CERTIFICATE }}
APPLE_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }}
APPLE_SIGNING_IDENTITY: ${{ secrets.APPLE_SIGNING_IDENTITY }}
APPLE_ID: ${{ secrets.APPLE_ID }}
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
APPLE_PASSWORD: ${{ secrets.APPLE_PASSWORD }}
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }}
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }}
- name: build app
run: pnpm --filter=@modrinth/app run tauri build --config "tauri-release.conf.json"
id: build_os
if: "!startsWith(matrix.platform, 'macos')"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }}
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }}
- name: upload ${{ matrix.platform }}
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.platform }}
path: |
target/*/release/bundle/*/*.dmg
target/*/release/bundle/*/*.app.tar.gz
target/*/release/bundle/*/*.app.tar.gz.sig
target/release/bundle/*/*.dmg
target/release/bundle/*/*.app.tar.gz
target/release/bundle/*/*.app.tar.gz.sig
target/release/bundle/*/*.AppImage
target/release/bundle/*/*.AppImage.tar.gz
target/release/bundle/*/*.AppImage.tar.gz.sig
target/release/bundle/*/*.deb
target/release/bundle/*/*.rpm
target/release/bundle/msi/*.msi
target/release/bundle/msi/*.msi.zip
target/release/bundle/msi/*.msi.zip.sig
target/release/bundle/nsis/*.exe
target/release/bundle/nsis/*.nsis.zip
target/release/bundle/nsis/*.nsis.zip.sig

80
.github/workflows/turbo-ci.yml vendored Normal file
View File

@@ -0,0 +1,80 @@
name: CI
on:
push:
branches: ['main']
pull_request:
types: [opened, synchronize]
merge_group:
types: [checks_requested]
jobs:
build:
name: Build, Test, and Lint
runs-on: ubuntu-22.04
steps:
- name: Check out code
uses: actions/checkout@v4
with:
fetch-depth: 2
- name: Cache turbo build setup
uses: actions/cache@v4
with:
path: .turbo
key: ${{ runner.os }}-turbo-${{ github.sha }}
restore-keys: |
${{ runner.os }}-turbo-
- name: Install build dependencies
run: |
sudo apt-get update
sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf
- name: Setup Node.JS environment
uses: actions/setup-node@v4
with:
node-version: 20
- name: Install pnpm via corepack
shell: bash
run: |
corepack enable
corepack prepare --activate
- name: Get pnpm store directory
id: pnpm-cache
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
- uses: actions/cache@v4
name: Setup pnpm cache
with:
path: ${{ steps.pnpm-cache.outputs.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: Install dependencies
run: pnpm install
- name: Build
run: pnpm build
env:
SQLX_OFFLINE: true
- name: Lint
run: pnpm lint
env:
SQLX_OFFLINE: true
- name: Start docker compose
run: docker compose up -d
- name: Test
run: pnpm test
env:
SQLX_OFFLINE: true
DATABASE_URL: postgresql://labrinth:labrinth@localhost/postgres

158
.gitignore vendored
View File

@@ -1,115 +1,63 @@
/target
node_modules/
.svelte-kit/
theseus_gui/build/
theseus_gui/generated/
WixTools
.direnv/
.DS_Store
.pnpm-debug.log
# See http://help.github.com/ignore-files/ for more about ignoring files.
minecraft
config
# compiled output
dist
tmp
/out-tsc
[#]*[#]
# dependencies
node_modules
# TEMPORARY: ignore my test instance and metadata
theseus_cli/foo
# IDEs and editors
/.idea
.project
.classpath
.c9/
*.launch
.settings/
*.sublime-workspace
### Intellij+all ###
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
# User-specific stuff
.idea/**/workspace.xml
.idea/**/tasks.xml
.idea/**/usage.statistics.xml
.idea/**/dictionaries
.idea/**/shelf
# AWS User-specific
.idea/**/aws.xml
# Generated files
.idea/**/contentModel.xml
# Sensitive or high-churn files
.idea/**/dataSources/
.idea/**/dataSources.ids
.idea/**/dataSources.local.xml
.idea/**/sqlDataSources.xml
.idea/**/dynamic.xml
.idea/**/uiDesigner.xml
.idea/**/dbnavigator.xml
# Gradle
.idea/**/gradle.xml
.idea/**/libraries
# Gradle and Maven with auto-import
# When using Gradle or Maven with auto-import, you should exclude module files,
# since they will be recreated, and may cause churn. Uncomment if using
# auto-import.
# .idea/artifacts
# .idea/compiler.xml
# .idea/jarRepositories.xml
# .idea/modules.xml
# .idea/*.iml
# .idea/modules
# *.iml
# *.ipr
# CMake
cmake-build-*/
# Mongo Explorer plugin
.idea/**/mongoSettings.xml
# File-based project format
*.iws
# IntelliJ
out/
# mpeltonen/sbt-idea plugin
.idea_modules/
# JIRA plugin
atlassian-ide-plugin.xml
# Cursive Clojure plugin
.idea/replstate.xml
# SonarLint plugin
.idea/sonarlint/
# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties
# Editor-based Rest Client
.idea/httpRequests
# Android studio 3.1+ serialized cache file
.idea/caches/build_file_checksums.ser
### Intellij+all Patch ###
# Ignore everything but code style settings and run configurations
# that are supposed to be shared within teams.
.idea/*
# IDE - VSCode
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
!.idea/codeStyles
!.idea/runConfigurations
# misc
/.sass-cache
/connect.lock
/coverage
/libpeerconnection.log
npm-debug.log
yarn-error.log
testem.log
/typings
# These are backup files generated by rustfmt
**/*.rs.bk
# System Files
.DS_Store
Thumbs.db
# MSVC Windows builds of rustc generate these, which store debugging information
*.pdb
# Nuxt dev/build outputs
.output
.data
.nuxt
.nitro
.cache
theseus.iml
# frontend generated files
apps/frontend/src/generated
.turbo
target
generated
.env
# app testing dir
app-playground-data/*
# soley because i need the PORT to be 3002 due to WSL stuff
.env
apps/frontend/.env
.astro

8
.idea/.gitignore generated vendored Normal file
View File

@@ -0,0 +1,8 @@
# Default ignored files
/shelf/
/workspace.xml
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml
# Editor-based HTTP Client requests
/httpRequests/

20
.idea/code.iml generated Normal file
View File

@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/apps/daedalus_client/src" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/packages/daedalus/src" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/apps/app-playground/src" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/apps/app/src" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/apps/labrinth/src" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/apps/labrinth/tests" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/packages/app-lib/src" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/packages/rust-common/src" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/packages/ariadne/src" isTestSource="false" />
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

7
.idea/discord.xml generated Normal file
View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="DiscordProjectSettings">
<option name="show" value="PROJECT_FILES" />
<option name="description" value="" />
</component>
</project>

26
.idea/libraries/KotlinJavaRuntime.xml generated Normal file
View File

@@ -0,0 +1,26 @@
<component name="libraryTable">
<library name="KotlinJavaRuntime" type="repository">
<properties maven-id="org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0" />
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.8.0/kotlin-stdlib-jdk8-1.8.0.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib/1.8.0/kotlin-stdlib-1.8.0.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-common/1.8.0/kotlin-stdlib-common-1.8.0.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/annotations/13.0/annotations-13.0.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.8.0/kotlin-stdlib-jdk7-1.8.0.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.8.0/kotlin-stdlib-jdk8-1.8.0-javadoc.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib/1.8.0/kotlin-stdlib-1.8.0-javadoc.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-common/1.8.0/kotlin-stdlib-common-1.8.0-javadoc.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/annotations/13.0/annotations-13.0-javadoc.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.8.0/kotlin-stdlib-jdk7-1.8.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.8.0/kotlin-stdlib-jdk8-1.8.0-sources.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib/1.8.0/kotlin-stdlib-1.8.0-sources.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-common/1.8.0/kotlin-stdlib-common-1.8.0-sources.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/annotations/13.0/annotations-13.0-sources.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.8.0/kotlin-stdlib-jdk7-1.8.0-sources.jar!/" />
</SOURCES>
</library>
</component>

8
.idea/modules.xml generated Normal file
View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/code.iml" filepath="$PROJECT_DIR$/.idea/code.iml" />
</modules>
</component>
</project>

6
.idea/vcs.xml generated Normal file
View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>

2
.npmrc Normal file
View File

@@ -0,0 +1,2 @@
strict-peer-dependencies=false
auto-install-peers=true

3
.vscode/extensions.json vendored Normal file
View File

@@ -0,0 +1,3 @@
{
"recommendations": ["esbenp.prettier-vscode", "Vue.volar", "rust-lang.rust-analyzer"]
}

9
.vscode/settings.json vendored Normal file
View File

@@ -0,0 +1,9 @@
{
"prettier.endOfLine": "lf",
"editor.formatOnSave": true,
"eslint.validate": ["javascript", "javascriptreact", "typescript", "typescriptreact"],
"editor.detectIndentation": true,
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit"
}
}

View File

@@ -1,13 +1,13 @@
# Copying
# Copying Guidelines
The source code of the theseus repository is licensed under the GNU General Public License, Version 3 only, which is provided in the file [LICENSE](./LICENSE). However, some files listed below are licensed under a different license.
All packages in this repository are licensed under their respective licenses. For more information, refer to the LICENSE file in each package.
## Modrinth logo
For detailed information, consult each package's COPYING.md file, if available.
Any files depicting the Modrinth branding, including the wrench-in-labyrinth logo, the landing image, and variations thereof, are licensed as follows:
## Modrinth Branding
> All rights reserved. © 2020-2023 Rinth, Inc.
The use of Modrinth branding elements, including but not limited to the wrench-in-labyrinth logo, the landing image, and any variations thereof, is strictly prohibited without explicit written permission from Rinth, Inc. This includes trademarks, logos, or other branding elements.
This includes, but may not be limited to, the following files:
All rights reserved. © 2020-2024 Rinth, Inc.
- theseus_gui/src-tauri/icons/*
If you fork this repository, you must remove all Modrinth branding assets from your fork.

8349
Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,28 +1,183 @@
[workspace]
resolver = "2"
members = [
"theseus",
"theseus_playground",
"theseus_gui/src-tauri",
"theseus_macros"
"apps/app",
"apps/app-playground",
"apps/daedalus_client",
"apps/labrinth",
"packages/app-lib",
"packages/ariadne",
"packages/daedalus",
]
[profile.dev]
opt-level = 0
debug = true
debug-assertions = true
overflow-checks = true
lto = false
panic = 'unwind'
incremental = true
codegen-units = 256
rpath = false
[workspace.dependencies]
actix-cors = "0.7.1"
actix-files = "0.6.6"
actix-http = "3.11.0"
actix-multipart = "0.7.2"
actix-rt = "2.10.0"
actix-web = "4.11.0"
actix-web-prom = "0.10.0"
actix-ws = "0.3.0"
argon2 = { version = "0.5.3", features = ["std"] }
ariadne = { path = "packages/ariadne" }
async-compression = { version = "0.4.23", default-features = false }
async-recursion = "1.1.1"
async-stripe = { version = "0.41.0", default-features = false, features = [
"runtime-tokio-hyper-rustls",
] }
async-trait = "0.1.88"
async-tungstenite = { version = "0.29.1", default-features = false, features = [
"futures-03-sink",
] }
async-walkdir = "2.1.0"
async_zip = "0.0.17"
base64 = "0.22.1"
bitflags = "2.9.0"
bytes = "1.10.1"
censor = "0.3.0"
chrono = "0.4.41"
clap = "4.5.38"
clickhouse = "0.13.2"
color-thief = "0.2.2"
console-subscriber = "0.4.1"
daedalus = { path = "packages/daedalus" }
dashmap = "6.1.0"
deadpool-redis = "0.21.1"
dirs = "6.0.0"
discord-rich-presence = "0.2.5"
dotenv-build = "0.1.1"
dotenvy = "0.15.7"
dunce = "1.0.5"
either = "1.15.0"
enumset = "1.1.6"
flate2 = "1.1.1"
fs4 = { version = "0.13.1", default-features = false }
futures = { version = "0.3.31", default-features = false }
futures-util = "0.3.31"
hex = "0.4.3"
hickory-resolver = "0.25.2"
hmac = "0.12.1"
hyper-tls = "0.6.0"
hyper-util = "0.1.11"
iana-time-zone = "0.1.63"
image = { version = "0.25.6", default-features = false, features = ["rayon"] }
indexmap = "2.9.0"
indicatif = "0.17.11"
itertools = "0.14.0"
jemalloc_pprof = "0.7.0"
json-patch = { version = "4.0.0", default-features = false }
lettre = { version = "0.11.16", default-features = false, features = [
"builder",
"hostname",
"pool",
"ring",
"rustls",
"rustls-native-certs",
"smtp-transport",
] }
maxminddb = "0.26.0"
meilisearch-sdk = { version = "0.28.0", default-features = false }
murmur2 = "0.1.0"
native-dialog = "0.9.0"
notify = { version = "8.0.0", default-features = false }
notify-debouncer-mini = { version = "0.6.0", default-features = false }
p256 = "0.13.2"
paste = "1.0.15"
prometheus = "0.14.0"
quartz_nbt = "0.2.9"
quick-xml = "0.37.5"
rand = "=0.8.5" # Locked on 0.8 until argon2 and p256 update to 0.9
rand_chacha = "=0.3.1" # Locked on 0.3 until we can update rand to 0.9
redis = "0.31.0"
regex = "1.11.1"
reqwest = { version = "0.12.15", default-features = false }
rust-s3 = { version = "0.35.1", default-features = false, features = [
"fail-on-err",
"tags",
"tokio-rustls-tls",
] }
rust_decimal = { version = "1.37.1", features = [
"serde-with-float",
"serde-with-str",
] }
rust_iso3166 = "0.1.14"
rusty-money = "0.4.1"
sentry = { version = "0.38.1", default-features = false, features = [
"backtrace",
"contexts",
"debug-images",
"panic",
"reqwest",
"rustls",
] }
sentry-actix = "0.38.1"
serde = "1.0.219"
serde-xml-rs = "0.8.0" # Also an XML (de)serializer, consider dropping yaserde in favor of this
serde_bytes = "0.11.17"
serde_cbor = "0.11.2"
serde_ini = "0.2.0"
serde_json = "1.0.140"
serde_with = "3.12.0"
sha1 = "0.10.6"
sha1_smol = { version = "1.0.1", features = ["std"] }
sha2 = "0.10.9"
spdx = "0.10.8"
sqlx = { version = "0.8.5", default-features = false }
sysinfo = { version = "0.35.1", default-features = false }
tar = "0.4.44"
tauri = "2.5.1"
tauri-build = "2.2.0"
tauri-plugin-deep-link = "2.2.1"
tauri-plugin-dialog = "2.2.1"
tauri-plugin-opener = "2.2.6"
tauri-plugin-os = "2.2.1"
tauri-plugin-single-instance = "2.2.3"
tauri-plugin-updater = { version = "2.7.1", default-features = false, features = [
"rustls-tls",
"zip",
] }
tauri-plugin-window-state = "2.2.2"
tempfile = "3.20.0"
theseus = { path = "packages/app-lib" }
thiserror = "2.0.12"
tikv-jemalloc-ctl = "0.6.0"
tikv-jemallocator = "0.6.0"
tokio = "1.45.0"
tokio-stream = "0.1.17"
tokio-util = "0.7.15"
totp-rs = "5.7.0"
tracing = "0.1.41"
tracing-actix-web = "0.7.18"
tracing-error = "0.2.1"
tracing-subscriber = "0.3.19"
url = "2.5.4"
urlencoding = "2.1.3"
uuid = "1.16.0"
validator = "0.20.0"
webp = { version = "0.3.0", default-features = false }
whoami = "1.6.0"
winreg = "0.55.0"
woothee = "0.13.0"
yaserde = "0.12.0"
zip = { version = "3.0.0", default-features = false, features = [
"bzip2",
"deflate",
"deflate64",
"zstd",
] }
zxcvbn = "3.1.0"
[patch.crates-io]
wry = { git = "https://github.com/modrinth/wry", rev = "cafdaa9" }
# Optimize for speed and reduce size on release builds
[profile.release]
panic = "abort" # Strip expensive panic clean-up logic
codegen-units = 1 # Compile crates one after another so the compiler can optimize better
lto = true # Enables link to optimizations
opt-level = "s" # Optimize for binary size
strip = true # Remove debug symbols
opt-level = "s" # Optimize for binary size
strip = true # Remove debug symbols
lto = true # Enables link to optimizations
panic = "abort" # Strip expensive panic clean-up logic
codegen-units = 1 # Compile crates one after another so the compiler can optimize better
[profile.dev.package.sqlx-macros]
opt-level = 3

View File

@@ -1,45 +1,39 @@
<img src="https://github.com/modrinth/theseus/assets/6166773/51d1ca87-05c0-445a-bd18-ddd1117f7f12" alt="modrinth app: theseus (desktop app)">
# ![Modrinth Monorepo Cover](/.github/assets/monorepo_cover.png)
# Modrinth App
![Issues](https://img.shields.io/github/issues-raw/Modrinth/code?color=c78aff&label=issues&style=for-the-badge)
![Pull Requests](https://img.shields.io/github/issues-pr-raw/Modrinth/code?color=c78aff&label=PRs&style=for-the-badge)
![Contributors](https://img.shields.io/github/contributors/Modrinth/code?color=c78aff&label=contributors&style=for-the-badge)
![Lines](https://img.shields.io/endpoint?url=https://ghloc.vercel.app/api/modrinth/code/badge?style=flat&logoColor=white&color=c78aff&style=for-the-badge)
![Commit Activity](https://img.shields.io/github/commit-activity/m/Modrinth/code?color=c78aff&label=commits&style=for-the-badge)
![Last Commit](https://img.shields.io/github/last-commit/Modrinth/code?color=c78aff&label=last%20commit&style=for-the-badge)
<img src="https://cdn-raw.modrinth.com/app-landing/app-screenshot.webp" alt="Screenshot of the Modrinth App's home page" align="right" width="50%">
## Modrinth Monorepo
The Modrinth App, codenamed theseus, is a modern launcher for Minecraft: Java Edition with a clean look, easy-to-use interface, and deep integration into Modrinth services.
Welcome to the Modrinth Monorepo, the primary codebase for the Modrinth web interface and app. It contains ![Lines](https://img.shields.io/endpoint?url=https://ghloc.vercel.app/api/modrinth/olympus/badge?logoColor=white&color=black&label=) lines of code and has ![Contributors](https://img.shields.io/github/contributors/Modrinth/code?color=black&label=) contributors!
### Features
- One-click installation of modpacks
- Automatic management of Java versions
- Windows, Mac, and Linux[^1] support
- Import your instances from CurseForge, Prism[^2], ATLauncher, MultiMC[^2], or GDLauncher
- Supports offline play once you've authenticated with your Minecraft account at least once
- Fully open source under GPLv3[^3]!
[^1]: While Linux is supported, due to the wide range of distributions out there, your mileage may vary with how well the Modrinth App works on your system. We officially distribute `.deb` and `.AppImage` packages, but third party packages have been created for a number of other package platforms. Additionally, some have reported lag issues running on Linux, we believe this to be due to an upstream Tauri issue, which we hope improves with further development.
[^2]: Certain features of the OneSix format used by Prism and MultiMC are not yet supported, so some instances may not import correctly, primarily on older Minecraft versions or unsupported mod loaders.
[^3]: Modrinth's logos, branding, and other trademarks are not free for use, see the [licensing section](#license) for more information.
## Contributing
You're welcome to help contribute to the Modrinth App if you'd like! Please review our [contribution guide](https://support.modrinth.com/en/articles/8802215-contributing-to-modrinth) before attempting to contribute or make a pull request though.
If you're not a developer and you've stumbled upon this repository, you can access the web interface on the [Modrinth website](https://modrinth.com) and download the latest release of the app [here](https://modrinth.com/app).
## Development
To get started, install [pnpm](https://pnpm.io/), [Rust](https://www.rust-lang.org/tools/install), and the [Tauri prerequisites](https://tauri.app/v1/guides/getting-started/prerequisites/#installing) for your system. Then, run the following commands:
```
cd theseus_gui
pnpm install
pnpm run tauri dev
```
This repository contains two primary packages. For detailed development information, please refer to their respective READMEs:
Once the commands finish, you'll be viewing a Tauri window with Nuxt.js hot reloading.
- [Web Interface](apps/frontend/README.md)
- [Desktop App](apps/app/README.md)
You can use `pnpm run lint` to find any eslint problems, and `pnpm run fix` to try automatically fixing those problems.
## Contributing
We welcome contributions! Before submitting any contributions, please read our [contributing guidelines](https://docs.modrinth.com/contributing/getting-started/).
If you plan to fork this repository for your own purposes, please review our [copying guidelines](COPYING.md).
## Security
If you discover a security vulnerability within our codebase, please follow our [responsible disclosure guidelines](https://modrinth.com/legal/security).
## Support
If you need help with the Modrinth web interface or app, please visit our [support page](https://support.modrinth.com). For general inquiries, you can also join our [Discord server](https://discord.modrinth.com).
## License
The source code of the theseus repository is licensed under the GNU General Public License, Version 3 only, which is provided in the file [LICENSE](https://github.com/modrinth/theseus/blob/master/LICENSE). However, some files are licensed under a different license.
Any files depicting the Modrinth branding, including the wrench-in-labyrinth logo, the landing image, and variations thereof, are licensed as follows:
> All rights reserved. © 2020-2024 Rinth, Inc.
Forking is permitted under the GPLv3, however do be aware that you must remove all Modrinth branding, including logos, brand colors, background images, or anything else that is related to trademarks or copyrights held by Rinth, Inc.
All packages in this repository are licensed under their respective licenses. Refer to the LICENSE file in each package for more information.

View File

@@ -0,0 +1 @@
**/dist

View File

@@ -0,0 +1,13 @@
# Copying
The source code of the theseus repository is licensed under the GNU General Public License, Version 3 only, which is provided in the file [LICENSE](./LICENSE). However, some files listed below are licensed under a different license.
## Modrinth logo
The use of Modrinth branding elements, including but not limited to the wrench-in-labyrinth logo, the landing image, and any variations thereof, is strictly prohibited without explicit written permission from Rinth, Inc. This includes trademarks, logos, or other branding elements.
> All rights reserved. © 2020-2023 Rinth, Inc.
This includes, but may not be limited to, the following files:
- theseus_gui/src-tauri/icons/\*

View File

@@ -0,0 +1,22 @@
import { createConfigForNuxt } from '@nuxt/eslint-config/flat'
import { fixupPluginRules } from '@eslint/compat'
import turboPlugin from 'eslint-plugin-turbo'
export default createConfigForNuxt().append([
{
name: 'turbo',
plugins: {
turbo: fixupPluginRules(turboPlugin),
},
rules: {
'turbo/no-undeclared-env-vars': 'error',
},
},
{
name: 'modrinth',
rules: {
'vue/html-self-closing': 'off',
'vue/multi-word-component-names': 'off',
},
},
])

View File

@@ -1,10 +1,12 @@
<!doctype html>
<html lang="en">
<html lang="en" class="dark-mode">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Modrinth App</title>
<link rel="stylesheet" href="/src/assets/stylesheets/global.scss" />
</head>
<body>

View File

@@ -0,0 +1,59 @@
{
"name": "@modrinth/app-frontend",
"private": true,
"version": "0.9.5",
"type": "module",
"scripts": {
"dev": "vite",
"build": "vue-tsc --noEmit && vite build",
"tsc:check": "vue-tsc --noEmit",
"lint": "eslint . && prettier --check .",
"fix": "eslint . --fix && prettier --write .",
"intl:extract": "formatjs extract \"{,src/components,src/composables,src/helpers,src/pages,src/store}/**/*.{vue,ts,tsx,js,jsx,mts,cts,mjs,cjs}\" --ignore '**/*.d.ts' --ignore 'node_modules' --out-file src/locales/en-US/index.json --format crowdin --preserve-whitespace"
},
"dependencies": {
"@modrinth/assets": "workspace:*",
"@modrinth/ui": "workspace:*",
"@modrinth/utils": "workspace:*",
"@sentry/vue": "^8.27.0",
"@geometrically/minecraft-motd-parser": "^1.1.4",
"@tauri-apps/api": "^2.5.0",
"@tauri-apps/plugin-dialog": "^2.2.1",
"@tauri-apps/plugin-os": "^2.2.1",
"@tauri-apps/plugin-opener": "^2.2.6",
"@tauri-apps/plugin-updater": "^2.7.1",
"@tauri-apps/plugin-window-state": "^2.2.2",
"@vintl/vintl": "^4.4.1",
"dayjs": "^1.11.10",
"floating-vue": "^5.2.2",
"ofetch": "^1.3.4",
"pinia": "^2.1.7",
"posthog-js": "^1.158.2",
"vite-svg-loader": "^5.1.0",
"vue": "^3.5.13",
"vue-multiselect": "3.0.0",
"vue-router": "4.3.0",
"vue-virtual-scroller": "v2.0.0-beta.8"
},
"devDependencies": {
"@eslint/compat": "^1.1.1",
"@formatjs/cli": "^6.2.12",
"@nuxt/eslint-config": "^0.5.6",
"@vitejs/plugin-vue": "^5.0.4",
"autoprefixer": "^10.4.19",
"eslint": "^9.9.1",
"eslint-config-custom": "workspace:*",
"eslint-plugin-turbo": "^2.1.1",
"postcss": "^8.4.39",
"prettier": "^3.2.5",
"sass": "^1.74.1",
"tailwindcss": "^3.4.4",
"tsconfig": "workspace:*",
"typescript": "^5.5.4",
"vite": "^5.4.6",
"vue-tsc": "^2.1.6",
"@taijased/vue-render-tracker": "^1.0.7"
},
"packageManager": "pnpm@9.4.0",
"web-types": "../../web-types.json"
}

View File

@@ -0,0 +1,6 @@
export default {
plugins: {
tailwindcss: {},
autoprefixer: {},
},
}

View File

@@ -0,0 +1,857 @@
<script setup>
import { computed, onMounted, onUnmounted, ref, watch } from 'vue'
import { RouterView, useRoute, useRouter } from 'vue-router'
import {
ArrowBigUpDashIcon,
CompassIcon,
DownloadIcon,
HomeIcon,
LeftArrowIcon,
LibraryIcon,
LogInIcon,
LogOutIcon,
MaximizeIcon,
MinimizeIcon,
PlusIcon,
RestoreIcon,
RightArrowIcon,
SettingsIcon,
WorldIcon,
XIcon,
} from '@modrinth/assets'
import {
Avatar,
Button,
ButtonStyled,
Notifications,
OverflowMenu,
useRelativeTime,
} from '@modrinth/ui'
import { useLoading, useTheming } from '@/store/state'
import ModrinthAppLogo from '@/assets/modrinth_app.svg?component'
import AccountsCard from '@/components/ui/AccountsCard.vue'
import InstanceCreationModal from '@/components/ui/InstanceCreationModal.vue'
import { get } from '@/helpers/settings.ts'
import Breadcrumbs from '@/components/ui/Breadcrumbs.vue'
import RunningAppBar from '@/components/ui/RunningAppBar.vue'
import SplashScreen from '@/components/ui/SplashScreen.vue'
import ErrorModal from '@/components/ui/ErrorModal.vue'
import ModrinthLoadingIndicator from '@/components/LoadingIndicatorBar.vue'
import { handleError, useNotifications } from '@/store/notifications.js'
import { command_listener, warning_listener } from '@/helpers/events.js'
import { type } from '@tauri-apps/plugin-os'
import { getOS, isDev, restartApp } from '@/helpers/utils.js'
import { debugAnalytics, initAnalytics, optOutAnalytics, trackEvent } from '@/helpers/analytics'
import { getCurrentWindow } from '@tauri-apps/api/window'
import { getVersion } from '@tauri-apps/api/app'
import URLConfirmModal from '@/components/ui/URLConfirmModal.vue'
import { create_profile_and_install_from_file } from './helpers/pack'
import { useError } from '@/store/error.js'
import { useCheckDisableMouseover } from '@/composables/macCssFix.js'
import ModInstallModal from '@/components/ui/install_flow/ModInstallModal.vue'
import IncompatibilityWarningModal from '@/components/ui/install_flow/IncompatibilityWarningModal.vue'
import InstallConfirmModal from '@/components/ui/install_flow/InstallConfirmModal.vue'
import { useInstall } from '@/store/install.js'
import { invoke } from '@tauri-apps/api/core'
import { get_opening_command, initialize_state } from '@/helpers/state'
import { saveWindowState, StateFlags } from '@tauri-apps/plugin-window-state'
import { renderString } from '@modrinth/utils'
import { useFetch } from '@/helpers/fetch.js'
import { check } from '@tauri-apps/plugin-updater'
import NavButton from '@/components/ui/NavButton.vue'
import { get as getCreds, login, logout } from '@/helpers/mr_auth.js'
import { get_user } from '@/helpers/cache.js'
import AppSettingsModal from '@/components/ui/modal/AppSettingsModal.vue'
import dayjs from 'dayjs'
import PromotionWrapper from '@/components/ui/PromotionWrapper.vue'
import { hide_ads_window, init_ads_window } from '@/helpers/ads.js'
import FriendsList from '@/components/ui/friends/FriendsList.vue'
import { openUrl } from '@tauri-apps/plugin-opener'
import QuickInstanceSwitcher from '@/components/ui/QuickInstanceSwitcher.vue'
const formatRelativeTime = useRelativeTime()
const themeStore = useTheming()
const news = ref([])
const urlModal = ref(null)
const offline = ref(!navigator.onLine)
window.addEventListener('offline', () => {
offline.value = true
})
window.addEventListener('online', () => {
offline.value = false
})
const showOnboarding = ref(false)
const nativeDecorations = ref(false)
const os = ref('')
const stateInitialized = ref(false)
const criticalErrorMessage = ref()
const isMaximized = ref(false)
onMounted(async () => {
await useCheckDisableMouseover()
document.querySelector('body').addEventListener('click', handleClick)
document.querySelector('body').addEventListener('auxclick', handleAuxClick)
})
onUnmounted(() => {
document.querySelector('body').removeEventListener('click', handleClick)
document.querySelector('body').removeEventListener('auxclick', handleAuxClick)
})
async function setupApp() {
stateInitialized.value = true
const {
native_decorations,
theme,
telemetry,
collapsed_navigation,
advanced_rendering,
onboarded,
default_page,
toggle_sidebar,
developer_mode,
feature_flags,
} = await get()
if (default_page === 'Library') {
await router.push('/library')
}
os.value = await getOS()
const dev = await isDev()
const version = await getVersion()
showOnboarding.value = !onboarded
nativeDecorations.value = native_decorations
if (os.value !== 'MacOS') await getCurrentWindow().setDecorations(native_decorations)
themeStore.setThemeState(theme)
themeStore.collapsedNavigation = collapsed_navigation
themeStore.advancedRendering = advanced_rendering
themeStore.toggleSidebar = toggle_sidebar
themeStore.devMode = developer_mode
themeStore.featureFlags = feature_flags
isMaximized.value = await getCurrentWindow().isMaximized()
await getCurrentWindow().onResized(async () => {
isMaximized.value = await getCurrentWindow().isMaximized()
})
initAnalytics()
if (!telemetry) {
optOutAnalytics()
}
if (dev) debugAnalytics()
trackEvent('Launched', { version, dev, onboarded })
if (!dev) document.addEventListener('contextmenu', (event) => event.preventDefault())
const osType = await type()
if (osType === 'macos') {
document.getElementsByTagName('html')[0].classList.add('mac')
} else {
document.getElementsByTagName('html')[0].classList.add('windows')
}
await warning_listener((e) =>
notificationsWrapper.value.addNotification({
title: 'Warning',
text: e.message,
type: 'warn',
}),
)
useFetch(
`https://api.modrinth.com/appCriticalAnnouncement.json?version=${version}`,
'criticalAnnouncements',
true,
)
.then((res) => {
if (res && res.header && res.body) {
criticalErrorMessage.value = res
}
})
.catch(() => {
console.log(
`No critical announcement found at https://api.modrinth.com/appCriticalAnnouncement.json?version=${version}`,
)
})
useFetch(`https://modrinth.com/blog/news.json`, 'news', true).then((res) => {
if (res && res.articles) {
news.value = res.articles
}
})
get_opening_command().then(handleCommand)
checkUpdates()
fetchCredentials()
}
const stateFailed = ref(false)
initialize_state()
.then(() => {
setupApp().catch((err) => {
stateFailed.value = true
console.error(err)
error.showError(err, null, false, 'state_init')
})
})
.catch((err) => {
stateFailed.value = true
console.error('Failed to initialize app', err)
error.showError(err, null, false, 'state_init')
})
const handleClose = async () => {
await saveWindowState(StateFlags.ALL)
await getCurrentWindow().close()
}
const router = useRouter()
router.afterEach((to, from, failure) => {
trackEvent('PageView', { path: to.path, fromPath: from.path, failed: failure })
})
const route = useRoute()
const loading = useLoading()
loading.setEnabled(false)
const notifications = useNotifications()
const notificationsWrapper = ref()
const error = useError()
const errorModal = ref()
const install = useInstall()
const modInstallModal = ref()
const installConfirmModal = ref()
const incompatibilityWarningModal = ref()
const credentials = ref()
async function fetchCredentials() {
const creds = await getCreds().catch(handleError)
if (creds && creds.user_id) {
creds.user = await get_user(creds.user_id).catch(handleError)
}
credentials.value = creds
}
async function signIn() {
await login().catch(handleError)
await fetchCredentials()
}
async function logOut() {
await logout().catch(handleError)
await fetchCredentials()
}
const MIDAS_BITFLAG = 1 << 0
const hasPlus = computed(
() =>
credentials.value &&
credentials.value.user &&
(credentials.value.user.badges & MIDAS_BITFLAG) === MIDAS_BITFLAG,
)
const sidebarToggled = ref(true)
themeStore.$subscribe(() => {
sidebarToggled.value = !themeStore.toggleSidebar
})
const forceSidebar = computed(
() => route.path.startsWith('/browse') || route.path.startsWith('/project'),
)
const sidebarVisible = computed(() => sidebarToggled.value || forceSidebar.value)
const showAd = computed(() => !(!sidebarVisible.value || hasPlus.value))
watch(
showAd,
() => {
if (!showAd.value) {
hide_ads_window(true)
} else {
init_ads_window(true)
}
},
{ immediate: true },
)
onMounted(() => {
invoke('show_window')
notifications.setNotifs(notificationsWrapper.value)
error.setErrorModal(errorModal.value)
install.setIncompatibilityWarningModal(incompatibilityWarningModal)
install.setInstallConfirmModal(installConfirmModal)
install.setModInstallModal(modInstallModal)
})
const accounts = ref(null)
command_listener(handleCommand)
async function handleCommand(e) {
if (!e) return
if (e.event === 'RunMRPack') {
// RunMRPack should directly install a local mrpack given a path
if (e.path.endsWith('.mrpack')) {
await create_profile_and_install_from_file(e.path).catch(handleError)
trackEvent('InstanceCreate', {
source: 'CreationModalFileDrop',
})
}
} else {
// Other commands are URL-based (deep linking)
urlModal.value.show(e)
}
}
const updateAvailable = ref(false)
async function checkUpdates() {
const update = await check()
updateAvailable.value = !!update
setTimeout(
() => {
checkUpdates()
},
5 * 1000 * 60,
)
}
function handleClick(e) {
let target = e.target
while (target != null) {
if (target.matches('a')) {
if (
target.href &&
['http://', 'https://', 'mailto:', 'tel:'].some((v) => target.href.startsWith(v)) &&
!target.classList.contains('router-link-active') &&
!target.href.startsWith('http://localhost') &&
!target.href.startsWith('https://tauri.localhost') &&
!target.href.startsWith('http://tauri.localhost')
) {
openUrl(target.href)
}
e.preventDefault()
break
}
target = target.parentElement
}
}
function handleAuxClick(e) {
// disables middle click -> new tab
if (e.button === 1) {
e.preventDefault()
// instead do a left click
const event = new MouseEvent('click', {
view: window,
bubbles: true,
cancelable: true,
})
e.target.dispatchEvent(event)
}
}
</script>
<template>
<SplashScreen v-if="!stateFailed" ref="splashScreen" data-tauri-drag-region />
<div id="teleports"></div>
<div v-if="stateInitialized" class="app-grid-layout experimental-styles-within relative">
<Suspense>
<AppSettingsModal ref="settingsModal" />
</Suspense>
<Suspense>
<InstanceCreationModal ref="installationModal" />
</Suspense>
<div
class="app-grid-navbar bg-bg-raised flex flex-col p-[0.5rem] pt-0 gap-[0.5rem] w-[--left-bar-width]"
>
<NavButton v-tooltip.right="'Home'" to="/">
<HomeIcon />
</NavButton>
<NavButton v-if="themeStore.featureFlags.worlds_tab" v-tooltip.right="'Worlds'" to="/worlds">
<WorldIcon />
</NavButton>
<NavButton
v-tooltip.right="'Discover content'"
to="/browse/modpack"
:is-primary="() => route.path.startsWith('/browse') && !route.query.i"
:is-subpage="(route) => route.path.startsWith('/project') && !route.query.i"
>
<CompassIcon />
</NavButton>
<NavButton
v-tooltip.right="'Library'"
to="/library"
:is-subpage="
() =>
route.path.startsWith('/instance') ||
((route.path.startsWith('/browse') || route.path.startsWith('/project')) &&
route.query.i)
"
>
<LibraryIcon />
</NavButton>
<div class="h-px w-6 mx-auto my-2 bg-button-bg"></div>
<suspense>
<QuickInstanceSwitcher />
</suspense>
<NavButton
v-tooltip.right="'Create new instance'"
:to="() => $refs.installationModal.show()"
:disabled="offline"
>
<PlusIcon />
</NavButton>
<div class="flex flex-grow"></div>
<NavButton v-if="updateAvailable" v-tooltip.right="'Install update'" :to="() => restartApp()">
<DownloadIcon />
</NavButton>
<NavButton v-tooltip.right="'Settings'" :to="() => $refs.settingsModal.show()">
<SettingsIcon />
</NavButton>
<ButtonStyled v-if="credentials" type="transparent" circular>
<OverflowMenu
:options="[
{
id: 'sign-out',
action: () => logOut(),
color: 'danger',
},
]"
direction="left"
>
<Avatar
:src="credentials.user.avatar_url"
:alt="credentials.user.username"
size="32px"
circle
/>
<template #sign-out> <LogOutIcon /> Sign out </template>
</OverflowMenu>
</ButtonStyled>
<NavButton v-else v-tooltip.right="'Sign in'" :to="() => signIn()">
<LogInIcon />
<template #label>Sign in</template>
</NavButton>
</div>
<div data-tauri-drag-region class="app-grid-statusbar bg-bg-raised h-[--top-bar-height] flex">
<div data-tauri-drag-region class="flex p-3">
<ModrinthAppLogo class="h-full w-auto text-contrast pointer-events-none" />
<div class="flex items-center gap-1 ml-3">
<button
class="cursor-pointer p-0 m-0 border-none outline-none bg-button-bg rounded-full flex items-center justify-center w-6 h-6 hover:brightness-75 transition-all"
@click="router.back()"
>
<LeftArrowIcon />
</button>
<button
class="cursor-pointer p-0 m-0 border-none outline-none bg-button-bg rounded-full flex items-center justify-center w-6 h-6 hover:brightness-75 transition-all"
@click="router.forward()"
>
<RightArrowIcon />
</button>
</div>
<Breadcrumbs class="pt-[2px]" />
</div>
<section class="flex ml-auto items-center">
<ButtonStyled
v-if="!forceSidebar && themeStore.toggleSidebar"
:type="sidebarToggled ? 'standard' : 'transparent'"
circular
>
<button
class="mr-3 transition-transform"
:class="{ 'rotate-180': !sidebarToggled }"
@click="sidebarToggled = !sidebarToggled"
>
<RightArrowIcon />
</button>
</ButtonStyled>
<div class="flex mr-3">
<Suspense>
<RunningAppBar />
</Suspense>
</div>
<section v-if="!nativeDecorations" class="window-controls" data-tauri-drag-region-exclude>
<Button class="titlebar-button" icon-only @click="() => getCurrentWindow().minimize()">
<MinimizeIcon />
</Button>
<Button
class="titlebar-button"
icon-only
@click="() => getCurrentWindow().toggleMaximize()"
>
<RestoreIcon v-if="isMaximized" />
<MaximizeIcon v-else />
</Button>
<Button class="titlebar-button close" icon-only @click="handleClose">
<XIcon />
</Button>
</section>
</section>
</div>
</div>
<div
v-if="stateInitialized"
class="app-contents experimental-styles-within"
:class="{ 'sidebar-enabled': sidebarVisible }"
>
<div class="app-viewport flex-grow router-view">
<div
class="loading-indicator-container h-8 fixed z-50"
:style="{
top: 'calc(var(--top-bar-height))',
left: 'calc(var(--left-bar-width))',
width: 'calc(100% - var(--left-bar-width) - var(--right-bar-width))',
}"
>
<ModrinthLoadingIndicator />
</div>
<div
v-if="themeStore.featureFlags.page_path"
class="absolute bottom-0 left-0 m-2 bg-tooltip-bg text-tooltip-text font-semibold rounded-full px-2 py-1 text-xs z-50"
>
{{ route.fullPath }}
</div>
<div
id="background-teleport-target"
class="absolute h-full -z-10 rounded-tl-[--radius-xl] overflow-hidden"
:style="{
width: 'calc(100% - var(--right-bar-width))',
}"
></div>
<div
v-if="criticalErrorMessage"
class="m-6 mb-0 flex flex-col border-red bg-bg-red rounded-2xl border-2 border-solid p-4 gap-1 font-semibold text-contrast"
>
<h1 class="m-0 text-lg font-extrabold">{{ criticalErrorMessage.header }}</h1>
<div
class="markdown-body text-primary"
v-html="renderString(criticalErrorMessage.body ?? '')"
></div>
</div>
<RouterView v-slot="{ Component }">
<template v-if="Component">
<Suspense @pending="loading.startLoading()" @resolve="loading.stopLoading()">
<component :is="Component"></component>
</Suspense>
</template>
</RouterView>
</div>
<div
class="app-sidebar mt-px shrink-0 flex flex-col border-0 border-l-[1px] border-[--brand-gradient-border] border-solid overflow-auto"
:class="{ 'has-plus': hasPlus }"
>
<div
class="app-sidebar-scrollable flex-grow shrink overflow-y-auto relative"
:class="{ 'pb-12': !hasPlus }"
>
<div id="sidebar-teleport-target" class="sidebar-teleport-content"></div>
<div class="sidebar-default-content" :class="{ 'sidebar-enabled': sidebarVisible }">
<div class="p-4 border-0 border-b-[1px] border-[--brand-gradient-border] border-solid">
<h3 class="text-lg m-0">Playing as</h3>
<suspense>
<AccountsCard ref="accounts" mode="small" />
</suspense>
</div>
<div class="p-4 border-0 border-b-[1px] border-[--brand-gradient-border] border-solid">
<suspense>
<FriendsList :credentials="credentials" :sign-in="() => signIn()" />
</suspense>
</div>
<div v-if="news && news.length > 0" class="pt-4 flex flex-col">
<h3 class="px-4 text-lg m-0">News</h3>
<template v-for="(item, index) in news" :key="`news-${index}`">
<a
:class="`flex flex-col outline-offset-[-4px] hover:bg-[--brand-gradient-border] focus:bg-[--brand-gradient-border] px-4 transition-colors ${index === 0 ? 'pt-2 pb-4' : 'py-4'}`"
:href="item.link"
target="_blank"
rel="external"
>
<img
:src="item.thumbnail"
alt="News thumbnail"
aria-hidden="true"
class="w-full aspect-[3/1] object-cover rounded-2xl border-[1px] border-solid border-[--brand-gradient-border]"
/>
<h4 class="mt-2 mb-0 text-sm leading-none text-contrast font-semibold">
{{ item.title }}
</h4>
<p class="my-1 text-sm text-secondary leading-tight">{{ item.summary }}</p>
<p class="text-right text-sm text-secondary opacity-60 leading-tight m-0">
{{ formatRelativeTime(dayjs(item.date).toISOString()) }}
</p>
</a>
<hr
v-if="index !== news.length - 1"
class="h-px my-[-2px] mx-4 border-0 m-0 bg-[--brand-gradient-border]"
/>
</template>
</div>
</div>
</div>
<template v-if="showAd">
<a
href="https://modrinth.plus?app"
class="absolute bottom-[250px] w-full flex justify-center items-center gap-1 px-4 py-3 text-purple font-medium hover:underline z-10"
target="_blank"
>
<ArrowBigUpDashIcon class="text-2xl" /> Upgrade to Modrinth+
</a>
<PromotionWrapper />
</template>
</div>
</div>
<URLConfirmModal ref="urlModal" />
<Notifications ref="notificationsWrapper" sidebar />
<ErrorModal ref="errorModal" />
<ModInstallModal ref="modInstallModal" />
<IncompatibilityWarningModal ref="incompatibilityWarningModal" />
<InstallConfirmModal ref="installConfirmModal" />
</template>
<style lang="scss" scoped>
.window-controls {
z-index: 20;
display: none;
flex-direction: row;
align-items: center;
.titlebar-button {
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
transition: all ease-in-out 0.1s;
background-color: transparent;
color: var(--color-base);
height: 100%;
width: 3rem;
position: relative;
box-shadow: none;
&:last-child {
padding-right: 0.75rem;
width: 3.75rem;
}
svg {
width: 1.25rem;
height: 1.25rem;
}
&::before {
content: '';
border-radius: 999999px;
width: 3rem;
height: 3rem;
aspect-ratio: 1 / 1;
margin-block: auto;
position: absolute;
background-color: transparent;
scale: 0.9;
transition: all ease-in-out 0.2s;
z-index: -1;
}
&.close {
&:hover,
&:active {
color: var(--color-accent-contrast);
&::before {
background-color: var(--color-red);
}
}
}
&:hover,
&:active {
color: var(--color-contrast);
&::before {
background-color: var(--color-button-bg);
scale: 1;
}
}
}
}
.app-grid-layout,
.app-contents {
--top-bar-height: 3rem;
--left-bar-width: 4rem;
--right-bar-width: 300px;
}
.app-grid-layout {
display: grid;
grid-template: 'status status' 'nav dummy';
grid-template-columns: auto 1fr;
grid-template-rows: auto 1fr;
position: relative;
//z-index: 0;
background-color: var(--color-raised-bg);
height: 100vh;
}
.app-grid-navbar {
grid-area: nav;
}
.app-grid-statusbar {
grid-area: status;
}
[data-tauri-drag-region] {
-webkit-app-region: drag;
}
[data-tauri-drag-region-exclude] {
-webkit-app-region: no-drag;
}
.app-contents {
position: absolute;
z-index: 1;
left: var(--left-bar-width);
top: var(--top-bar-height);
right: 0;
bottom: 0;
height: calc(100vh - var(--top-bar-height));
background-color: var(--color-bg);
border-top-left-radius: var(--radius-xl);
display: grid;
grid-template-columns: 1fr 0px;
// transition: grid-template-columns 0.4s ease-in-out;
&.sidebar-enabled {
grid-template-columns: 1fr 300px;
}
}
.loading-indicator-container {
border-top-left-radius: var(--radius-xl);
overflow: hidden;
}
.app-sidebar {
overflow: visible;
width: 300px;
position: relative;
height: calc(100vh - var(--top-bar-height));
background: var(--brand-gradient-bg);
--color-button-bg: var(--brand-gradient-button);
--color-button-bg-hover: var(--brand-gradient-border);
--color-divider: var(--brand-gradient-border);
--color-divider-dark: var(--brand-gradient-border);
}
.app-sidebar::after {
content: '';
position: absolute;
bottom: 250px;
left: 0;
right: 0;
height: 5rem;
background: var(--brand-gradient-fade-out-color);
pointer-events: none;
}
.app-sidebar.has-plus::after {
display: none;
}
.app-sidebar::before {
content: '';
box-shadow: -15px 0 15px -15px rgba(0, 0, 0, 0.2) inset;
top: 0;
bottom: 0;
left: -2rem;
width: 2rem;
position: absolute;
pointer-events: none;
}
.app-viewport {
flex-grow: 1;
height: 100%;
overflow: auto;
overflow-x: hidden;
}
.app-contents::before {
z-index: 1;
content: '';
position: fixed;
left: var(--left-bar-width);
top: var(--top-bar-height);
right: calc(-1 * var(--left-bar-width));
bottom: calc(-1 * var(--left-bar-width));
border-radius: var(--radius-xl);
box-shadow:
1px 1px 15px rgba(0, 0, 0, 0.2) inset,
inset 1px 1px 1px rgba(255, 255, 255, 0.23);
pointer-events: none;
}
.sidebar-teleport-content {
display: contents;
}
.sidebar-default-content {
display: none;
}
.sidebar-teleport-content:empty + .sidebar-default-content.sidebar-enabled {
display: contents;
}
</style>
<style>
.mac {
.app-grid-statusbar {
padding-left: 5rem;
}
}
.windows {
.fake-appbar {
height: 2.5rem !important;
}
.window-controls {
display: flex !important;
}
.info-card {
right: 8rem;
}
.profile-card {
right: 8rem;
}
}
</style>
<style src="vue-multiselect/dist/vue-multiselect.css"></style>

View File

Before

Width:  |  Height:  |  Size: 952 B

After

Width:  |  Height:  |  Size: 952 B

View File

Before

Width:  |  Height:  |  Size: 8.1 KiB

After

Width:  |  Height:  |  Size: 8.1 KiB

View File

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

View File

Before

Width:  |  Height:  |  Size: 901 B

After

Width:  |  Height:  |  Size: 901 B

View File

Before

Width:  |  Height:  |  Size: 757 B

After

Width:  |  Height:  |  Size: 757 B

View File

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

Before

Width:  |  Height:  |  Size: 718 B

After

Width:  |  Height:  |  Size: 718 B

View File

Before

Width:  |  Height:  |  Size: 962 B

After

Width:  |  Height:  |  Size: 962 B

View File

Before

Width:  |  Height:  |  Size: 257 B

After

Width:  |  Height:  |  Size: 257 B

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 415 B

After

Width:  |  Height:  |  Size: 415 B

View File

Before

Width:  |  Height:  |  Size: 274 B

After

Width:  |  Height:  |  Size: 274 B

View File

Before

Width:  |  Height:  |  Size: 706 B

After

Width:  |  Height:  |  Size: 706 B

View File

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

Before

Width:  |  Height:  |  Size: 924 B

After

Width:  |  Height:  |  Size: 924 B

View File

Before

Width:  |  Height:  |  Size: 881 B

After

Width:  |  Height:  |  Size: 881 B

View File

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

View File

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 24 KiB

View File

Before

Width:  |  Height:  |  Size: 315 B

After

Width:  |  Height:  |  Size: 315 B

View File

Before

Width:  |  Height:  |  Size: 427 B

After

Width:  |  Height:  |  Size: 427 B

View File

@@ -1,14 +1,9 @@
export { default as ServerIcon } from './server.svg'
export { default as MinimizeIcon } from './minimize.svg'
export { default as MaximizeIcon } from './maximize.svg'
export { default as SwapIcon } from './arrow-left-right.svg'
export { default as ToggleIcon } from './toggle.svg'
export { default as PackageIcon } from './package.svg'
export { default as VersionIcon } from './milestone.svg'
export { default as MoreIcon } from './more.svg'
export { default as TextInputIcon } from './text-cursor-input.svg'
export { default as AddProjectImage } from './add-project.svg'
export { default as NewInstanceImage } from './new-instance.svg'
export { default as MenuIcon } from './menu.svg'
export { default as BugIcon } from './bug.svg'
export { default as ChatIcon } from './messages-square.svg'

View File

Before

Width:  |  Height:  |  Size: 326 B

After

Width:  |  Height:  |  Size: 326 B

View File

Before

Width:  |  Height:  |  Size: 359 B

After

Width:  |  Height:  |  Size: 359 B

View File

Before

Width:  |  Height:  |  Size: 322 B

After

Width:  |  Height:  |  Size: 322 B

View File

Before

Width:  |  Height:  |  Size: 315 B

After

Width:  |  Height:  |  Size: 315 B

View File

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

View File

Before

Width:  |  Height:  |  Size: 461 B

After

Width:  |  Height:  |  Size: 461 B

View File

Before

Width:  |  Height:  |  Size: 405 B

After

Width:  |  Height:  |  Size: 405 B

View File

Before

Width:  |  Height:  |  Size: 449 B

After

Width:  |  Height:  |  Size: 449 B

View File

Before

Width:  |  Height:  |  Size: 309 B

After

Width:  |  Height:  |  Size: 309 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 270 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 12 KiB

View File

@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:serif="http://www.serif.com/" version="1.1" viewBox="0 0 1793 199">
<g>
<g id="Layer_1">
<g id="green" fill="var(--color-brand)">
<path d="M1184.1,166.6c-8,0-15.6-1-22.9-3.1s-13.1-4.6-17.4-7.6l8.5-16.9c4.3,2.7,9.4,5,15.3,6.8,5.9,1.8,11.9,2.7,17.8,2.7s12.1-.9,15.2-2.8c3.1-1.9,4.7-4.5,4.7-7.7s-1.1-4.6-3.2-6c-2.1-1.4-4.9-2.4-8.4-3.1-3.4-.7-7.3-1.4-11.5-2-4.2-.6-8.4-1.4-12.6-2.4-4.2-1-8-2.5-11.5-4.5-3.4-2-6.2-4.6-8.4-7.9-2.1-3.3-3.2-7.7-3.2-13.2s1.7-11.3,5.2-15.8c3.4-4.5,8.3-7.9,14.5-10.3,6.2-2.4,13.6-3.7,22.2-3.7s12.9.7,19.4,2.1c6.5,1.4,11.9,3.4,16.2,6.1l-8.5,16.9c-4.5-2.7-9.1-4.6-13.6-5.6-4.6-1-9.1-1.5-13.6-1.5-6.8,0-11.8,1-15,3-3.3,2-4.9,4.6-4.9,7.7s1.1,5,3.2,6.4c2.1,1.4,4.9,2.6,8.4,3.4,3.4.8,7.3,1.5,11.5,2,4.2.5,8.4,1.3,12.6,2.4,4.2,1.1,8,2.5,11.5,4.4,3.5,1.8,6.3,4.4,8.5,7.7,2.1,3.3,3.2,7.7,3.2,13s-1.8,11.1-5.3,15.5c-3.5,4.4-8.5,7.8-14.9,10.2-6.4,2.4-14.1,3.7-23,3.7Z"/>
<path d="M1291.1,166.6c-10.6,0-19.8-2.1-27.7-6.3-7.9-4.2-14-10-18.3-17.4-4.3-7.4-6.5-15.7-6.5-25.1s2.1-17.9,6.3-25.2c4.2-7.3,10-13,17.5-17.2,7.4-4.2,15.9-6.2,25.4-6.2s17.5,2,24.8,6.1c7.2,4,12.9,9.7,17.1,17.1,4.2,7.4,6.2,16,6.2,26s0,2,0,3.2c0,1.2-.2,2.3-.3,3.4h-79.3v-14.8h67.5l-8.7,4.6c.1-5.5-1-10.3-3.4-14.4-2.4-4.2-5.6-7.4-9.7-9.8-4.1-2.4-8.8-3.6-14.2-3.6s-10.2,1.2-14.3,3.6c-4.1,2.4-7.3,5.7-9.6,9.9-2.3,4.2-3.5,9.2-3.5,14.9v3.6c0,5.7,1.3,10.7,3.9,15.1,2.6,4.4,6.3,7.8,11,10.2,4.7,2.4,10.2,3.6,16.4,3.6s10.2-.8,14.4-2.5c4.3-1.7,8.1-4.3,11.4-7.8l11.9,13.7c-4.3,5-9.6,8.8-16.1,11.5-6.5,2.7-13.9,4-22.2,4Z"/>
<path d="M1357.2,165.3v-95.1h21.2v26.2l-2.5-7.7c2.8-6.4,7.3-11.3,13.4-14.6,6.1-3.3,13.7-5,22.9-5v21.2c-1-.2-1.8-.4-2.7-.4-.8,0-1.7,0-2.5,0-8.4,0-15.1,2.5-20.1,7.4-5,4.9-7.5,12.3-7.5,22v46.1h-22.3Z"/>
<path d="M1460,165.3l-40.8-95.1h23.2l35.1,83.9h-11.4l36.3-83.9h21.4l-40.8,95.1h-23Z"/>
<path d="M1579.6,166.6c-10.6,0-19.8-2.1-27.7-6.3-7.9-4.2-14-10-18.3-17.4-4.3-7.4-6.5-15.7-6.5-25.1s2.1-17.9,6.3-25.2c4.2-7.3,10-13,17.5-17.2,7.4-4.2,15.9-6.2,25.4-6.2s17.5,2,24.8,6.1c7.2,4,12.9,9.7,17.1,17.1,4.2,7.4,6.2,16,6.2,26s0,2,0,3.2c0,1.2-.2,2.3-.3,3.4h-79.3v-14.8h67.5l-8.7,4.6c.1-5.5-1-10.3-3.4-14.4-2.4-4.2-5.6-7.4-9.7-9.8-4.1-2.4-8.8-3.6-14.2-3.6s-10.2,1.2-14.3,3.6c-4.1,2.4-7.3,5.7-9.6,9.9-2.3,4.2-3.5,9.2-3.5,14.9v3.6c0,5.7,1.3,10.7,3.9,15.1,2.6,4.4,6.3,7.8,11,10.2,4.7,2.4,10.2,3.6,16.4,3.6s10.2-.8,14.4-2.5c4.3-1.7,8.1-4.3,11.4-7.8l11.9,13.7c-4.3,5-9.6,8.8-16.1,11.5-6.5,2.7-13.9,4-22.2,4Z"/>
<path d="M1645.7,165.3v-95.1h21.2v26.2l-2.5-7.7c2.8-6.4,7.3-11.3,13.4-14.6,6.1-3.3,13.7-5,22.9-5v21.2c-1-.2-1.8-.4-2.7-.4-.8,0-1.7,0-2.5,0-8.4,0-15.1,2.5-20.1,7.4-5,4.9-7.5,12.3-7.5,22v46.1h-22.3Z"/>
<path d="M1749.9,166.6c-8,0-15.6-1-22.9-3.1s-13.1-4.6-17.4-7.6l8.5-16.9c4.3,2.7,9.4,5,15.3,6.8,5.9,1.8,11.9,2.7,17.8,2.7s12.1-.9,15.2-2.8c3.1-1.9,4.7-4.5,4.7-7.7s-1.1-4.6-3.2-6c-2.1-1.4-4.9-2.4-8.4-3.1-3.4-.7-7.3-1.4-11.5-2-4.2-.6-8.4-1.4-12.6-2.4-4.2-1-8-2.5-11.5-4.5-3.4-2-6.2-4.6-8.4-7.9-2.1-3.3-3.2-7.7-3.2-13.2s1.7-11.3,5.2-15.8c3.4-4.5,8.3-7.9,14.5-10.3,6.2-2.4,13.6-3.7,22.2-3.7s12.9.7,19.4,2.1c6.5,1.4,11.9,3.4,16.2,6.1l-8.5,16.9c-4.5-2.7-9.1-4.6-13.6-5.6-4.6-1-9.1-1.5-13.6-1.5-6.8,0-11.8,1-15,3-3.3,2-4.9,4.6-4.9,7.7s1.1,5,3.2,6.4c2.1,1.4,4.9,2.6,8.4,3.4,3.4.8,7.3,1.5,11.5,2,4.2.5,8.4,1.3,12.6,2.4,4.2,1.1,8,2.5,11.5,4.4,3.5,1.8,6.3,4.4,8.5,7.7,2.1,3.3,3.2,7.7,3.2,13s-1.8,11.1-5.3,15.5c-3.5,4.4-8.5,7.8-14.9,10.2-6.4,2.4-14.1,3.7-23,3.7Z"/>
<g>
<path d="M9.8,143l63.4-38.1-5.8-15.3,18.1-18.6,22.9-4.9,6.6,8.2-10.6,10.7-9.2,2.9-6.6,6.8,3.2,9,6.5,6.9,9.2-2.5,6.6-7.2,14.3-4.5,4.3,9.6-14.8,18.1-24.8,7.8-11.1-12.4-63.6,38.2c-3-3.9-6.5-9.4-8.8-14.7ZM192.8,65.4l-50.4,13.6c2.8,7.4,3.7,11.7,4.5,16.5l50.3-13.6c-.8-5.4-2.2-10.8-4.4-16.5Z" fill-rule="evenodd"/>
<path d="M17.3,106.5c3.6,42.1,38.9,75.2,82,75.2s60.7-18.9,74-46.3l16.4,5.7c-15.8,34.1-50.3,57.9-90.4,57.9S3.6,158.2,0,106.5h17.3ZM.3,89.4C5.3,39.2,47.8,0,99.3,0s99.5,44.6,99.5,99.5-1.1,17.4-3.3,25.5l-16.3-5.7c1.6-6.5,2.4-13.1,2.4-19.8,0-45.4-36.9-82.3-82.3-82.3S22.6,48.7,17.6,89.4H.3Z" fill-rule="evenodd"/>
<path d="M99,51.6c-26.4,0-47.9,21.5-47.9,48s21.5,48,48,48,2.7,0,4-.2l4.8,16.8c-2.9.4-5.8.6-8.8.6-36,0-65.2-29.2-65.2-65.2S63.1,34.4,99,34.4s1.8,0,2.7,0l-2.7,17.1ZM118.6,37.4c26.4,8.3,45.6,33,45.6,62.2s-16.4,50.2-39.8,60l-4.8-16.7c16.2-7.7,27.4-24.2,27.4-43.3s-13-38.1-31.1-44.9l2.7-17.2Z" fill-rule="evenodd"/>
</g>
</g>
<g id="black" fill="currentColor">
<path d="M354.8,69.2c12,0,21.7,3.4,28.6,10.4,7,7.2,10.6,17.5,10.6,31.5v54.8h-22.4v-51.9c0-8.4-1.8-14.7-5.5-19-3.8-4.1-8.9-6.3-15.9-6.3s-13.6,2.5-18.1,7.3c-4.5,5-6.8,12.2-6.8,21.3v48.5h-22.4v-51.9c0-8.4-1.8-14.7-5.5-19-3.8-4.1-8.9-6.3-15.9-6.3s-13.6,2.5-18.1,7.3c-4.5,4.8-6.8,12-6.8,21.3v48.5h-22.4v-95.6h21.3v12.2c3.6-4.3,8.1-7.5,13.4-9.8,5.4-2.3,11.3-3.4,17.9-3.4s13.6,1.3,19.2,3.9c5.5,2.9,9.8,6.8,13.1,12,3.9-5,8.9-8.9,15.2-11.8,6.3-2.7,13.1-4.1,20.6-4.1ZM466,167.2c-9.7,0-18.4-2.1-26.1-6.3-7.6-4-13.8-10.1-18.1-17.5-4.5-7.3-6.6-15.7-6.6-25.2s2.1-17.9,6.6-25.2c4.3-7.4,10.6-13.4,18.1-17.4,7.7-4.1,16.5-6.3,26.1-6.3s18.6,2.1,26.3,6.3c7.7,4.1,13.8,10,18.3,17.4,4.3,7.3,6.4,15.7,6.4,25.2s-2.1,17.9-6.4,25.2c-4.5,7.5-10.6,13.4-18.3,17.5-7.7,4.1-16.5,6.3-26.3,6.3h0ZM466,148c8.2,0,15-2.7,20.4-8.2,5.4-5.5,8.1-12.7,8.1-21.7s-2.7-16.1-8.1-21.7c-5.4-5.5-12.2-8.2-20.4-8.2s-15,2.7-20.2,8.2c-5.4,5.5-8.1,12.7-8.1,21.7s2.7,16.1,8.1,21.7c5.2,5.5,12,8.2,20.2,8.2ZM631.5,33.1v132.8h-21.5v-12.3c-3.7,4.4-8.3,7.9-13.6,10.2-5.5,2.3-11.5,3.4-18.1,3.4s-17.4-2-24.7-6.1c-7.3-4.1-13.2-9.8-17.4-17.4-4.1-7.3-6.3-15.9-6.3-25.6s2.1-18.3,6.3-25.6c4.1-7.3,10-13.1,17.4-17.2,7.3-4.1,15.6-6.1,24.7-6.1s12.2,1.1,17.4,3.2c5.2,2.1,9.8,5.4,13.4,9.7v-49h22.4ZM581.1,148c5.4,0,10.2-1.3,14.5-3.8,4.3-2.3,7.7-5.9,10.2-10.4,2.5-4.5,3.8-9.8,3.8-15.7s-1.3-11.3-3.8-15.7c-2.5-4.5-5.9-8.1-10.2-10.6-4.3-2.3-9.1-3.6-14.5-3.6s-10.2,1.3-14.5,3.6c-4.3,2.5-7.7,6.1-10.2,10.6-2.5,4.5-3.8,9.8-3.8,15.7s1.3,11.3,3.8,15.7c2.5,4.5,5.9,8.1,10.2,10.4,4.3,2.5,9.1,3.8,14.5,3.8ZM681.6,84.3c6.4-10,17.7-15,34-15v21.3c-1.7-.3-3.4-.5-5.2-.5-8.8,0-15.6,2.5-20.4,7.5-4.8,5.2-7.3,12.5-7.3,22v46.4h-22.4v-95.6h21.3v14h0ZM734.1,70.3h22.4v95.6h-22.4v-95.6ZM745.4,54.6c-4.1,0-7.5-1.3-10.2-3.9-2.7-2.4-4.2-5.9-4.1-9.5,0-3.8,1.4-7,4.1-9.7,2.7-2.5,6.1-3.8,10.2-3.8s7.5,1.3,10.2,3.6c2.7,2.5,4.1,5.5,4.1,9.3s-1.3,7.2-3.9,9.8c-2.7,2.7-6.3,4.1-10.4,4.1ZM839.5,69.2c12,0,21.7,3.6,29,10.6,7.3,7,10.9,17.5,10.9,31.3v54.8h-22.4v-51.9c0-8.4-2-14.7-5.9-19-3.9-4.1-9.5-6.3-16.8-6.3s-14.7,2.5-19.5,7.3c-4.8,5-7.2,12.2-7.2,21.5v48.3h-22.4v-95.6h21.3v12.3c3.8-4.5,8.4-7.7,14-10,5.5-2.3,12-3.4,19-3.4ZM964.8,160.7c-2.8,2.2-6,3.9-9.5,4.8-3.9,1.1-7.9,1.6-12,1.6-10.6,0-18.6-2.7-24.3-8.2-5.7-5.5-8.6-13.4-8.6-24v-46h-15.7v-17.9h15.7v-21.8h22.4v21.8h25.6v17.9h-25.6v45.5c0,4.7,1.1,8.2,3.4,10.6,2.3,2.5,5.5,3.8,9.8,3.8s9.1-1.3,12.5-3.9l6.3,15.9ZM1036.9,69.2c12,0,21.7,3.6,29,10.6,7.3,7,10.9,17.5,10.9,31.3v54.8h-22.4v-51.9c0-8.4-2-14.7-5.9-19-3.9-4.1-9.5-6.3-16.8-6.3s-14.7,2.5-19.5,7.3c-4.8,5-7.2,12.2-7.2,21.5v48.3h-22.4V33.1h22.4v48.3c3.8-3.9,8.2-7,13.8-9.1,5.4-2,11.5-3,18.1-3Z"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 163 KiB

View File

@@ -1,5 +1,45 @@
@tailwind base;
@tailwind components;
@tailwind utilities;
@font-face {
font-family: 'bundled-minecraft-font-mrapp';
font-style: normal;
font-display: swap;
font-weight: 400;
src: url('https://cdn-raw.modrinth.com/fonts/minecraft/regular.otf') format('opentype');
}
@font-face {
font-family: 'bundled-minecraft-font-mrapp';
font-style: italic;
font-display: swap;
font-weight: 400;
src: url('https://cdn-raw.modrinth.com/fonts/minecraft/italic.otf') format('opentype');
}
@font-face {
font-family: 'bundled-minecraft-font-mrapp';
font-style: normal;
font-display: swap;
font-weight: 600;
src: url('https://cdn-raw.modrinth.com/fonts/minecraft/bold.otf') format('opentype');
}
@font-face {
font-family: 'bundled-minecraft-font-mrapp';
font-style: italic;
font-display: swap;
font-weight: 600;
src: url('https://cdn-raw.modrinth.com/fonts/minecraft/bold-italic.otf') format('opentype');
}
.font-minecraft {
font-family: 'bundled-minecraft-font-mrapp', monospace;
}
:root {
font-family: var(--font-standard);
font-family: var(--font-standard, sans-serif), sans-serif;
color-scheme: dark;
--view-width: calc(100% - 5rem);
--expanded-view-width: calc(100% - 13rem);
@@ -69,55 +109,32 @@ input {
}
}
.mac {
.nav-container {
padding-top: calc(var(--gap-md) + 1.75rem);
}
.account-card,
.card-section {
top: calc(var(--gap-md) + 1.75rem);
}
}
.windows {
.fake-appbar {
height: 2.5rem !important;
}
.window-controls {
display: flex !important;
}
.info-card {
right: 8rem;
}
.profile-card {
right: 8rem;
}
}
* {
scrollbar-width: auto;
scrollbar-color: var(--color-button-bg) var(--color-bg);
scrollbar-color: var(--color-scrollbar) var(--color-bg);
}
/* Chrome, Edge, and Safari */
*::-webkit-scrollbar {
width: var(--gap-md);
border: 3px solid var(--color-bg);
width: 16px;
border: 3px solid transparent;
opacity: 0.5;
transition: opacity 0.2s ease-in-out;
}
*::-webkit-scrollbar:hover {
opacity: 1;
}
*::-webkit-scrollbar-track {
background: var(--color-bg);
border: 3px solid var(--color-bg);
background: transparent;
}
*::-webkit-scrollbar-thumb {
background-color: var(--color-button-bg);
background-color: var(--color-scrollbar);
border-radius: var(--radius-lg);
border: 3px solid var(--color-bg);
border: 5px solid transparent;
background-clip: content-box;
}
.highlighted {
@@ -135,3 +152,9 @@ img {
-moz-user-select: none;
-ms-user-select: none;
}
.card-shadow {
box-shadow: var(--shadow-card);
}
@import '@modrinth/assets/omorphia.scss';

View File

@@ -9,19 +9,16 @@ import {
TrashIcon,
StopCircleIcon,
EyeIcon,
Card,
DropdownSelect,
SearchIcon,
XIcon,
Button,
formatCategoryHeader,
ModalConfirm,
} from 'omorphia'
} from '@modrinth/assets'
import { Button, DropdownSelect } from '@modrinth/ui'
import { formatCategoryHeader } from '@modrinth/utils'
import ContextMenu from '@/components/ui/ContextMenu.vue'
import dayjs from 'dayjs'
import { useTheming } from '@/store/theme.js'
import { duplicate, remove } from '@/helpers/profile.js'
import { handleError } from '@/store/notifications.js'
import ConfirmModalWrapper from '@/components/ui/modal/ConfirmModalWrapper.vue'
const props = defineProps({
instances: {
@@ -38,7 +35,6 @@ const props = defineProps({
const instanceOptions = ref(null)
const instanceComponents = ref(null)
const themeStore = useTheming()
const currentDeleteInstance = ref(null)
const confirmModal = ref(null)
@@ -124,52 +120,41 @@ const handleOptionsClick = async (args) => {
}
const search = ref('')
const group = ref('Category')
const filters = ref('All profiles')
const group = ref('Group')
const sortBy = ref('Name')
const filteredResults = computed(() => {
let instances = props.instances.filter((instance) => {
return instance.metadata.name.toLowerCase().includes(search.value.toLowerCase())
const instances = props.instances.filter((instance) => {
return instance.name.toLowerCase().includes(search.value.toLowerCase())
})
if (sortBy.value === 'Name') {
instances.sort((a, b) => {
return a.metadata.name.localeCompare(b.metadata.name)
return a.name.localeCompare(b.name)
})
}
if (sortBy.value === 'Game version') {
instances.sort((a, b) => {
return a.metadata.game_version.localeCompare(b.metadata.game_version)
return a.game_version.localeCompare(b.game_version)
})
}
if (sortBy.value === 'Last played') {
instances.sort((a, b) => {
return dayjs(b.metadata.last_played ?? 0).diff(dayjs(a.metadata.last_played ?? 0))
return dayjs(b.last_played ?? 0).diff(dayjs(a.last_played ?? 0))
})
}
if (sortBy.value === 'Date created') {
instances.sort((a, b) => {
return dayjs(b.metadata.date_created).diff(dayjs(a.metadata.date_created))
return dayjs(b.date_created).diff(dayjs(a.date_created))
})
}
if (sortBy.value === 'Date modified') {
instances.sort((a, b) => {
return dayjs(b.metadata.date_modified).diff(dayjs(a.metadata.date_modified))
})
}
if (filters.value === 'Custom instances') {
instances = instances.filter((instance) => {
return !instance.metadata?.linked_data
})
} else if (filters.value === 'Downloaded modpacks') {
instances = instances.filter((instance) => {
return instance.metadata?.linked_data
return dayjs(b.date_modified).diff(dayjs(a.date_modified))
})
}
@@ -177,7 +162,7 @@ const filteredResults = computed(() => {
if (group.value === 'Loader') {
instances.forEach((instance) => {
const loader = formatCategoryHeader(instance.metadata.loader)
const loader = formatCategoryHeader(instance.loader)
if (!instanceMap.has(loader)) {
instanceMap.set(loader, [])
}
@@ -186,19 +171,19 @@ const filteredResults = computed(() => {
})
} else if (group.value === 'Game version') {
instances.forEach((instance) => {
if (!instanceMap.has(instance.metadata.game_version)) {
instanceMap.set(instance.metadata.game_version, [])
if (!instanceMap.has(instance.game_version)) {
instanceMap.set(instance.game_version, [])
}
instanceMap.get(instance.metadata.game_version).push(instance)
instanceMap.get(instance.game_version).push(instance)
})
} else if (group.value === 'Category') {
} else if (group.value === 'Group') {
instances.forEach((instance) => {
if (instance.metadata.groups.length === 0) {
instance.metadata.groups.push('None')
if (instance.groups.length === 0) {
instance.groups.push('None')
}
for (const category of instance.metadata.groups) {
for (const category of instance.groups) {
if (!instanceMap.has(category)) {
instanceMap.set(category, [])
}
@@ -233,54 +218,37 @@ const filteredResults = computed(() => {
})
</script>
<template>
<ModalConfirm
ref="confirmModal"
title="Are you sure you want to delete this instance?"
description="If you proceed, all data for your instance will be removed. You will not be able to recover it."
:has-to-type="false"
proceed-label="Delete"
:noblur="!themeStore.advancedRendering"
@proceed="deleteProfile"
/>
<Card class="header">
<div class="iconified-input">
<div class="flex gap-2">
<div class="iconified-input flex-1">
<SearchIcon />
<input v-model="search" type="text" placeholder="Search" class="search-input" />
<Button @click="() => (search = '')">
<input v-model="search" type="text" placeholder="Search" />
<Button class="r-btn" @click="() => (search = '')">
<XIcon />
</Button>
</div>
<div class="labeled_button">
<span>Sort by</span>
<DropdownSelect
v-model="sortBy"
class="sort-dropdown"
name="Sort Dropdown"
:options="['Name', 'Last played', 'Date created', 'Date modified', 'Game version']"
placeholder="Select..."
/>
</div>
<div class="labeled_button">
<span>Filter by</span>
<DropdownSelect
v-model="filters"
class="filter-dropdown"
name="Filter Dropdown"
:options="['All profiles', 'Custom instances', 'Downloaded modpacks']"
placeholder="Select..."
/>
</div>
<div class="labeled_button">
<span>Group by</span>
<DropdownSelect
v-model="group"
class="group-dropdown"
name="Group Dropdown"
:options="['Category', 'Loader', 'Game version', 'None']"
placeholder="Select..."
/>
</div>
</Card>
<DropdownSelect
v-slot="{ selected }"
v-model="sortBy"
name="Sort Dropdown"
class="max-w-[16rem]"
:options="['Name', 'Last played', 'Date created', 'Date modified', 'Game version']"
placeholder="Select..."
>
<span class="font-semibold text-primary">Sort by: </span>
<span class="font-semibold text-secondary">{{ selected }}</span>
</DropdownSelect>
<DropdownSelect
v-slot="{ selected }"
v-model="group"
class="max-w-[16rem]"
name="Group Dropdown"
:options="['Group', 'Loader', 'Game version', 'None']"
placeholder="Select..."
>
<span class="font-semibold text-primary">Group by: </span>
<span class="font-semibold text-secondary">{{ selected }}</span>
</DropdownSelect>
</div>
<div
v-for="instanceSection in Array.from(filteredResults, ([key, value]) => ({
key,
@@ -303,6 +271,14 @@ const filteredResults = computed(() => {
/>
</section>
</div>
<ConfirmModalWrapper
ref="confirmModal"
title="Are you sure you want to delete this instance?"
description="If you proceed, all data for your instance will be removed. You will not be able to recover it."
:has-to-type="false"
proceed-label="Delete"
@proceed="deleteProfile"
/>
<ContextMenu ref="instanceOptions" @option-clicked="handleOptionsClick">
<template #play> <PlayIcon /> Play </template>
<template #stop> <StopCircleIcon /> Stop </template>
@@ -320,7 +296,6 @@ const filteredResults = computed(() => {
flex-direction: column;
align-items: flex-start;
width: 100%;
padding: 1rem;
.divider {
display: flex;
@@ -388,9 +363,9 @@ const filteredResults = computed(() => {
.instances {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr));
grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr));
width: 100%;
gap: 1rem;
gap: 0.75rem;
margin-right: auto;
scroll-behavior: smooth;
overflow-y: auto;

View File

@@ -0,0 +1,141 @@
<script setup>
import { computed, onBeforeUnmount, ref, watch } from 'vue'
import { useLoading } from '@/store/state.js'
const props = defineProps({
throttle: {
type: Number,
default: 0,
},
duration: {
type: Number,
default: 1000,
},
height: {
type: Number,
default: 2,
},
color: {
type: String,
default: 'var(--loading-bar-gradient)',
},
})
const indicator = useLoadingIndicator({
duration: props.duration,
throttle: props.throttle,
})
onBeforeUnmount(() => indicator.clear)
const loading = useLoading()
watch(loading, (newValue) => {
if (newValue.barEnabled) {
if (newValue.loading) {
indicator.start()
} else {
indicator.finish()
}
}
})
function useLoadingIndicator(opts) {
const progress = ref(0)
const isLoading = ref(false)
const step = computed(() => 10000 / opts.duration)
let _timer = null
let _throttle = null
function start() {
clear()
progress.value = 0
if (opts.throttle) {
_throttle = setTimeout(() => {
isLoading.value = true
_startTimer()
}, opts.throttle)
} else {
isLoading.value = true
_startTimer()
}
}
function finish() {
progress.value = 100
_hide()
}
function clear() {
clearInterval(_timer)
clearTimeout(_throttle)
_timer = null
_throttle = null
}
function _increase(num) {
progress.value = Math.min(100, progress.value + num)
}
function _hide() {
clear()
setTimeout(() => {
isLoading.value = false
setTimeout(() => {
progress.value = 0
}, 400)
}, 500)
}
function _startTimer() {
_timer = setInterval(() => {
_increase(step.value)
}, 100)
}
return { progress, isLoading, start, finish, clear }
}
</script>
<template>
<div
class="loading-indicator-bar"
:style="{
'--_width': `${indicator.progress.value}%`,
'--_height': `${indicator.isLoading.value ? props.height : 0}px`,
'--_opacity': `${indicator.isLoading.value ? 1 : 0}`,
top: `0`,
right: `0`,
left: `${props.offsetWidth}`,
pointerEvents: 'none',
width: `var(--_width)`,
height: `var(--_height)`,
borderRadius: `var(--_height)`,
// opacity: `var(--_opacity)`,
background: `${props.color}`,
backgroundSize: `${(100 / indicator.progress.value) * 100}% auto`,
transition: 'width 0.1s ease-in-out, height 0.1s ease-out',
zIndex: 6,
}"
>
<slot />
</div>
</template>
<style lang="scss" scoped>
.loading-indicator-bar::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
width: var(--_width);
bottom: 0;
background-image: radial-gradient(80% 100% at 20% 0%, var(--color-brand) 0%, transparent 80%);
opacity: calc(var(--_opacity) * 0.1);
z-index: 5;
transition:
width 0.1s ease-in-out,
opacity 0.1s ease-out;
}
</style>

View File

@@ -10,29 +10,22 @@ import {
StopCircleIcon,
ExternalIcon,
EyeIcon,
ChevronRightIcon,
ModalConfirm,
} from 'omorphia'
} from '@modrinth/assets'
import ConfirmModalWrapper from '@/components/ui/modal/ConfirmModalWrapper.vue'
import Instance from '@/components/ui/Instance.vue'
import { computed, onMounted, onUnmounted, ref } from 'vue'
import ContextMenu from '@/components/ui/ContextMenu.vue'
import ProjectCard from '@/components/ui/ProjectCard.vue'
import InstallConfirmModal from '@/components/ui/InstallConfirmModal.vue'
import ModInstallModal from '@/components/ui/ModInstallModal.vue'
import {
get_all_running_profile_paths,
get_uuids_by_profile_path,
kill_by_uuid,
} from '@/helpers/process.js'
import { get_by_profile_path } from '@/helpers/process.js'
import { handleError } from '@/store/notifications.js'
import { duplicate, remove, run } from '@/helpers/profile.js'
import { duplicate, kill, remove, run } from '@/helpers/profile.js'
import { useRouter } from 'vue-router'
import { showProfileInFolder } from '@/helpers/utils.js'
import { useFetch } from '@/helpers/fetch.js'
import { install as pack_install } from '@/helpers/pack.js'
import { useTheming } from '@/store/state.js'
import { mixpanel_track } from '@/helpers/mixpanel'
import { trackEvent } from '@/helpers/analytics'
import { handleSevereError } from '@/store/error.js'
import { install as installVersion } from '@/store/install.js'
import { openUrl } from '@tauri-apps/plugin-opener'
import { HeadingLink } from '@modrinth/ui'
const router = useRouter()
@@ -51,18 +44,17 @@ const props = defineProps({
})
const actualInstances = computed(() =>
props.instances.filter((x) => x && x.instances && x.instances[0]),
props.instances.filter(
(x) => (x && x.instances && x.instances[0] && x.show === undefined) || x.show,
),
)
const modsRow = ref(null)
const instanceOptions = ref(null)
const instanceComponents = ref(null)
const rows = ref(null)
const confirmModal = ref(null)
const deleteConfirmModal = ref(null)
const modInstallModal = ref(null)
const themeStore = useTheming()
const currentDeleteInstance = ref(null)
async function deleteProfile() {
@@ -90,23 +82,24 @@ const handleInstanceRightClick = async (event, passedInstance) => {
},
]
const running = await get_all_running_profile_paths().catch(handleError)
const runningProcesses = await get_by_profile_path(passedInstance.path).catch(handleError)
const options = running.includes(passedInstance.path)
? [
{
name: 'stop',
color: 'danger',
},
...baseOptions,
]
: [
{
name: 'play',
color: 'primary',
},
...baseOptions,
]
const options =
runningProcesses.length > 0
? [
{
name: 'stop',
color: 'danger',
},
...baseOptions,
]
: [
{
name: 'play',
color: 'primary',
},
...baseOptions,
]
instanceOptions.value.showMenu(event, passedInstance, options)
}
@@ -130,24 +123,24 @@ const handleProjectClick = (event, passedInstance) => {
const handleOptionsClick = async (args) => {
switch (args.option) {
case 'play':
await run(args.item.path).catch(handleSevereError)
mixpanel_track('InstanceStart', {
loader: args.item.metadata.loader,
game_version: args.item.metadata.game_version,
await run(args.item.path).catch((err) =>
handleSevereError(err, { profilePath: args.item.path }),
)
trackEvent('InstanceStart', {
loader: args.item.loader,
game_version: args.item.game_version,
})
break
case 'stop':
for (const u of await get_uuids_by_profile_path(args.item.path).catch(handleError)) {
await kill_by_uuid(u).catch(handleError)
}
mixpanel_track('InstanceStop', {
loader: args.item.metadata.loader,
game_version: args.item.metadata.game_version,
await kill(args.item.path).catch(handleError)
trackEvent('InstanceStop', {
loader: args.item.loader,
game_version: args.item.game_version,
})
break
case 'add_content':
await router.push({
path: `/browse/${args.item.metadata.loader === 'vanilla' ? 'datapack' : 'mod'}`,
path: `/browse/${args.item.loader === 'vanilla' ? 'datapack' : 'mod'}`,
query: { i: args.item.path },
})
break
@@ -170,31 +163,12 @@ const handleOptionsClick = async (args) => {
await navigator.clipboard.writeText(args.item.path)
break
case 'install': {
const versions = await useFetch(
`https://api.modrinth.com/v2/project/${args.item.project_id}/version`,
'project versions',
)
await installVersion(args.item.project_id, null, null, 'ProjectCardContextMenu')
if (args.item.project_type === 'modpack') {
await pack_install(
args.item.project_id,
versions[0].id,
args.item.title,
args.item.icon_url,
)
} else {
modInstallModal.value.show(args.item.project_id, versions)
}
break
}
case 'open_link':
window.__TAURI_INVOKE__('tauri', {
__tauriModule: 'Shell',
message: {
cmd: 'open',
path: `https://modrinth.com/${args.item.project_type}/${args.item.slug}`,
},
})
openUrl(`https://modrinth.com/${args.item.project_type}/${args.item.slug}`)
break
case 'copy_link':
await navigator.clipboard.writeText(
@@ -204,50 +178,85 @@ const handleOptionsClick = async (args) => {
}
}
const maxInstancesPerCompactRow = ref(1)
const maxInstancesPerRow = ref(1)
const maxProjectsPerRow = ref(1)
const calculateCardsPerRow = () => {
if (rows.value.length === 0) {
return
}
// Calculate how many cards fit in one row
const containerWidth = rows.value[0].clientWidth
// Convert container width from pixels to rem
const containerWidthInRem =
containerWidth / parseFloat(getComputedStyle(document.documentElement).fontSize)
maxInstancesPerRow.value = Math.floor((containerWidthInRem + 1) / 11)
maxProjectsPerRow.value = Math.floor((containerWidthInRem + 1) / 19)
maxInstancesPerCompactRow.value = Math.floor((containerWidthInRem + 0.75) / 18.75)
maxInstancesPerRow.value = Math.floor((containerWidthInRem + 0.75) / 20.75)
maxProjectsPerRow.value = Math.floor((containerWidthInRem + 0.75) / 18.75)
if (maxInstancesPerRow.value < 5) {
maxInstancesPerRow.value *= 2
}
if (maxInstancesPerCompactRow.value < 5) {
maxInstancesPerCompactRow.value *= 2
}
if (maxProjectsPerRow.value < 3) {
maxProjectsPerRow.value *= 2
}
}
const rowContainer = ref(null)
const resizeObserver = ref(null)
onMounted(() => {
calculateCardsPerRow()
resizeObserver.value = new ResizeObserver(calculateCardsPerRow)
if (rowContainer.value) {
resizeObserver.value.observe(rowContainer.value)
}
window.addEventListener('resize', calculateCardsPerRow)
})
onUnmounted(() => {
window.removeEventListener('resize', calculateCardsPerRow)
if (rowContainer.value) {
resizeObserver.value.unobserve(rowContainer.value)
}
})
</script>
<template>
<ModalConfirm
<ConfirmModalWrapper
ref="deleteConfirmModal"
title="Are you sure you want to delete this instance?"
description="If you proceed, all data for your instance will be removed. You will not be able to recover it."
:has-to-type="false"
proceed-label="Delete"
:noblur="!themeStore.advancedRendering"
@proceed="deleteProfile"
/>
<div class="content">
<div ref="rowContainer" class="flex flex-col gap-4">
<div v-for="row in actualInstances" ref="rows" :key="row.label" class="row">
<div class="header">
<router-link :to="row.route">{{ row.label }}</router-link>
<ChevronRightIcon />
</div>
<section v-if="row.instances[0].metadata" ref="modsRow" class="instances">
<HeadingLink class="mt-1" :to="row.route">
{{ row.label }}
</HeadingLink>
<section
v-if="row.instance"
ref="modsRow"
class="instances"
:class="{ compact: row.compact }"
>
<Instance
v-for="instance in row.instances.slice(0, maxInstancesPerRow)"
:key="(instance?.project_id || instance?.id) + instance.install_stage"
v-for="(instance, instanceIndex) in row.instances.slice(
0,
row.compact ? maxInstancesPerCompactRow : maxInstancesPerRow,
)"
:key="row.label + instance.path"
:instance="instance"
:compact="row.compact"
:first="instanceIndex === 0"
@contextmenu.prevent.stop="(event) => handleInstanceRightClick(event, instance)"
/>
</section>
@@ -258,8 +267,6 @@ onUnmounted(() => {
ref="instanceComponents"
class="item"
:project="project"
:confirm-modal="confirmModal"
:mod-install-modal="modInstallModal"
@contextmenu.prevent.stop="(event) => handleProjectClick(event, project)"
/>
</section>
@@ -278,8 +285,6 @@ onUnmounted(() => {
<template #open_link> <GlobeIcon /> Open in Modrinth <ExternalIcon /> </template>
<template #copy_link> <ClipboardCopyIcon /> Copy link </template>
</ContextMenu>
<InstallConfirmModal ref="confirmModal" />
<ModInstallModal ref="modInstallModal" />
</template>
<style lang="scss" scoped>
.content {
@@ -288,7 +293,6 @@ onUnmounted(() => {
align-items: center;
justify-content: center;
width: 100%;
padding: 1rem;
gap: 1rem;
-ms-overflow-style: none;
@@ -322,31 +326,36 @@ onUnmounted(() => {
a {
margin: 0;
font-size: var(--font-size-lg);
font-size: var(--font-size-md);
font-weight: bolder;
white-space: nowrap;
color: var(--color-contrast);
color: var(--color-base);
}
svg {
height: 1.5rem;
width: 1.5rem;
color: var(--color-contrast);
height: 1.25rem;
width: 1.25rem;
color: var(--color-base);
}
}
.instances {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr));
grid-gap: 1rem;
grid-template-columns: repeat(auto-fill, minmax(20rem, 1fr));
grid-gap: 0.75rem;
width: 100%;
&.compact {
grid-template-columns: repeat(auto-fill, minmax(18rem, 1fr));
gap: 0.75rem;
}
}
.projects {
display: grid;
width: 100%;
grid-template-columns: repeat(auto-fill, minmax(18rem, 1fr));
grid-gap: 1rem;
grid-gap: 0.75rem;
.item {
width: 100%;

View File

@@ -2,19 +2,23 @@
<div
v-if="mode !== 'isolated'"
ref="button"
v-tooltip.right="'Minecraft accounts'"
class="button-base avatar-button"
class="button-base mt-2 px-3 py-2 bg-button-bg rounded-xl flex items-center gap-2"
:class="{ expanded: mode === 'expanded' }"
@click="showCard = !showCard"
@click="toggleMenu"
>
<Avatar
:size="mode === 'expanded' ? 'xs' : 'sm'"
size="36px"
:src="
selectedAccount
? `https://mc-heads.net/avatar/${selectedAccount.id}/128`
: 'https://launcher-files.modrinth.com/assets/steve_head.png'
"
/>
<div class="flex flex-col w-full">
<span>{{ selectedAccount ? selectedAccount.username : 'Select account' }}</span>
<span class="text-secondary text-xs">Minecraft account</span>
</div>
<DropdownIcon class="w-5 h-5 shrink-0" />
</div>
<transition name="fade">
<Card
@@ -59,7 +63,8 @@
</template>
<script setup>
import { Avatar, Button, Card, PlusIcon, TrashIcon, LogInIcon } from 'omorphia'
import { DropdownIcon, PlusIcon, TrashIcon, LogInIcon } from '@modrinth/assets'
import { Avatar, Button, Card } from '@modrinth/ui'
import { ref, computed, onMounted, onBeforeUnmount, onUnmounted } from 'vue'
import {
users,
@@ -69,7 +74,7 @@ import {
get_default_user,
} from '@/helpers/auth'
import { handleError } from '@/store/state.js'
import { mixpanel_track } from '@/helpers/mixpanel'
import { trackEvent } from '@/helpers/analytics'
import { process_listener } from '@/helpers/events'
import { handleSevereError } from '@/store/error.js'
@@ -117,7 +122,7 @@ async function login() {
await refreshValues()
}
mixpanel_track('AccountLogIn')
trackEvent('AccountLogIn')
}
const logout = async (id) => {
@@ -129,12 +134,12 @@ const logout = async (id) => {
} else {
emit('change')
}
mixpanel_track('AccountLogOut')
trackEvent('AccountLogOut')
}
let showCard = ref(false)
let card = ref(null)
let button = ref(null)
const showCard = ref(false)
const card = ref(null)
const button = ref(null)
const handleClickOutside = (event) => {
const elements = document.elementsFromPoint(event.clientX, event.clientY)
if (
@@ -143,7 +148,15 @@ const handleClickOutside = (event) => {
!elements.includes(card.value.$el) &&
!button.value.contains(event.target)
) {
toggleMenu(false)
}
}
function toggleMenu(override = true) {
if (showCard.value || !override) {
showCard.value = false
} else {
showCard.value = true
}
}
@@ -194,11 +207,11 @@ onUnmounted(() => {
}
.account-card {
position: absolute;
position: fixed;
display: flex;
flex-direction: column;
top: 0.5rem;
left: 5.5rem;
margin-top: 0.5rem;
right: 2rem;
z-index: 11;
gap: 0.5rem;
padding: 1rem;
@@ -273,12 +286,17 @@ onUnmounted(() => {
.fade-enter-active,
.fade-leave-active {
transition: opacity 0.3s ease;
transition:
opacity 0.25s ease,
translate 0.25s ease,
scale 0.25s ease;
}
.fade-enter-from,
.fade-leave-to {
opacity: 0;
translate: 0 -2rem;
scale: 0.9;
}
.avatar-button {
@@ -286,9 +304,10 @@ onUnmounted(() => {
align-items: center;
gap: 0.5rem;
color: var(--color-base);
background-color: var(--color-raised-bg);
background-color: var(--color-button-bg);
border-radius: var(--radius-md);
width: 100%;
padding: 0.5rem 0.75rem;
text-align: left;
&.expanded {

View File

@@ -0,0 +1,60 @@
<script setup lang="ts">
import { DropdownIcon, PlusIcon, FolderOpenIcon } from '@modrinth/assets'
import { ButtonStyled, OverflowMenu } from '@modrinth/ui'
import { open } from '@tauri-apps/plugin-dialog'
import { add_project_from_path } from '@/helpers/profile.js'
import { handleError } from '@/store/notifications.js'
import { useRouter } from 'vue-router'
const props = defineProps({
instance: {
type: Object,
required: true,
},
})
const router = useRouter()
const handleAddContentFromFile = async () => {
const newProject = await open({ multiple: true })
if (!newProject) return
for (const project of newProject) {
await add_project_from_path(props.instance.path, project.path ?? project).catch(handleError)
}
}
const handleSearchContent = async () => {
await router.push({
path: `/browse/${props.instance.loader === 'vanilla' ? 'resourcepack' : 'mod'}`,
query: { i: props.instance.path },
})
}
</script>
<template>
<div class="joined-buttons">
<ButtonStyled>
<button @click="handleSearchContent">
<PlusIcon />
Install content
</button>
</ButtonStyled>
<ButtonStyled>
<OverflowMenu
:options="[
{
id: 'from_file',
action: handleAddContentFromFile,
},
]"
>
<DropdownIcon />
<template #from_file>
<FolderOpenIcon />
<span class="no-wrap"> Add from file </span>
</template>
</OverflowMenu>
</ButtonStyled>
</div>
</template>

View File

@@ -0,0 +1,63 @@
<template>
<div data-tauri-drag-region class="flex items-center gap-1 pl-3">
<Button v-if="false" class="breadcrumbs__back transparent" icon-only @click="$router.back()">
<ChevronLeftIcon />
</Button>
<Button
v-if="false"
class="breadcrumbs__forward transparent"
icon-only
@click="$router.forward()"
>
<ChevronRightIcon />
</Button>
{{ breadcrumbData.resetToNames(breadcrumbs) }}
<template v-for="breadcrumb in breadcrumbs" :key="breadcrumb.name">
<router-link
v-if="breadcrumb.link"
:to="{
path: breadcrumb.link.replace('{id}', encodeURIComponent($route.params.id)),
query: breadcrumb.query,
}"
class="text-primary"
>{{
breadcrumb.name.charAt(0) === '?'
? breadcrumbData.getName(breadcrumb.name.slice(1))
: breadcrumb.name
}}
</router-link>
<span
v-else
data-tauri-drag-region
class="text-contrast font-semibold cursor-default select-none"
>{{
breadcrumb.name.charAt(0) === '?'
? breadcrumbData.getName(breadcrumb.name.slice(1))
: breadcrumb.name
}}</span
>
<ChevronRightIcon v-if="breadcrumb.link" data-tauri-drag-region class="w-5 h-5" />
</template>
</div>
</template>
<script setup>
import { ChevronRightIcon, ChevronLeftIcon } from '@modrinth/assets'
import { Button } from '@modrinth/ui'
import { useBreadcrumbs } from '@/store/breadcrumbs'
import { useRoute } from 'vue-router'
import { computed } from 'vue'
const route = useRoute()
const breadcrumbData = useBreadcrumbs()
const breadcrumbs = computed(() => {
const additionalContext =
route.meta.useContext === true
? breadcrumbData.context
: route.meta.useRootContext === true
? breadcrumbData.rootContext
: null
return additionalContext ? [additionalContext, ...route.meta.breadcrumb] : route.meta.breadcrumb
})
</script>

View File

@@ -60,9 +60,9 @@ defineExpose({
})
const isLinkedData = (item) => {
if (item.instance != undefined && item.instance.metadata.linked_data) {
if (item.instance != undefined && item.instance.linked_data) {
return true
} else if (item.metadata != undefined && item.metadata.linked_data) {
} else if (item != undefined && item.linked_data) {
return true
}
return false

View File

@@ -0,0 +1,377 @@
<script setup>
import {
CheckIcon,
DropdownIcon,
XIcon,
HammerIcon,
LogInIcon,
UpdatedIcon,
CopyIcon,
} from '@modrinth/assets'
import { ChatIcon } from '@/assets/icons'
import { ButtonStyled, Collapsible } from '@modrinth/ui'
import { ref, computed } from 'vue'
import { login as login_flow, set_default_user } from '@/helpers/auth.js'
import { handleError } from '@/store/notifications.js'
import { handleSevereError } from '@/store/error.js'
import { cancel_directory_change } from '@/helpers/settings.ts'
import { install } from '@/helpers/profile.js'
import { trackEvent } from '@/helpers/analytics'
import ModalWrapper from '@/components/ui/modal/ModalWrapper.vue'
const errorModal = ref()
const error = ref()
const closable = ref(true)
const errorCollapsed = ref(false)
const title = ref('An error occurred')
const errorType = ref('unknown')
const supportLink = ref('https://support.modrinth.com')
const metadata = ref({})
defineExpose({
async show(errorVal, context, canClose = true, source = null) {
closable.value = canClose
if (errorVal.message && errorVal.message.includes('Minecraft authentication error:')) {
title.value = 'Unable to sign in to Minecraft'
errorType.value = 'minecraft_auth'
supportLink.value =
'https://support.modrinth.com/en/articles/9038231-minecraft-sign-in-issues'
if (
errorVal.message.includes('existing connection was forcibly closed') ||
errorVal.message.includes('error sending request for url')
) {
metadata.value.network = true
}
if (errorVal.message.includes('because the target machine actively refused it')) {
metadata.value.hostsFile = true
}
} else if (errorVal.message && errorVal.message.includes('User is not logged in')) {
title.value = 'Sign in to Minecraft'
errorType.value = 'minecraft_sign_in'
supportLink.value = 'https://support.modrinth.com'
} else if (errorVal.message && errorVal.message.includes('Move directory error:')) {
title.value = 'Could not change app directory'
errorType.value = 'directory_move'
supportLink.value = 'https://support.modrinth.com'
if (errorVal.message.includes('directory is not writeable')) {
metadata.value.readOnly = true
}
if (errorVal.message.includes('Not enough space')) {
metadata.value.notEnoughSpace = true
}
} else if (errorVal.message && errorVal.message.includes('No loader version selected for')) {
title.value = 'No loader selected'
errorType.value = 'no_loader_version'
supportLink.value = 'https://support.modrinth.com'
metadata.value.profilePath = context.profilePath
} else if (source === 'state_init') {
title.value = 'Error initializing Modrinth App'
errorType.value = 'state_init'
supportLink.value = 'https://support.modrinth.com'
} else {
title.value = 'An error occurred'
errorType.value = 'unknown'
supportLink.value = 'https://support.modrinth.com'
metadata.value = {}
}
error.value = errorVal
errorModal.value.show()
},
})
const loadingMinecraft = ref(false)
async function loginMinecraft() {
try {
loadingMinecraft.value = true
const loggedIn = await login_flow()
if (loggedIn) {
await set_default_user(loggedIn.id).catch(handleError)
}
await trackEvent('AccountLogIn', { source: 'ErrorModal' })
loadingMinecraft.value = false
errorModal.value.hide()
} catch (err) {
loadingMinecraft.value = false
handleSevereError(err)
}
}
async function cancelDirectoryChange() {
try {
await cancel_directory_change()
window.location.reload()
} catch (err) {
handleError(err)
}
}
function retryDirectoryChange() {
window.location.reload()
}
const loadingRepair = ref(false)
async function repairInstance() {
loadingRepair.value = true
try {
await install(metadata.value.profilePath, false)
errorModal.value.hide()
} catch (err) {
handleSevereError(err)
}
loadingRepair.value = false
}
const hasDebugInfo = computed(
() =>
errorType.value === 'directory_move' ||
errorType.value === 'minecraft_auth' ||
errorType.value === 'state_init' ||
errorType.value === 'no_loader_version',
)
const debugInfo = computed(() => error.value.message ?? error.value ?? 'No error message.')
const copied = ref(false)
async function copyToClipboard(text) {
await navigator.clipboard.writeText(text)
copied.value = true
setTimeout(() => {
copied.value = false
}, 3000)
}
</script>
<template>
<ModalWrapper ref="errorModal" :header="title" :closable="closable">
<div class="modal-body">
<div class="markdown-body">
<template v-if="errorType === 'minecraft_auth'">
<template v-if="metadata.network">
<h3>Network issues</h3>
<p>
It looks like there were issues with the Modrinth App connecting to Microsoft's
servers. This is often the result of a poor connection, so we recommend trying again
to see if it works. If issues continue to persist, follow the steps in
<a
href="https://support.modrinth.com/en/articles/9038231-minecraft-sign-in-issues#h_e71a5f805f"
>
our support article
</a>
to troubleshoot.
</p>
</template>
<template v-else-if="metadata.hostsFile">
<h3>Network issues</h3>
<p>
The Modrinth App tried to connect to Microsoft / Xbox / Minecraft services, but the
remote server rejected the connection. This may indicate that these services are
blocked by the hosts file. Please visit
<a
href="https://support.modrinth.com/en/articles/9038231-minecraft-sign-in-issues#h_d694a29256"
>
our support article
</a>
for steps on how to fix the issue.
</p>
</template>
<template v-else>
<h3>Try another Microsoft account</h3>
<p>
Double check you've signed in with the right account. You may own Minecraft on a
different Microsoft account.
</p>
<div class="cta-button">
<button class="btn btn-primary" :disabled="loadingMinecraft" @click="loginMinecraft">
<LogInIcon /> Try another account
</button>
</div>
<h3>Using PC Game Pass, coming from Bedrock, or just bought the game?</h3>
<p>
Try signing in with the
<a href="https://www.minecraft.net/en-us/download">official Minecraft Launcher</a>
first. Once you're done, come back here and sign in!
</p>
</template>
<div class="cta-button">
<button class="btn btn-primary" :disabled="loadingMinecraft" @click="loginMinecraft">
<LogInIcon /> Try signing in again
</button>
</div>
</template>
<template v-if="errorType === 'directory_move'">
<template v-if="metadata.readOnly">
<h3>Change directory permissions</h3>
<p>
It looks like the Modrinth App is unable to write to the directory you selected.
Please adjust the permissions of the directory and try again or cancel the directory
change.
</p>
</template>
<template v-else-if="metadata.notEnoughSpace">
<h3>Not enough space</h3>
<p>
It looks like there is not enough space on the disk containing the dirctory you
selected Please free up some space and try again or cancel the directory change.
</p>
</template>
<template v-else>
<p>
The Modrinth App is unable to migrate to the new directory you selected. Please
contact support for help or cancel the directory change.
</p>
</template>
<div class="cta-button">
<button class="btn" @click="retryDirectoryChange">
<UpdatedIcon /> Retry directory change
</button>
<button class="btn btn-danger" @click="cancelDirectoryChange">
<XIcon /> Cancel directory change
</button>
</div>
</template>
<div v-else-if="errorType === 'minecraft_sign_in'">
<p>
To play this instance, you must sign in through Microsoft below. If you don't have a
Minecraft account, you can purchase the game on the
<a href="https://www.minecraft.net/en-us/store/minecraft-java-bedrock-edition-pc"
>Minecraft website</a
>.
</p>
<div class="cta-button">
<button class="btn btn-primary" :disabled="loadingMinecraft" @click="loginMinecraft">
<LogInIcon /> Sign in to Minecraft
</button>
</div>
</div>
<template v-else-if="errorType === 'state_init'">
<p>
Modrinth App failed to load correctly. This may be because of a corrupted file, or
because the app is missing crucial files.
</p>
<p>You may be able to fix it through one of the following ways:</p>
<ul>
<li>Ensuring you are connected to the internet, then try restarting the app.</li>
<li>Redownloading the app.</li>
</ul>
</template>
<template v-else-if="errorType === 'no_loader_version'">
<p>The Modrinth App failed to find the loader version for this instance.</p>
<p>To resolve this, you need to repair the instance. Click the button below to do so.</p>
<div class="cta-button">
<button class="btn btn-primary" :disabled="loadingRepair" @click="repairInstance">
<HammerIcon /> Repair instance
</button>
</div>
</template>
<template v-else>
{{ debugInfo }}
</template>
<template v-if="hasDebugInfo">
<hr />
<p>
If nothing is working and you need help, visit
<a :href="supportLink">our support page</a>
and start a chat using the widget in the bottom right and we will be more than happy to
assist! Make sure to provide the following debug information to the agent:
</p>
</template>
</div>
<div class="flex items-center gap-2">
<ButtonStyled>
<a :href="supportLink" @click="errorModal.hide()"><ChatIcon /> Get support</a>
</ButtonStyled>
<ButtonStyled v-if="closable">
<button @click="errorModal.hide()"><XIcon /> Close</button>
</ButtonStyled>
<ButtonStyled v-if="hasDebugInfo">
<button :disabled="copied" @click="copyToClipboard(debugInfo)">
<template v-if="copied"> <CheckIcon class="text-green" /> Copied! </template>
<template v-else> <CopyIcon /> Copy debug info </template>
</button>
</ButtonStyled>
</div>
<template v-if="hasDebugInfo">
<div class="bg-button-bg rounded-xl mt-2 overflow-clip">
<button
class="flex items-center justify-between w-full bg-transparent border-0 px-4 py-3 cursor-pointer"
@click="errorCollapsed = !errorCollapsed"
>
<span class="text-contrast font-extrabold m-0">Debug information:</span>
<DropdownIcon
class="h-5 w-5 text-secondary transition-transform"
:class="{ 'rotate-180': !errorCollapsed }"
/>
</button>
<Collapsible :collapsed="errorCollapsed">
<pre class="m-0 px-4 py-3 bg-bg rounded-none">{{ debugInfo }}</pre>
</Collapsible>
</div>
</template>
</div>
</ModalWrapper>
</template>
<style>
.light-mode {
--color-orange-bg: rgba(255, 163, 71, 0.2);
}
.dark-mode,
.oled-mode {
--color-orange-bg: rgba(224, 131, 37, 0.2);
}
</style>
<style scoped lang="scss">
.cta-button {
display: flex;
align-items: center;
justify-content: center;
padding: 0.5rem;
gap: 0.5rem;
}
.warning-banner {
display: flex;
flex-direction: column;
gap: 0.5rem;
padding: var(--gap-lg);
background-color: var(--color-orange-bg);
border: 2px solid var(--color-orange);
border-radius: var(--radius-md);
margin-bottom: 1rem;
}
.warning-banner__title {
display: flex;
align-items: center;
gap: 0.5rem;
font-weight: 700;
svg {
color: var(--color-orange);
height: 1.5rem;
width: 1.5rem;
}
}
.modal-body {
display: flex;
flex-direction: column;
gap: var(--gap-md);
}
.markdown-body {
overflow: auto;
}
</style>

View File

@@ -1,11 +1,12 @@
<script setup>
import { Button, Checkbox, Modal, XIcon, PlusIcon } from 'omorphia'
import { XIcon, PlusIcon } from '@modrinth/assets'
import { Button, Checkbox } from '@modrinth/ui'
import { PackageIcon, VersionIcon } from '@/assets/icons'
import { ref } from 'vue'
import { export_profile_mrpack, get_pack_export_candidates } from '@/helpers/profile.js'
import { open } from '@tauri-apps/api/dialog'
import { open } from '@tauri-apps/plugin-dialog'
import { handleError } from '@/store/notifications.js'
import { useTheming } from '@/store/theme'
import ModalWrapper from '@/components/ui/modal/ModalWrapper.vue'
const props = defineProps({
instance: {
@@ -22,15 +23,13 @@ defineExpose({
})
const exportModal = ref(null)
const nameInput = ref(props.instance.metadata.name)
const nameInput = ref(props.instance.name)
const exportDescription = ref('')
const versionInput = ref('1.0.0')
const files = ref([])
const folders = ref([])
const showingFiles = ref(false)
const themeStore = useTheming()
const initFiles = async () => {
const newFolders = new Map()
const sep = '/'
@@ -49,9 +48,9 @@ const initFiles = async () => {
disabled:
folder === 'profile.json' ||
folder.startsWith('modrinth_logs') ||
folder.startsWith('.fabric') ||
folder.includes('.DS_Store'),
folder.startsWith('.fabric'),
}))
.filter((pathData) => !pathData.path.includes('.DS_Store'))
.forEach((pathData) => {
const parent = pathData.path.split(sep).slice(0, -1).join(sep)
if (parent !== '') {
@@ -105,14 +104,14 @@ const exportPack = async () => {
</script>
<template>
<Modal ref="exportModal" header="Export modpack" :noblur="!themeStore.advancedRendering">
<ModalWrapper ref="exportModal" header="Export modpack">
<div class="modal-body">
<div class="labeled_input">
<p>Modpack Name</p>
<div class="iconified-input">
<PackageIcon />
<input v-model="nameInput" type="text" placeholder="Modpack name" class="input" />
<Button @click="nameInput = ''">
<Button class="r-btn" @click="nameInput = ''">
<XIcon />
</Button>
</div>
@@ -122,7 +121,7 @@ const exportPack = async () => {
<div class="iconified-input">
<VersionIcon />
<input v-model="versionInput" type="text" placeholder="1.0.0" class="input" />
<Button @click="versionInput = ''">
<Button class="r-btn" @click="versionInput = ''">
<XIcon />
</Button>
</div>
@@ -152,7 +151,7 @@ const exportPack = async () => {
</div>
</div>
<div v-if="showingFiles" class="table-content">
<div v-for="[path, children] of folders" :key="path.name" class="table-row">
<div v-for="[path, children] in folders" :key="path.name" class="table-row">
<div class="table-cell file-entry">
<div class="file-primary">
<Checkbox
@@ -207,12 +206,11 @@ const exportPack = async () => {
</Button>
</div>
</div>
</Modal>
</ModalWrapper>
</template>
<style scoped lang="scss">
.modal-body {
padding: var(--gap-xl);
display: flex;
flex-direction: column;
gap: var(--gap-md);
@@ -287,6 +285,7 @@ const exportPack = async () => {
flex-direction: row;
justify-content: space-between;
align-items: center;
gap: 1rem;
}
.textarea-wrapper {

View File

@@ -0,0 +1,247 @@
<script setup>
import { computed, onMounted, onUnmounted, ref } from 'vue'
import { useRouter } from 'vue-router'
import {
DownloadIcon,
GameIcon,
PlayIcon,
SpinnerIcon,
StopCircleIcon,
TimerIcon,
} from '@modrinth/assets'
import { Avatar, ButtonStyled, useRelativeTime } from '@modrinth/ui'
import { convertFileSrc } from '@tauri-apps/api/core'
import { finish_install, kill, run } from '@/helpers/profile'
import { get_by_profile_path } from '@/helpers/process'
import { process_listener } from '@/helpers/events'
import { handleError } from '@/store/state.js'
import { showProfileInFolder } from '@/helpers/utils.js'
import { handleSevereError } from '@/store/error.js'
import { trackEvent } from '@/helpers/analytics'
import dayjs from 'dayjs'
import { formatCategory } from '@modrinth/utils'
const formatRelativeTime = useRelativeTime()
const props = defineProps({
instance: {
type: Object,
default() {
return {}
},
},
compact: {
type: Boolean,
default: false,
},
first: {
type: Boolean,
default: false,
},
})
const playing = ref(false)
const loading = ref(false)
const modLoading = computed(
() =>
loading.value ||
currentEvent.value === 'installing' ||
(currentEvent.value === 'launched' && !playing.value),
)
const installing = computed(() => props.instance.install_stage.includes('installing'))
const installed = computed(() => props.instance.install_stage === 'installed')
const router = useRouter()
const seeInstance = async () => {
await router.push(`/instance/${encodeURIComponent(props.instance.path)}`)
}
const checkProcess = async () => {
const runningProcesses = await get_by_profile_path(props.instance.path).catch(handleError)
playing.value = runningProcesses.length > 0
}
const play = async (e, context) => {
e?.stopPropagation()
loading.value = true
await run(props.instance.path)
.catch((err) => handleSevereError(err, { profilePath: props.instance.path }))
.finally(() => {
trackEvent('InstancePlay', {
loader: props.instance.loader,
game_version: props.instance.game_version,
source: context,
})
})
loading.value = false
}
const stop = async (e, context) => {
e?.stopPropagation()
playing.value = false
await kill(props.instance.path).catch(handleError)
trackEvent('InstanceStop', {
loader: props.instance.loader,
game_version: props.instance.game_version,
source: context,
})
}
const repair = async (e) => {
e?.stopPropagation()
await finish_install(props.instance)
}
const openFolder = async () => {
await showProfileInFolder(props.instance.path)
}
const addContent = async () => {
await router.push({
path: `/browse/${props.instance.loader === 'vanilla' ? 'datapack' : 'mod'}`,
query: { i: props.instance.path },
})
}
defineExpose({
play,
stop,
seeInstance,
openFolder,
addContent,
instance: props.instance,
})
const currentEvent = ref(null)
const unlisten = await process_listener((e) => {
if (e.profile_path_id === props.instance.path) {
currentEvent.value = e.event
if (e.event === 'finished') {
playing.value = false
}
}
})
onMounted(() => checkProcess())
onUnmounted(() => unlisten())
</script>
<template>
<template v-if="compact">
<div
class="card-shadow grid grid-cols-[auto_1fr_auto] bg-bg-raised rounded-xl p-3 pl-4 gap-2 cursor-pointer hover:brightness-90 transition-all"
@click="seeInstance"
@mouseenter="checkProcess"
>
<Avatar
size="48px"
:src="instance.icon_path ? convertFileSrc(instance.icon_path) : null"
:tint-by="instance.path"
alt="Mod card"
/>
<div class="h-full flex items-center font-bold text-contrast leading-normal">
<span class="line-clamp-2">{{ instance.name }}</span>
</div>
<div class="flex items-center">
<ButtonStyled v-if="playing" color="red" circular @mousehover="checkProcess">
<button v-tooltip="'Stop'" @click="(e) => stop(e, 'InstanceCard')">
<StopCircleIcon />
</button>
</ButtonStyled>
<ButtonStyled v-else-if="modLoading" color="standard" circular>
<button v-tooltip="'Instance is loading...'" disabled>
<SpinnerIcon class="animate-spin" />
</button>
</ButtonStyled>
<ButtonStyled v-else :color="first ? 'brand' : 'standard'" circular>
<button
v-tooltip="'Play'"
@click="(e) => play(e, 'InstanceCard')"
@mousehover="checkProcess"
>
<!-- Translate for optical centering -->
<PlayIcon class="translate-x-[1px]" />
</button>
</ButtonStyled>
</div>
<div class="flex items-center col-span-3 gap-1 text-secondary font-semibold">
<TimerIcon />
<span class="text-sm">
Played {{ formatRelativeTime(dayjs(instance.last_played).toISOString()) }}
</span>
</div>
</div>
</template>
<div v-else>
<div
class="button-base bg-bg-raised p-4 rounded-xl flex gap-3 group"
@click="seeInstance"
@mouseenter="checkProcess"
>
<div class="relative flex items-center justify-center">
<Avatar
size="48px"
:src="instance.icon_path ? convertFileSrc(instance.icon_path) : null"
:tint-by="instance.path"
alt="Mod card"
:class="`transition-all ${modLoading || installing ? `brightness-[0.25] scale-[0.85]` : `group-hover:brightness-75`}`"
/>
<div class="absolute inset-0 flex items-center justify-center">
<ButtonStyled v-if="playing" size="large" color="red" circular>
<button
v-tooltip="'Stop'"
:class="{ 'scale-100 opacity-100': playing }"
class="transition-all scale-75 origin-bottom opacity-0 card-shadow"
@click="(e) => stop(e, 'InstanceCard')"
@mousehover="checkProcess"
>
<StopCircleIcon />
</button>
</ButtonStyled>
<SpinnerIcon
v-else-if="modLoading || installing"
v-tooltip="modLoading ? 'Instance is loading...' : 'Installing...'"
class="animate-spin w-8 h-8"
tabindex="-1"
/>
<ButtonStyled v-else-if="!installed" size="large" color="brand" circular>
<button
v-tooltip="'Repair'"
class="transition-all scale-75 group-hover:scale-100 group-focus-within:scale-100 origin-bottom opacity-0 group-hover:opacity-100 group-focus-within:opacity-100 card-shadow"
@click="(e) => repair(e)"
>
<DownloadIcon />
</button>
</ButtonStyled>
<ButtonStyled v-else size="large" color="brand" circular>
<button
v-tooltip="'Play'"
class="transition-all scale-75 group-hover:scale-100 group-focus-within:scale-100 origin-bottom opacity-0 group-hover:opacity-100 group-focus-within:opacity-100 card-shadow"
@click="(e) => play(e, 'InstanceCard')"
@mousehover="checkProcess"
>
<PlayIcon class="translate-x-[2px]" />
</button>
</ButtonStyled>
</div>
</div>
<div class="flex flex-col gap-1">
<p class="m-0 text-md font-bold text-contrast leading-tight line-clamp-1">
{{ instance.name }}
</p>
<div class="flex items-center col-span-3 gap-1 text-secondary font-semibold mt-auto">
<GameIcon class="shrink-0" />
<span class="text-sm">
{{ formatCategory(instance.loader) }} {{ instance.game_version }}
</span>
</div>
</div>
</div>
</div>
</template>

View File

@@ -1,5 +1,5 @@
<template>
<Modal ref="modal" header="Create instance" :noblur="!themeStore.advancedRendering">
<ModalWrapper ref="modal" header="Creating an instance">
<div class="modal-header">
<Chips v-model="creationType" :items="['custom', 'from file', 'import from launcher']" />
</div>
@@ -110,7 +110,7 @@
placeholder="Path to launcher"
@change="setPath"
/>
<Button @click="() => (selectedLauncherPath = '')">
<Button class="r-btn" @click="() => (selectedLauncherPath = '')">
<XIcon />
</Button>
</div>
@@ -193,51 +193,39 @@
/>
</div>
</div>
</Modal>
</ModalWrapper>
</template>
<script setup>
import ModalWrapper from '@/components/ui/modal/ModalWrapper.vue'
import {
Avatar,
Button,
Chips,
Modal,
CodeIcon,
FolderOpenIcon,
FolderSearchIcon,
InfoIcon,
PlusIcon,
UpdatedIcon,
UploadIcon,
XIcon,
CodeIcon,
Checkbox,
FolderOpenIcon,
InfoIcon,
FolderSearchIcon,
UpdatedIcon,
} from 'omorphia'
} from '@modrinth/assets'
import { Avatar, Button, Checkbox, Chips } from '@modrinth/ui'
import { computed, onUnmounted, ref, shallowRef } from 'vue'
import { get_loaders } from '@/helpers/tags'
import { create } from '@/helpers/profile'
import { open } from '@tauri-apps/api/dialog'
import { tauri } from '@tauri-apps/api'
import {
get_game_versions,
get_fabric_versions,
get_forge_versions,
get_quilt_versions,
get_neoforge_versions,
} from '@/helpers/metadata'
import { open } from '@tauri-apps/plugin-dialog'
import { convertFileSrc } from '@tauri-apps/api/core'
import { get_game_versions, get_loader_versions } from '@/helpers/metadata'
import { handleError } from '@/store/notifications.js'
import Multiselect from 'vue-multiselect'
import { mixpanel_track } from '@/helpers/mixpanel'
import { useTheming } from '@/store/state.js'
import { listen } from '@tauri-apps/api/event'
import { install_from_file } from '@/helpers/pack.js'
import { trackEvent } from '@/helpers/analytics'
import { create_profile_and_install_from_file } from '@/helpers/pack.js'
import {
get_default_launcher_path,
get_importable_instances,
import_instance,
} from '@/helpers/import.js'
import ProgressBar from '@/components/ui/ProgressBar.vue'
const themeStore = useTheming()
import { getCurrentWebview } from '@tauri-apps/api/webview'
const profile_name = ref('')
const game_version = ref('')
@@ -249,7 +237,7 @@ const display_icon = ref(null)
const showAdvanced = ref(false)
const creating = ref(false)
const showSnapshots = ref(false)
const creationType = ref('from file')
const creationType = ref('custom')
const isShowing = ref(false)
defineExpose({
@@ -267,20 +255,22 @@ defineExpose({
isShowing.value = true
modal.value.show()
unlistener.value = await listen('tauri://file-drop', async (event) => {
unlistener.value = await getCurrentWebview().onDragDropEvent(async (event) => {
// Only if modal is showing
if (!isShowing.value) return
if (event.payload.type !== 'drop') return
if (creationType.value !== 'from file') return
hide()
if (event.payload && event.payload.length > 0 && event.payload[0].endsWith('.mrpack')) {
await install_from_file(event.payload[0]).catch(handleError)
mixpanel_track('InstanceCreate', {
const { paths } = event.payload
if (paths && paths.length > 0 && paths[0].endsWith('.mrpack')) {
await create_profile_and_install_from_file(paths[0]).catch(handleError)
trackEvent('InstanceCreate', {
source: 'CreationModalFileDrop',
})
}
})
mixpanel_track('InstanceCreateStart', { source: 'CreationModal' })
trackEvent('InstanceCreateStart', { source: 'CreationModal' })
},
})
@@ -308,10 +298,10 @@ const [
all_game_versions,
loaders,
] = await Promise.all([
get_fabric_versions().then(shallowRef).catch(handleError),
get_forge_versions().then(shallowRef).catch(handleError),
get_quilt_versions().then(shallowRef).catch(handleError),
get_neoforge_versions().then(shallowRef).catch(handleError),
get_loader_versions('fabric').then(shallowRef).catch(handleError),
get_loader_versions('forge').then(shallowRef).catch(handleError),
get_loader_versions('quilt').then(shallowRef).catch(handleError),
get_loader_versions('neo').then(shallowRef).catch(handleError),
get_game_versions().then(shallowRef).catch(handleError),
get_loaders()
.then((value) =>
@@ -370,7 +360,7 @@ const create_instance = async () => {
icon.value,
).catch(handleError)
mixpanel_track('InstanceCreate', {
trackEvent('InstanceCreate', {
profile_name: profile_name.value,
game_version: game_version.value,
loader: loader.value,
@@ -381,7 +371,7 @@ const create_instance = async () => {
}
const upload_icon = async () => {
icon.value = await open({
const res = await open({
multiple: false,
filters: [
{
@@ -391,8 +381,10 @@ const upload_icon = async () => {
],
})
icon.value = res.path ?? res
if (!icon.value) return
display_icon.value = tauri.convertFileSrc(icon.value)
display_icon.value = convertFileSrc(icon.value)
}
const reset_icon = () => {
@@ -427,9 +419,9 @@ const openFile = async () => {
const newProject = await open({ multiple: false })
if (!newProject) return
hide()
await install_from_file(newProject).catch(handleError)
await create_profile_and_install_from_file(newProject.path ?? newProject).catch(handleError)
mixpanel_track('InstanceCreate', {
trackEvent('InstanceCreate', {
source: 'CreationModalFileOpen',
})
}
@@ -472,7 +464,7 @@ const promises = profileOptions.value.map(async (option) => {
option.name,
instances.map((name) => ({ name, selected: false })),
)
} catch (error) {
} catch {
// Allow failure silently
}
})
@@ -533,8 +525,8 @@ const next = async () => {
.modal-body {
display: flex;
flex-direction: column;
padding: var(--gap-lg);
gap: var(--gap-md);
margin-top: var(--gap-lg);
}
.input-label {
@@ -603,7 +595,6 @@ const next = async () => {
flex-direction: row;
justify-content: space-between;
align-items: center;
padding: var(--gap-lg);
padding-bottom: 0;
}

View File

@@ -0,0 +1,53 @@
<script setup lang="ts">
import { convertFileSrc } from '@tauri-apps/api/core'
import { formatCategory } from '@modrinth/utils'
import { GameIcon, LeftArrowIcon } from '@modrinth/assets'
import { Avatar, ButtonStyled } from '@modrinth/ui'
type Instance = {
game_version: string
loader: string
path: string
install_stage: string
icon_path?: string
name: string
}
defineProps<{
instance: Instance
}>()
</script>
<template>
<div class="flex justify-between items-center border-0 border-b border-solid border-divider pb-4">
<router-link
:to="`/instance/${encodeURIComponent(instance.path)}`"
tabindex="-1"
class="flex flex-col gap-4 text-primary"
>
<span class="flex items-center gap-2">
<Avatar
:src="instance.icon_path ? convertFileSrc(instance.icon_path) : undefined"
:alt="instance.name"
size="48px"
/>
<span class="flex flex-col gap-2">
<span class="font-extrabold bold text-contrast">
{{ instance.name }}
</span>
<span class="text-secondary flex items-center gap-2 font-semibold">
<GameIcon class="h-5 w-5 text-secondary" />
{{ formatCategory(instance.loader) }} {{ instance.game_version }}
</span>
</span>
</span>
</router-link>
<ButtonStyled>
<router-link :to="`/instance/${encodeURIComponent(instance.path)}`">
<LeftArrowIcon /> Back to instance
</router-link>
</ButtonStyled>
</div>
</template>
<style scoped lang="scss"></style>

View File

@@ -1,5 +1,5 @@
<template>
<Modal ref="detectJavaModal" header="Select java version" :noblur="!themeStore.advancedRendering">
<ModalWrapper ref="detectJavaModal" header="Select java version" :show-ad-on-close="false">
<div class="auto-detect-modal">
<div class="table">
<div class="table-row table-head">
@@ -32,17 +32,16 @@
</Button>
</div>
</div>
</Modal>
</ModalWrapper>
</template>
<script setup>
import { Modal, PlusIcon, CheckIcon, Button, XIcon } from 'omorphia'
import { PlusIcon, CheckIcon, XIcon } from '@modrinth/assets'
import { Button } from '@modrinth/ui'
import { ref } from 'vue'
import { find_filtered_jres } from '@/helpers/jre.js'
import { handleError } from '@/store/notifications.js'
import { mixpanel_track } from '@/helpers/mixpanel'
import { useTheming } from '@/store/theme.js'
const themeStore = useTheming()
import { trackEvent } from '@/helpers/analytics'
import ModalWrapper from '@/components/ui/modal/ModalWrapper.vue'
const chosenInstallOptions = ref([])
const detectJavaModal = ref(null)
@@ -52,9 +51,6 @@ defineExpose({
show: async (version, currentSelectedJava) => {
chosenInstallOptions.value = await find_filtered_jres(version).catch(handleError)
console.log(chosenInstallOptions.value)
console.log(version)
currentSelected.value = currentSelectedJava
if (!currentSelected.value) {
currentSelected.value = { path: '', version: '' }
@@ -69,7 +65,7 @@ const emit = defineEmits(['submit'])
function setJavaInstall(javaInstall) {
emit('submit', javaInstall)
detectJavaModal.value.hide()
mixpanel_track('JavaAutoDetect', {
trackEvent('JavaAutoDetect', {
path: javaInstall.path,
version: javaInstall.version,
})
@@ -77,8 +73,6 @@ function setJavaInstall(javaInstall) {
</script>
<style lang="scss" scoped>
.auto-detect-modal {
padding: 1rem;
.table {
.table-row {
grid-template-columns: 1fr 4fr min-content;

View File

@@ -28,7 +28,7 @@
</Button>
<Button :disabled="props.disabled" @click="autoDetect">
<SearchIcon />
Auto detect
Detect
</Button>
<Button :disabled="props.disabled" @click="handleJavaFileInput()">
<FolderSearchIcon />
@@ -53,20 +53,20 @@
<script setup>
import {
Button,
SearchIcon,
PlayIcon,
CheckIcon,
XIcon,
FolderSearchIcon,
DownloadIcon,
} from 'omorphia'
} from '@modrinth/assets'
import { Button } from '@modrinth/ui'
import { auto_install_java, find_filtered_jres, get_jre, test_jre } from '@/helpers/jre.js'
import { ref } from 'vue'
import { open } from '@tauri-apps/api/dialog'
import { open } from '@tauri-apps/plugin-dialog'
import JavaDetectionModal from '@/components/ui/JavaDetectionModal.vue'
import { mixpanel_track } from '@/helpers/mixpanel'
import { handleError } from '@/store/state.js'
import { trackEvent } from '@/helpers/analytics'
const props = defineProps({
version: {
@@ -113,7 +113,7 @@ async function testJava() {
)
testingJava.value = false
mixpanel_track('JavaTest', {
trackEvent('JavaTest', {
path: props.modelValue ? props.modelValue.path : '',
success: testingJavaSuccess.value,
})
@@ -124,20 +124,19 @@ async function testJava() {
}
async function handleJavaFileInput() {
let filePath = await open()
const filePath = await open()
if (filePath) {
let result = await get_jre(filePath)
let result = await get_jre(filePath.path ?? filePath)
if (!result) {
result = {
path: filePath,
path: filePath.path ?? filePath,
version: props.version.toString(),
architecture: 'x86',
}
}
mixpanel_track('JavaManualSelect', {
path: filePath,
trackEvent('JavaManualSelect', {
version: props.version,
})
@@ -150,7 +149,7 @@ async function autoDetect() {
if (!props.compact) {
detectJavaModal.value.show(props.version, props.modelValue)
} else {
let versions = await find_filtered_jres(props.version).catch(handleError)
const versions = await find_filtered_jres(props.version).catch(handleError)
if (versions.length > 0) {
emit('update:modelValue', versions[0])
}
@@ -162,7 +161,6 @@ async function reinstallJava() {
const path = await auto_install_java(props.version).catch(handleError)
let result = await get_jre(path)
console.log('java result ' + result)
if (!result) {
result = {
path: path,
@@ -171,7 +169,7 @@ async function reinstallJava() {
}
}
mixpanel_track('JavaReInstall', {
trackEvent('JavaReInstall', {
path: path,
version: props.version,
})
@@ -189,6 +187,7 @@ async function reinstallJava() {
.toggle-setting {
display: flex;
flex-wrap: wrap;
flex-direction: row;
justify-content: space-between;
align-items: center;
@@ -205,6 +204,10 @@ async function reinstallJava() {
align-items: center;
gap: 0.5rem;
margin: 0;
.btn {
width: max-content;
}
}
.test-success {

View File

@@ -1,10 +1,11 @@
<script setup>
import { Button, Modal, CheckIcon, Badge } from 'omorphia'
import { CheckIcon } from '@modrinth/assets'
import { Button, Badge } from '@modrinth/ui'
import { computed, ref } from 'vue'
import { useTheming } from '@/store/theme'
import { update_managed_modrinth_version } from '@/helpers/profile'
import { releaseColor } from '@/helpers/utils'
import { SwapIcon } from '@/assets/icons/index.js'
import ModalWrapper from '@/components/ui/modal/ModalWrapper.vue'
const props = defineProps({
versions: {
@@ -23,33 +24,41 @@ defineExpose({
},
})
const emit = defineEmits(['finish-install'])
const filteredVersions = computed(() => {
return props.versions
})
const modpackVersionModal = ref(null)
const installedVersion = computed(() => props.instance?.metadata?.linked_data?.version_id)
const installedVersion = computed(() => props.instance?.linked_data?.version_id)
const installing = computed(() => props.instance.install_stage !== 'installed')
const inProgress = ref(false)
const themeStore = useTheming()
const switchVersion = async (versionId) => {
modpackVersionModal.value.hide()
inProgress.value = true
await update_managed_modrinth_version(props.instance.path, versionId)
inProgress.value = false
emit('finish-install')
}
const onHide = () => {
if (!inProgress.value) {
emit('finish-install')
}
}
</script>
<template>
<Modal
<ModalWrapper
ref="modpackVersionModal"
class="modpack-version-modal"
header="Change modpack version"
:noblur="!themeStore.advancedRendering"
:on-hide="onHide"
>
<div class="modal-body">
<Card v-if="instance.metadata.linked_data" class="mod-card">
<div v-if="instance.linked_data" class="mod-card">
<div class="table">
<div class="table-row with-columns table-head">
<div class="table-cell table-text download-cell" />
@@ -61,7 +70,7 @@ const switchVersion = async (versionId) => {
v-for="version in filteredVersions"
:key="version.id"
class="table-row with-columns selectable"
@click="$router.push(`/project/${$route.params.id}/version/${version.id}`)"
@click="$router.push(`/project/${version.project_id}/version/${version.id}`)"
>
<div class="table-cell table-text">
<Button
@@ -108,9 +117,9 @@ const switchVersion = async (versionId) => {
</div>
</div>
</div>
</Card>
</div>
</div>
</Modal>
</ModalWrapper>
</template>
<style scoped lang="scss">
@@ -175,7 +184,6 @@ const switchVersion = async (versionId) => {
}
.modal-body {
padding: var(--gap-xl);
display: flex;
flex-direction: column;
gap: var(--gap-md);

View File

@@ -0,0 +1,59 @@
<template>
<RouterLink
v-if="typeof to === 'string'"
:to="to"
v-bind="$attrs"
:class="{
'router-link-active': isPrimary && isPrimary(route),
'subpage-active': isSubpage && isSubpage(route),
}"
class="w-12 h-12 text-primary rounded-full flex items-center justify-center text-2xl transition-all bg-transparent hover:bg-button-bg hover:text-contrast"
>
<slot />
</RouterLink>
<button
v-else
v-bind="$attrs"
class="button-animation border-none text-primary cursor-pointer w-12 h-12 rounded-full flex items-center justify-center text-2xl transition-all bg-transparent hover:bg-button-bg hover:text-contrast"
@click="to"
>
<slot />
</button>
</template>
<script setup lang="ts">
import type { RouteLocationNormalizedLoaded } from 'vue-router'
import { RouterLink, useRoute } from 'vue-router'
const route = useRoute()
type RouteFunction = (route: RouteLocationNormalizedLoaded) => boolean
defineProps<{
to: (() => void) | string
isPrimary?: RouteFunction
isSubpage?: RouteFunction
highlightOverride?: boolean
}>()
defineOptions({
inheritAttrs: false,
})
</script>
<style lang="scss" scoped>
.router-link-active,
.subpage-active {
svg {
filter: drop-shadow(0 0 0.5rem black);
}
}
.router-link-active {
@apply text-[--color-button-text-selected] bg-[--color-button-bg-selected];
}
.subpage-active {
@apply text-contrast bg-button-bg;
}
</style>

View File

@@ -0,0 +1,160 @@
<template>
<nav
class="card-shadow experimental-styles-within relative flex w-fit overflow-clip rounded-full bg-bg-raised p-1 text-sm font-bold"
>
<RouterLink
v-for="(link, index) in filteredLinks"
v-show="link.shown === undefined ? true : link.shown"
:key="index"
ref="tabLinkElements"
:to="query ? (link.href ? `?${query}=${link.href}` : '?') : link.href"
:class="`button-animation z-[1] flex flex-row items-center gap-2 px-4 py-2 focus:rounded-full ${activeIndex === index && !subpageSelected ? 'text-button-textSelected' : activeIndex === index && subpageSelected ? 'text-contrast' : 'text-primary'}`"
>
<component :is="link.icon" v-if="link.icon" class="size-5" />
<span class="text-nowrap">{{ link.label }}</span>
</RouterLink>
<div
:class="`navtabs-transition pointer-events-none absolute h-[calc(100%-0.5rem)] overflow-hidden rounded-full p-1 ${subpageSelected ? 'bg-button-bg' : 'bg-button-bgSelected'}`"
:style="{
left: sliderLeftPx,
top: sliderTopPx,
right: sliderRightPx,
bottom: sliderBottomPx,
opacity: sliderLeft === 4 && sliderLeft === sliderRight ? 0 : activeIndex === -1 ? 0 : 1,
}"
aria-hidden="true"
></div>
</nav>
</template>
<script setup lang="ts">
import { computed, onMounted, onUnmounted, ref, watch } from 'vue'
import type { RouteLocationRaw } from 'vue-router'
import { useRoute, RouterLink } from 'vue-router'
const route = useRoute()
interface Tab {
label: string
href: string | RouteLocationRaw
shown?: boolean
icon?: unknown
subpages?: string[]
}
const props = defineProps<{
links: Tab[]
query?: string
}>()
const sliderLeft = ref(4)
const sliderTop = ref(4)
const sliderRight = ref(4)
const sliderBottom = ref(4)
const activeIndex = ref(-1)
const oldIndex = ref(-1)
const subpageSelected = ref(false)
const filteredLinks = computed(() =>
props.links.filter((x) => (x.shown === undefined ? true : x.shown)),
)
const sliderLeftPx = computed(() => `${sliderLeft.value}px`)
const sliderTopPx = computed(() => `${sliderTop.value}px`)
const sliderRightPx = computed(() => `${sliderRight.value}px`)
const sliderBottomPx = computed(() => `${sliderBottom.value}px`)
function pickLink() {
let index = -1
subpageSelected.value = false
for (let i = filteredLinks.value.length - 1; i >= 0; i--) {
const link = filteredLinks.value[i]
if (route.path === (typeof link.href === 'string' ? link.href : link.href.path)) {
index = i
break
} else if (link.subpages && link.subpages.some((subpage) => route.path.includes(subpage))) {
index = i
subpageSelected.value = true
break
}
}
activeIndex.value = index
if (activeIndex.value !== -1) {
startAnimation()
} else {
oldIndex.value = -1
sliderLeft.value = 0
sliderRight.value = 0
}
}
const tabLinkElements = ref()
function startAnimation() {
const el = tabLinkElements.value[activeIndex.value].$el
if (!el || !el.offsetParent) return
const newValues = {
left: el.offsetLeft,
top: el.offsetTop,
right: el.offsetParent.offsetWidth - el.offsetLeft - el.offsetWidth,
bottom: el.offsetParent.offsetHeight - el.offsetTop - el.offsetHeight,
}
if (sliderLeft.value === 4 && sliderRight.value === 4) {
sliderLeft.value = newValues.left
sliderRight.value = newValues.right
sliderTop.value = newValues.top
sliderBottom.value = newValues.bottom
} else {
const delay = 200
if (newValues.left < sliderLeft.value) {
sliderLeft.value = newValues.left
setTimeout(() => {
sliderRight.value = newValues.right
}, delay)
} else {
sliderRight.value = newValues.right
setTimeout(() => {
sliderLeft.value = newValues.left
}, delay)
}
if (newValues.top < sliderTop.value) {
sliderTop.value = newValues.top
setTimeout(() => {
sliderBottom.value = newValues.bottom
}, delay)
} else {
sliderBottom.value = newValues.bottom
setTimeout(() => {
sliderTop.value = newValues.top
}, delay)
}
}
}
onMounted(() => {
window.addEventListener('resize', pickLink)
pickLink()
})
onUnmounted(() => {
window.removeEventListener('resize', pickLink)
})
watch(route, () => {
pickLink()
})
</script>
<style scoped>
.navtabs-transition {
/* Delay on opacity is to hide any jankiness as the page loads */
transition:
all 150ms cubic-bezier(0.4, 0, 0.2, 1) 0s,
opacity 250ms cubic-bezier(0.5, 0, 0.2, 1) 50ms;
}
</style>

View File

@@ -0,0 +1,121 @@
<script setup>
import { Avatar, TagItem } from '@modrinth/ui'
import { DownloadIcon, HeartIcon, TagIcon } from '@modrinth/assets'
import { formatNumber, formatCategory } from '@modrinth/utils'
import { computed } from 'vue'
import dayjs from 'dayjs'
import relativeTime from 'dayjs/plugin/relativeTime'
import { useRouter } from 'vue-router'
dayjs.extend(relativeTime)
const router = useRouter()
const props = defineProps({
project: {
type: Object,
default() {
return {}
},
},
})
const featuredCategory = computed(() => {
if (props.project.categories.includes('optimization')) {
return 'optimization'
}
if (props.project.categories.length > 0) {
return props.project.categories[0]
}
return undefined
})
const toColor = computed(() => {
let color = props.project.color
color >>>= 0
const b = color & 0xff
const g = (color >>> 8) & 0xff
const r = (color >>> 16) & 0xff
return 'rgba(' + [r, g, b, 1].join(',') + ')'
})
const toTransparent = computed(() => {
let color = props.project.color
color >>>= 0
const b = color & 0xff
const g = (color >>> 8) & 0xff
const r = (color >>> 16) & 0xff
return (
'linear-gradient(rgba(' +
[r, g, b, 0.03].join(',') +
'), 65%, rgba(' +
[r, g, b, 0.3].join(',') +
'))'
)
})
</script>
<template>
<div
class="card-shadow bg-bg-raised rounded-xl overflow-clip cursor-pointer hover:brightness-90 transition-all"
@click="router.push(`/project/${project.slug}`)"
>
<div
class="w-full aspect-[2/1] bg-cover bg-center bg-no-repeat"
:style="{
'background-color': project.featured_gallery ?? project.gallery[0] ? null : toColor,
'background-image': `url(${
project.featured_gallery ??
project.gallery[0] ??
'https://launcher-files.modrinth.com/assets/maze-bg.png'
})`,
}"
>
<div
class="badges-wrapper"
:class="{
'no-image': !project.featured_gallery && !project.gallery[0],
}"
:style="{
background: !project.featured_gallery && !project.gallery[0] ? toTransparent : null,
}"
></div>
</div>
<div class="flex flex-col justify-center gap-2 px-4 py-3">
<div class="flex gap-2 items-center">
<Avatar size="48px" :src="project.icon_url" />
<div class="h-full flex items-center font-bold text-contrast leading-normal">
<span class="line-clamp-2">{{ project.title }}</span>
</div>
</div>
<p class="m-0 text-sm font-medium line-clamp-3 leading-tight h-[3.25rem]">
{{ project.description }}
</p>
<div class="flex items-center gap-2 text-sm text-secondary font-semibold mt-auto">
<div
class="flex items-center gap-1 pr-2 border-0 border-r-[1px] border-solid border-button-border"
>
<DownloadIcon />
{{ formatNumber(project.downloads) }}
</div>
<div
class="flex items-center gap-1 pr-2 border-0 border-r-[1px] border-solid border-button-border"
>
<HeartIcon />
{{ formatNumber(project.follows) }}
</div>
<div class="flex items-center gap-1 pr-2">
<TagIcon />
<TagItem>
{{ formatCategory(featuredCategory) }}
</TagItem>
</div>
</div>
</div>
</div>
</template>
<style scoped lang="scss"></style>

Some files were not shown because too many files have changed in this diff Show More