Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pyro Integration #2503

Merged
merged 1,259 commits into from
Nov 3, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1259 commits
Select commit Hold shift + click to select a range
6c5aab1
fix
ferothefox Oct 26, 2024
b38ba42
fix
ferothefox Oct 26, 2024
7b358fe
refactor(fileitem): optimize
ferothefox Oct 26, 2024
9c1632b
chore(fileitem): fixed width timestamp
ferothefox Oct 26, 2024
9e34ae3
fix(fileitem): allow editing json5/jsonc
ferothefox Oct 26, 2024
ac047d2
feat: motd pt 1, auto backups scaffolding, editing navbar changes
thewander02 Oct 26, 2024
5b905a9
feat: fancy sidebar animations
thewander02 Oct 26, 2024
047d8ee
fix: files
thewander02 Oct 26, 2024
be555ce
fix: files pt2
thewander02 Oct 26, 2024
abd1363
fix: faulty name validation disallowing spaces in file names
ferothefox Oct 26, 2024
7330344
refactor: fileitem props
ferothefox Oct 26, 2024
d23884f
fix: upload files not refreshing files list
ferothefox Oct 26, 2024
eb5d1d0
fix(imgviewer): handle invalid/empty images
ferothefox Oct 26, 2024
d846595
fix: return of the sticky files header
ferothefox Oct 26, 2024
4e9fff1
chore: prevent servericon from shrinking
ferothefox Oct 26, 2024
127e884
fix: wtf were we thinking with this anyway
ferothefox Oct 26, 2024
6966dd2
fix: further mobile optimization
ferothefox Oct 26, 2024
934628a
chore: propagate margin
ferothefox Oct 26, 2024
f3bc425
chore: truncation fixes
ferothefox Oct 26, 2024
3d34b99
fix: track navbar with sentinel
ferothefox Oct 26, 2024
c2ed40d
chore: clean
ferothefox Oct 26, 2024
59398fb
fix(files): a11y
ferothefox Oct 26, 2024
5ddb654
chore: improve inspector styles
ferothefox Oct 26, 2024
afd850d
chore: clean
ferothefox Oct 27, 2024
4aa18b2
feat: console preformance improvements, decrease blur
thewander02 Oct 27, 2024
a23991b
feat(mobile): new server header
he3als Oct 27, 2024
6ba1dcf
fix: linting
he3als Oct 27, 2024
607b959
fix: useless z indeces
ferothefox Oct 27, 2024
3a01a54
chore: adjust file filter names
ferothefox Oct 27, 2024
8c256aa
feat(files): true breadcrumbs
ferothefox Oct 27, 2024
99970ac
fix(marketing): make custom responsive
he3als Oct 27, 2024
e8a3ebf
fix(marketing): mobile file manager card
he3als Oct 27, 2024
37b5a3f
Merge branch 'main' into pyro
ferothefox Oct 27, 2024
05f7fbc
feat: trackable navtabs
ferothefox Oct 27, 2024
68d6c8d
fix: oh no
ferothefox Oct 27, 2024
8223bf6
Merge branch 'main' into pyro
ferothefox Oct 27, 2024
546fe6e
fix: smartly truncate
ferothefox Oct 27, 2024
1f32bfb
fix(terminal): z-indexes
he3als Oct 27, 2024
dfd3798
fix: autofocus more inputs
ferothefox Oct 27, 2024
da29126
fix: color
ferothefox Oct 27, 2024
3d8eeda
chore: adjust copy
ferothefox Oct 27, 2024
b6835ba
chore: backup modal usability improvements
ferothefox Oct 27, 2024
635cda7
fix: padding
ferothefox Oct 27, 2024
882634b
chore: title
ferothefox Oct 27, 2024
80e0766
fix(content): update banner mobile support
he3als Oct 27, 2024
9066483
fix: server listing icons
ferothefox Oct 27, 2024
a79d880
fix: ignore clicks in server listing for labels
ferothefox Oct 27, 2024
4530a90
feat(mobile): backup card
he3als Oct 27, 2024
6c0cd19
fix(backups): make plural conditional
he3als Oct 27, 2024
210ac02
fix: debounce file item selectitem
ferothefox Oct 27, 2024
fcb9964
fix: lint
ferothefox Oct 27, 2024
5380df7
stuff
ferothefox Oct 28, 2024
c0a9de2
fix: temp sidebar fix until i can be smart
thewander02 Oct 28, 2024
f455e16
chore: clean
ferothefox Oct 28, 2024
b6eea3a
chore: explictly set button type in file modals
ferothefox Oct 28, 2024
28e6732
fix: properly sort backups
ferothefox Oct 29, 2024
d374984
feat: add getautobackup method to pyroservers
ferothefox Oct 29, 2024
b172d7b
choer: update autobackup params
ferothefox Oct 29, 2024
ffe1737
chore: update autobackup methods (REALLY GUYS)
ferothefox Oct 29, 2024
4f4b1c7
feat: implement autobackups
ferothefox Oct 29, 2024
2e7432f
feat: implement backup-while-running preference
ferothefox Oct 29, 2024
f2e4b7e
feat: make server labels a component
he3als Oct 29, 2024
24d3a38
feat: implement 'All details' modal
he3als Oct 29, 2024
7c24c96
fix(mobile): server manage page
he3als Oct 29, 2024
598ec06
feat(files): mobile compatible
he3als Oct 29, 2024
a12eb85
fix(info labels): wrap
he3als Oct 29, 2024
1c9b6c7
chore(inspector): clean
ferothefox Oct 29, 2024
7d0930b
fix(backup settings): swap + and -
he3als Oct 29, 2024
750f169
fix(manage): new -> plans instead of modal
he3als Oct 30, 2024
20502cf
feat: more small mobile fixes
he3als Oct 30, 2024
b49b5e9
fix(auto backup modal): manual input validation
he3als Oct 30, 2024
c1d379e
fix(file browse navbar): home margin
he3als Oct 30, 2024
abdfb4d
feat(purchase modal): mobile support
he3als Oct 30, 2024
91c66c9
fix(marketing): faded line alignments
he3als Oct 30, 2024
f8facaa
feat: add servers to mobile nav
he3als Oct 30, 2024
fac5fcf
feat(network): dns record fixes
he3als Oct 30, 2024
72125a6
feat: make all settings work on mobile
he3als Oct 30, 2024
81c84de
fix(loader settings): modpack mobile
he3als Oct 30, 2024
03dcf8a
chore: clean
ferothefox Oct 30, 2024
d681372
feat(marketing): add 'Manage your servers' button
he3als Oct 30, 2024
a01802b
fix(marketing): only check servers if logged in
he3als Oct 30, 2024
6f8c16d
Merge branch 'main' into pyro
ferothefox Oct 30, 2024
84ce69b
fix(network): allocation edit & delete button
he3als Oct 30, 2024
04255c0
fix(backups): use UiServersTeleportOverflowMenu
he3als Oct 31, 2024
808d076
chore: linting
he3als Oct 31, 2024
fdd017c
chore: but here comes the sentence case
ferothefox Oct 31, 2024
59373dc
feat(marketing): make buttons consistent
he3als Oct 31, 2024
088329a
lint
ferothefox Oct 31, 2024
e8d17cf
fix(loader): prevent multiline version names in dropdown
ferothefox Oct 31, 2024
4f03a04
lint
ferothefox Oct 31, 2024
dc7611b
fix: copy
ferothefox Oct 31, 2024
d3693d1
fix: sentence case
ferothefox Oct 31, 2024
d475781
fix: linting
he3als Oct 31, 2024
884033a
chore: rename dumbass preference key
ferothefox Oct 31, 2024
c21359f
refactor: rewrite power action buttons
ferothefox Oct 31, 2024
fe30025
fix: robust download logic
ferothefox Oct 31, 2024
efa11b8
fix(loader mobile): modpack dropdown width
he3als Oct 31, 2024
0a25411
fix: sentence case
he3als Oct 31, 2024
53502a9
fix(save & 'working on it'): look good on mobile
he3als Oct 31, 2024
58bb396
fix(TeleportDropdown): width
he3als Oct 31, 2024
4dfebb2
fix(inspecting error): mobile
he3als Oct 31, 2024
1ac829d
fix: show action button dropdown when installing
he3als Oct 31, 2024
19754f2
fix(navtabs): temp fix for mobile scrolling issue
he3als Oct 31, 2024
a91aab0
fix(install error): mobile compatible
he3als Oct 31, 2024
98c4c8d
chore: just remove tracking
ferothefox Oct 31, 2024
7ec2b6c
chore: clean
ferothefox Oct 31, 2024
f7557cf
chore: clean
ferothefox Oct 31, 2024
7d76473
fix: cleanup
he3als Oct 31, 2024
247cf9b
fix: broken svg clr in checkbox when using experimental styles
ferothefox Oct 31, 2024
dc0d8ab
chore: adjust vanilla icon
ferothefox Oct 31, 2024
ddf9eb8
chore: adjust loader props
ferothefox Oct 31, 2024
d3eb417
revert changes to serversidebar
ferothefox Oct 31, 2024
32a40d1
fix: server properties flicker
ferothefox Oct 31, 2024
8ed6f50
fix(backups): plural
he3als Oct 31, 2024
d05e32a
fix: cases where the telepoverflow would clash with viewport edge
ferothefox Oct 31, 2024
36c1cf5
feat(backups): auto-backups label
he3als Oct 31, 2024
71af32d
fix(network): titlecase
he3als Oct 31, 2024
122509d
feat(fileitem): new rename icon
he3als Oct 31, 2024
45346a6
fix(properties): wiki proper noun
he3als Oct 31, 2024
1a5df0e
fix: disable motd for the time being
thewander02 Oct 31, 2024
4c0eb37
chore: adjust wording for power conifmration
ferothefox Oct 31, 2024
137bdac
feat: "external" to billing
ferothefox Oct 31, 2024
1571498
fix: icon
ferothefox Oct 31, 2024
5782cad
fix: add EULA checkbox
fangmarks Oct 31, 2024
3d30c55
chore: clean
ferothefox Oct 31, 2024
be21315
me and bro deciding which case rules to enforce
ferothefox Oct 31, 2024
c265608
feat(sftp): copy address & username, launch tooltip
he3als Oct 31, 2024
5129804
feat(files): better move
thewander02 Oct 31, 2024
5b95d8d
chore: attempt to mitigate excessive stack depth type
ferothefox Oct 31, 2024
6b9baaf
fix(loader): prevent versions 1.2.4 and below
he3als Oct 31, 2024
49353ad
Merge branch 'main' into pyro
ferothefox Oct 31, 2024
7a97379
feat(dns table): placeholder improvements
he3als Oct 31, 2024
9692c6e
Merge branch 'main' into pyro
ferothefox Oct 31, 2024
5d8541a
feat(pyroServer): error handling
thewander02 Oct 31, 2024
3fbafd5
fix: intrinsic size on loader icon
ferothefox Oct 31, 2024
2120efe
chore: adjust wording
ferothefox Oct 31, 2024
d9a6fc4
fix: sentence case
ferothefox Oct 31, 2024
dd70813
chore: adjust wording
ferothefox Oct 31, 2024
2fdbee8
fix: types
ferothefox Oct 31, 2024
a893248
fix: "implemented" key in preference
ferothefox Oct 31, 2024
2a822ff
feat(connection lost): redesign
he3als Oct 31, 2024
9ca7bf8
feat(connection error): make icon orange
he3als Oct 31, 2024
c6ebcef
fix: cleanup
he3als Oct 31, 2024
4560cb9
chore(connection lost): redesign pt 2
ferothefox Oct 31, 2024
1fd7730
fix: OOOOHHH MY GOD
ferothefox Oct 31, 2024
1618eef
feat: implement capacity api on marketing
ferothefox Nov 1, 2024
c3818ce
chore: update createdat backup type
ferothefox Nov 1, 2024
5866aad
refactor: all of backups
ferothefox Nov 1, 2024
117e3c0
chore: update backup types
ferothefox Nov 1, 2024
d167afa
refactor: backups pt 2
ferothefox Nov 1, 2024
5312b0e
fix: comically small icons
ferothefox Nov 1, 2024
48d92de
chore: align designs
ferothefox Nov 1, 2024
c8e1d6b
chore: hide ram graph if ram as bytes enabled
ferothefox Nov 1, 2024
97540d2
base add content page
Geometrically Nov 1, 2024
ad6352e
Fix conflict
Geometrically Nov 1, 2024
0a87377
feat(content): mobile-compatible header, sticky
he3als Nov 1, 2024
5ec6a19
fix(marketing): md instead of sm for custom
he3als Nov 1, 2024
55fa00c
fix: compiler macro warning
ferothefox Nov 1, 2024
bf682c4
again
ferothefox Nov 1, 2024
a3cb67a
fix: loader type error
ferothefox Nov 1, 2024
6c8a746
fix: default uptime seconds prop
ferothefox Nov 1, 2024
e8de9e4
fix: hydration errors on server listing
ferothefox Nov 1, 2024
581e257
feat: move custom URL to general
ferothefox Nov 1, 2024
debb58e
feat: indiviudally checkj capacities
ferothefox Nov 1, 2024
3f70559
fix: falsey
ferothefox Nov 1, 2024
8ac0af9
fix: missing prop
ferothefox Nov 1, 2024
d5d1ce8
chore: Derive On That Thang
ferothefox Nov 1, 2024
88d2849
chore: adjust gap
ferothefox Nov 1, 2024
1792612
fix: add default name for backups
fangmarks Nov 1, 2024
6a5218a
fix: the backup number should PROBABLY be computed lol
fangmarks Nov 1, 2024
3416bb6
fix(backups): truncate text, mobile fixes
he3als Nov 1, 2024
e4040c6
fix(loader): modpack mobile fix
he3als Nov 1, 2024
931c1f5
feat(plans): add vcpus
he3als Nov 1, 2024
0eca41e
fix(backup modal): blank by default, maxlength
he3als Nov 1, 2024
3351158
fix(subdomain): separate length & valid chars
he3als Nov 1, 2024
249c9e8
feat: mrpack installs functionality (untested), forbidden handling, b…
thewander02 Nov 1, 2024
f7e4937
feat(content): make responsive on mobile
he3als Nov 2, 2024
ff89a97
fix: disable plan buttons separately
fangmarks Nov 2, 2024
4ef5677
fix(backup modal): update name max length
he3als Nov 2, 2024
2f143ae
fix(purchase): wrapping on eula, eula link
he3als Nov 2, 2024
01cef30
fix: move skeleton
he3als Nov 2, 2024
50a3ada
fix(server mobile header): truncation
he3als Nov 2, 2024
21319be
fix(server header): proper alignment
he3als Nov 2, 2024
cef2a52
Finish content page fixes
Geometrically Nov 2, 2024
2b04385
fix: who up rinthing
ferothefox Nov 2, 2024
6e7f60d
wip
ferothefox Nov 2, 2024
28e3939
fix(staging & email banner): z-index
he3als Nov 2, 2024
7de99c5
feat: make eula tickbox more visible
not-nullptr Nov 2, 2024
3f79bd6
fix: move "powered by pyro" below buttons on hero
not-nullptr Nov 2, 2024
31560f8
fix: oops sorry ellie, also updated the main screenshot
not-nullptr Nov 2, 2024
2950a74
feat: update content screenshot
not-nullptr Nov 2, 2024
d300ca5
fix: content page card should hide image on lg
not-nullptr Nov 2, 2024
f5f6cc2
feat: hide total storage for now
not-nullptr Nov 2, 2024
6cdafe5
fix: terminal card now uses terminal icon
not-nullptr Nov 2, 2024
c402115
fix(marketing): make medium plan card border solid
he3als Nov 2, 2024
0deceef
feat: modloader card, move pyro BACK below buttons, beta release pill
not-nullptr Nov 2, 2024
ca94e6c
fix: spinning logo should be behind hero
not-nullptr Nov 2, 2024
deb84cc
feat: surgically remove the hero's massive forehead
not-nullptr Nov 2, 2024
67f147b
feat(marketing): mobile UI screenshot
he3als Nov 2, 2024
3bf9b6c
fix(hero): z-index goes over mobile nav
he3als Nov 2, 2024
8ac9d09
fix: consistent borders, files breakpoints
he3als Nov 2, 2024
ab18446
chore: update turbo
fangmarks Nov 2, 2024
d89ebe4
chore: adjust hero sizing
ferothefox Nov 2, 2024
2e0a072
Merge branch 'main' into pyro
ferothefox Nov 2, 2024
bb3707b
chore: mention region restrictions
fangmarks Nov 2, 2024
22eaa0a
chore: double check if we are at capcity
ferothefox Nov 2, 2024
b1856ca
fix: measure twice cut once
ferothefox Nov 2, 2024
b8d2048
chore: bro cut twice and measured once 💀
ferothefox Nov 2, 2024
3756238
fix(marketing): login first
he3als Nov 2, 2024
0364ba3
fix: out of capacity text when logged out
he3als Nov 2, 2024
8482cdf
fix(slider): reset some values for frontend
he3als Nov 2, 2024
de9f559
feat: wip hero section
ferothefox Nov 2, 2024
619f8da
New navigation to support the new products (#2879)
Prospector Nov 2, 2024
4bd98f2
feat: mrpack uploading with existing modpack, fix: choose modpack dup…
not-nullptr Nov 2, 2024
31b9a6f
chore: clean
ferothefox Nov 2, 2024
2939b7f
feat: update features section
ferothefox Nov 2, 2024
00afaca
Nav adjustments
Prospector Nov 2, 2024
b111e66
fix: server manager empty state clashing with loading state
ferothefox Nov 3, 2024
5ea0bdc
chore: query param hard
ferothefox Nov 3, 2024
39e9d26
fix: do not count uptime if crashed
ferothefox Nov 3, 2024
a21eba1
fix: grammar
ferothefox Nov 3, 2024
bd7cd00
hide hero img on lg breakpoints
SticksDev Nov 3, 2024
7420812
Make plugins a plug
Prospector Nov 3, 2024
41a6e50
chore: prep for buffered text selection terminal
ferothefox Nov 3, 2024
e5b350c
fix: marketing responsive stuff, n fixes
thewander02 Nov 3, 2024
81a4ac4
fix hoverable prop
Prospector Nov 3, 2024
508427f
fix: edit mod spacing
thewander02 Nov 3, 2024
1b6f7ca
fix: type error for display name in dropdown
ferothefox Nov 3, 2024
00877b8
feat: custom plans
he3als Nov 3, 2024
9a97107
fix: no more console.log
he3als Nov 3, 2024
59e95e3
fix: properly linked prop label
ferothefox Nov 3, 2024
01c8e7e
fix(install hero mobile): padding
he3als Nov 3, 2024
2b58461
fix: prevent x overflow on servers page
ferothefox Nov 3, 2024
66c9d60
fix lint oh ym fucking god yal
ferothefox Nov 3, 2024
ab06162
Migrate modpack install to search
Prospector Nov 3, 2024
4a97959
fix(custom plan): warning icon variable
he3als Nov 3, 2024
8c63dff
fix: loading probally and modal loader things
thewander02 Nov 3, 2024
cae9704
fix(marketing): login icon colours
he3als Nov 3, 2024
f779f6d
fix(marketing): responsiveness
he3als Nov 3, 2024
eefe778
fix(marketing): responsiveness v2
he3als Nov 3, 2024
0683322
fix: sync button for icon tm
thewander02 Nov 3, 2024
b335fdc
fix(marketing): responsiveness v3
he3als Nov 3, 2024
73d2388
fix: hero image
ferothefox Nov 3, 2024
cfb5f41
chore: clean
ferothefox Nov 3, 2024
80c0b8f
chore: switch to cdn links
ferothefox Nov 3, 2024
06a873f
chore: switch to cdn links
ferothefox Nov 3, 2024
23bd1aa
chore: switch to cdn links
ferothefox Nov 3, 2024
f3420b8
chore: switch to cdn links
ferothefox Nov 3, 2024
1bc6021
Remove prod override
Geometrically Nov 3, 2024
ebcdaa3
Merge remote-tracking branch 'origin/pyro' into pyro
Geometrically Nov 3, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -56,4 +56,8 @@ generated
# app testing dir
app-playground-data/*

# soley because i need the PORT to be 3002 due to WSL stuff
.env
apps/frontend/.env

.astro
4 changes: 1 addition & 3 deletions apps/app/capabilities/plugins.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,7 @@
"identifier": "plugins",
"description": "",
"local": true,
"windows": [
"main"
],
"windows": ["main"],
"permissions": [
"dialog:allow-open",
"dialog:allow-confirm",
Expand Down
3,314 changes: 3,314 additions & 0 deletions apps/app/gen/schemas/windows-schema.json

Large diffs are not rendered by default.

3 changes: 3 additions & 0 deletions apps/frontend/.eslintrc.cjs
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
module.exports = {
root: true,
extends: ["../../packages/eslint-config-custom/nuxt.js"],
rules: {
"import/no-unresolved": "off",
},
};
8 changes: 5 additions & 3 deletions apps/frontend/nuxt.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -176,7 +176,6 @@ export default defineNuxtConfig({
$fetch(`${API_URL}projects_random?count=60`, headers),
$fetch(`${API_URL}search?limit=3&query=leave&index=relevance`, headers),
$fetch(`${API_URL}search?limit=3&query=&index=updated`, headers),
// TODO: dehardcode
$fetch(`${API_URL.replace("/v2/", "/_internal/")}billing/products`, headers),
]);

Expand Down Expand Up @@ -321,8 +320,10 @@ export default defineNuxtConfig({
apiBaseUrl: process.env.BASE_URL ?? globalThis.BASE_URL ?? getApiUrl(),
// @ts-ignore
rateLimitKey: process.env.RATE_LIMIT_IGNORE_KEY ?? globalThis.RATE_LIMIT_IGNORE_KEY,
pyroBaseUrl: process.env.PYRO_BASE_URL,
public: {
apiBaseUrl: getApiUrl(),
pyroBaseUrl: process.env.PYRO_BASE_URL,
siteUrl: getDomain(),
production: isProduction(),
featureFlagOverrides: getFeatureFlagOverrides(),
Expand Down Expand Up @@ -361,7 +362,7 @@ export default defineNuxtConfig({
},
},
},
modules: ["@vintl/nuxt", "@nuxtjs/turnstile"],
modules: ["@vintl/nuxt", "@nuxtjs/turnstile", "@pinia/nuxt"],
vintl: {
defaultLocale: "en-US",
locales: [
Expand Down Expand Up @@ -462,6 +463,7 @@ function getDomain() {
return "https://modrinth.com";
}
} else {
return "http://localhost:3000";
const port = process.env.PORT || 3000;
return `http://localhost:${port}`;
}
}
11 changes: 10 additions & 1 deletion apps/frontend/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
"@formatjs/cli": "^6.2.12",
"@nuxt/devtools": "^1.3.3",
"@nuxtjs/turnstile": "^0.8.0",
"@types/dompurify": "^3.0.5",
"@types/node": "^20.1.0",
"@vintl/compact-number": "^2.0.5",
"@vintl/how-ago": "^3.0.1",
Expand All @@ -38,8 +39,13 @@
"@modrinth/assets": "workspace:*",
"@modrinth/ui": "workspace:*",
"@modrinth/utils": "workspace:*",
"@pinia/nuxt": "^0.5.1",
"@vintl/vintl": "^4.4.1",
"@vueuse/core": "^11.1.0",
"ace-builds": "^1.36.2",
"ansi-to-html": "^0.7.2",
"dayjs": "^1.11.7",
"dompurify": "^3.1.7",
"floating-vue": "2.0.0-beta.20",
"fuse.js": "^6.6.2",
"highlight.js": "^11.7.0",
Expand All @@ -48,9 +54,12 @@
"jszip": "^3.10.1",
"markdown-it": "14.1.0",
"pathe": "^1.1.2",
"pinia": "^2.1.7",
"qrcode.vue": "^3.4.0",
"semver": "^7.5.4",
"vue-multiselect": "3.0.0",
"vue-multiselect": "3.0.0-alpha.2",
"vue-typed-virtual-list": "^1.0.10",
"vue3-ace-editor": "^2.2.4",
"vue3-apexcharts": "^1.5.2",
"xss": "^1.0.14"
}
Expand Down
Binary file added apps/frontend/src/assets/images/games/rinth.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion apps/frontend/src/components/ui/Checkbox.vue
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ export default {
}

svg {
color: var(--color-brand-inverted);
color: var(--color-accent-contrast, var(--color-brand-inverted));
stroke-width: 0.2rem;
height: 0.8rem;
width: 0.8rem;
Expand Down
3 changes: 1 addition & 2 deletions apps/frontend/src/components/ui/CopyCode.vue
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ export default {
margin: 0;
padding: 0.25rem 0.5rem;
background-color: var(--color-code-bg);
width: min-content;
width: fit-content;
border-radius: 10px;
user-select: text;
transition:
Expand All @@ -55,7 +55,6 @@ export default {
outline 0.2s ease-in-out;

span {
max-width: 10rem;
overflow: hidden;
text-overflow: ellipsis;
}
Expand Down
33 changes: 18 additions & 15 deletions apps/frontend/src/components/ui/NavTabs.vue
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
<template>
<nav
class="experimental-styles-within relative flex w-fit overflow-clip rounded-full bg-bg-raised p-1 text-sm font-bold"
ref="scrollContainer"
class="experimental-styles-within relative flex w-fit overflow-x-auto rounded-full bg-bg-raised p-1 text-sm font-bold"
>
<NuxtLink
v-for="(link, index) in filteredLinks"
Expand All @@ -18,7 +19,9 @@
<span class="text-nowrap">{{ link.label }}</span>
</NuxtLink>
<div
:class="`navtabs-transition pointer-events-none absolute h-[calc(100%-0.5rem)] overflow-hidden rounded-full p-1 ${subpageSelected ? 'bg-button-bg' : 'bg-brand-highlight'}`"
:class="`navtabs-transition pointer-events-none absolute h-[calc(100%-0.5rem)] overflow-hidden rounded-full p-1 ${
subpageSelected ? 'bg-button-bg' : 'bg-brand-highlight'
}`"
:style="{
left: sliderLeftPx,
top: sliderTopPx,
Expand All @@ -32,6 +35,8 @@
</template>

<script setup lang="ts">
import { ref, computed, watch, onMounted } from "vue";

const route = useNativeRoute();

interface Tab {
Expand All @@ -47,12 +52,13 @@ const props = defineProps<{
query?: string;
}>();

const scrollContainer = ref<HTMLElement | null>(null);

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(() =>
Expand All @@ -63,6 +69,8 @@ const sliderTopPx = computed(() => `${sliderTop.value}px`);
const sliderRightPx = computed(() => `${sliderRight.value}px`);
const sliderBottomPx = computed(() => `${sliderBottom.value}px`);

const tabLinkElements = ref();

function pickLink() {
let index = -1;
subpageSelected.value = false;
Expand All @@ -86,16 +94,13 @@ function pickLink() {
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;
const el = tabLinkElements.value[activeIndex.value]?.$el;

if (!el || !el.offsetParent) return;

Expand Down Expand Up @@ -141,21 +146,19 @@ function startAnimation() {
}

onMounted(() => {
window.addEventListener("resize", pickLink);
pickLink();
});

onUnmounted(() => {
window.removeEventListener("resize", pickLink);
});

watch(route, () => pickLink());
watch(
() => route.path,
() => 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,
all 150ms cubic-bezier(0.4, 0, 0.2, 1),
opacity 250ms cubic-bezier(0.5, 0, 0.2, 1) 50ms;
}
</style>
95 changes: 95 additions & 0 deletions apps/frontend/src/components/ui/servers/BackupCreateModal.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
<template>
<NewModal ref="modal" header="Creating backup" @show="focusInput">
<div class="flex flex-col gap-2 md:w-[600px]">
<div class="font-semibold text-contrast">Name</div>
<input
ref="input"
v-model="backupName"
type="text"
class="bg-bg-input w-full rounded-lg p-4"
placeholder="e.g. Before 1.21"
maxlength="64"
/>
<div class="flex items-center gap-2">
<InfoIcon class="hidden sm:block" />
<span class="text-sm text-secondary">
If left empty, the backup name will default to
<span class="font-semibold"> Backup #{{ newBackupAmount }}</span>
</span>
</div>
</div>
<div class="mb-1 mt-4 flex justify-start gap-4">
<ButtonStyled color="brand">
<button :disabled="isCreating" @click="createBackup">
<PlusIcon />
Create backup
</button>
</ButtonStyled>
<ButtonStyled>
<button @click="hideModal">
<XIcon />
Cancel
</button>
</ButtonStyled>
</div>
</NewModal>
</template>

<script setup lang="ts">
import { ref, nextTick } from "vue";
import { ButtonStyled, NewModal } from "@modrinth/ui";
import { PlusIcon, XIcon, InfoIcon } from "@modrinth/assets";
import type { Server } from "~/composables/pyroServers";

const props = defineProps<{
server: Server<["general", "mods", "backups", "network", "startup", "ws", "fs"]>;
}>();

const emit = defineEmits(["backupCreated"]);

const modal = ref<InstanceType<typeof NewModal>>();
const input = ref<HTMLInputElement>();
const isCreating = ref(false);
const backupError = ref<string | null>(null);
const backupName = ref("");
const newBackupAmount = computed(() =>
props.server.backups?.data?.length === undefined ? 1 : props.server.backups?.data?.length + 1,
);

const focusInput = () => {
nextTick(() => {
setTimeout(() => {
input.value?.focus();
}, 100);
});
};

const hideModal = () => {
modal.value?.hide();
backupName.value = "";
};

const createBackup = async () => {
if (!backupName.value.trim()) {
backupName.value = `Backup #${newBackupAmount.value}`;
}

isCreating.value = true;
try {
await props.server.backups?.create(backupName.value);
await props.server.refresh();
hideModal();
emit("backupCreated", { success: true, message: "Backup created successfully" });
} catch (error) {
backupError.value = error instanceof Error ? error.message : String(error);
emit("backupCreated", { success: false, message: backupError.value });
} finally {
isCreating.value = false;
}
};

defineExpose({
show: () => modal.value?.show(),
hide: hideModal,
});
</script>
Loading
Loading