Skip to content

Commit 24aea4e

Browse files
committed
fix: loader hydration issues
1 parent 2ae9d09 commit 24aea4e

File tree

4 files changed

+63
-23
lines changed

4 files changed

+63
-23
lines changed

apps/frontend/src/components/ui/servers/ServerSidebar.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ const props = defineProps<{
3535
server: Server<["general", "mods", "backups", "network", "startup", "ws", "fs"]>;
3636
}>();
3737
38-
const onReinstall = () => {
39-
emit("reinstall");
38+
const onReinstall = (...args: any[]) => {
39+
emit("reinstall", ...args);
4040
};
4141
</script>

apps/frontend/src/composables/pyroServers.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -272,7 +272,6 @@ const reinstallServer = async (
272272
versionId?: string,
273273
loaderVersionId?: string,
274274
) => {
275-
// launcher-meta.modrinth.com/{forge,neo,minecraft,quilt,fabric}/v0/manifest.json
276275
try {
277276
if (loader) {
278277
if (projectId.toLowerCase() === "neoforge") {

apps/frontend/src/pages/servers/manage/[id].vue

Lines changed: 34 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -232,8 +232,6 @@ const handleWebSocketMessage = (data: WSEvent) => {
232232
}
233233
});
234234
235-
console.log(players.value);
236-
237235
if (isInitialListCommand.value) {
238236
log = log.filter((line) => {
239237
if (line.includes("There are") && line.includes("players online")) {
@@ -270,11 +268,20 @@ const handleWebSocketMessage = (data: WSEvent) => {
270268
}
271269
};
272270
271+
const newLoader = ref<string | null>(null);
272+
const newLoaderVersion = ref<string | null>(null);
273+
const newMCVersion = ref<string | null>(null);
274+
273275
const handleInstallationResult = (data: WSInstallationResultEvent) => {
274276
switch (data.result) {
275277
case "ok":
276278
if (!serverData.value) break;
277279
serverData.value.status = "available";
280+
if (server.general) {
281+
if (newLoader.value) server.general.loader = newLoader.value;
282+
if (newLoaderVersion.value) server.general.loader_version = newLoaderVersion.value;
283+
if (newMCVersion.value) server.general.mc_version = newMCVersion.value;
284+
}
278285
break;
279286
case "err":
280287
console.log("failed to install");
@@ -286,10 +293,33 @@ const handleInstallationResult = (data: WSInstallationResultEvent) => {
286293
}
287294
};
288295
289-
const onReinstall = () => {
290-
console.log("QAHHHHHHHHHHHHHHH");
296+
const onReinstall = (potentialArgs: any) => {
291297
if (!serverData.value) return;
292298
serverData.value.status = "installing";
299+
// serverData.value.loader = potentialArgs.loader;
300+
// serverData.value.loader_version = potentialArgs.lVersion;
301+
// serverData.value.mc_version = potentialArgs.mVersion;
302+
// if (potentialArgs?.loader) {
303+
// console.log("setting loader to", potentialArgs.loader);
304+
// serverData.value.loader = potentialArgs.loader;
305+
// }
306+
// if (potentialArgs?.lVersion) {
307+
// serverData.value.loader_version = potentialArgs.lVersion;
308+
// }
309+
// if (potentialArgs?.mVersion) {
310+
// serverData.value.mc_version = potentialArgs.mVersion;
311+
// }
312+
if (potentialArgs?.loader) {
313+
newLoader.value = potentialArgs.loader;
314+
}
315+
if (potentialArgs?.lVersion) {
316+
newLoaderVersion.value = potentialArgs.lVersion;
317+
}
318+
if (potentialArgs?.mVersion) {
319+
newMCVersion.value = potentialArgs.mVersion;
320+
}
321+
322+
console.log(serverData.value);
293323
};
294324
295325
const updateStats = (currentStats: Stats["current"]) => {

apps/frontend/src/pages/servers/manage/[id]/options/loader.vue

Lines changed: 27 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,11 @@
4949
</Button>
5050
<Button
5151
color="primary"
52-
:disabled="!selectedMCVersion || !selectedLoaderVersion"
52+
:disabled="
53+
selectedLoader.toLowerCase() === 'vanilla'
54+
? !selectedMCVersion
55+
: !selectedMCVersion || !selectedLoaderVersion
56+
"
5357
@click="reinstallLoader(selectedLoader)"
5458
>
5559
Reinstall
@@ -237,25 +241,25 @@
237241
<div class="flex items-center gap-2">
238242
<div
239243
class="rounded-xl bg-button-bg p-2"
240-
:class="data.loader === 'NeoForge' ? '[&&]:bg-bg-green' : ''"
244+
:class="data.loader?.toLowerCase() === 'neoforge' ? '[&&]:bg-bg-green' : ''"
241245
>
242246
<UiServersLoaderIcon
243247
loader="NeoForge"
244248
class="[&&]:size-10"
245-
:class="data.loader === 'NeoForge' ? 'text-brand' : ''"
249+
:class="data.loader?.toLowerCase() === 'neoforge' ? 'text-brand' : ''"
246250
/>
247251
</div>
248252
<h1 class="m-0 text-xl font-extrabold leading-none text-contrast">NeoForge</h1>
249253
<span
250-
v-if="data.loader === 'NeoForge'"
254+
v-if="data.loader?.toLowerCase() === 'neoforge'"
251255
class="rounded-full bg-bg-green p-1 px-2 text-sm font-semibold text-brand"
252256
>
253257
Current
254258
</span>
255259
</div>
256260

257261
<Button @click="selectLoader('NeoForge')">
258-
{{ data.loader === "NeoForge" ? "Reinstall" : "Install" }}
262+
{{ data.loader?.toLowerCase() === "neoforge" ? "Reinstall" : "Install" }}
259263
<ChevronRightIcon />
260264
</Button>
261265
</div>
@@ -280,7 +284,7 @@ const props = defineProps<{
280284
}>();
281285
282286
const emit = defineEmits<{
283-
reinstall: [];
287+
reinstall: [any?];
284288
}>();
285289
286290
const tags = useTags();
@@ -351,6 +355,16 @@ const selectedLoaderVersions = computed(() => {
351355
});
352356
353357
const data = computed(() => props.server.general);
358+
watch(
359+
() => data.value?.loader,
360+
() => {
361+
console.log("Loader:", data.value?.loader);
362+
},
363+
{
364+
deep: true,
365+
immediate: true,
366+
},
367+
);
354368
const { data: versions } = data?.value?.upstream
355369
? await useLazyAsyncData(
356370
`content-loader-versions`,
@@ -398,8 +412,6 @@ const reinstallCurrent = async () => {
398412
}
399413
const resolvedVersionIds = versionIds.value;
400414
const versionId = resolvedVersionIds.find((entry: any) => entry[version.value])?.[version.value];
401-
// get the [id] url param
402-
console.log(projectId, versionId);
403415
await props.server.general?.reinstall(serverId, false, projectId, versionId);
404416
};
405417
@@ -411,19 +423,18 @@ const selectLoader = (loader: string) => {
411423
const reinstallLoader = async (loader: string) => {
412424
await props.server.general?.reinstall(
413425
serverId,
414-
// if the loader is vanilla, we don't need to reinstall the loader
415-
loader !== "Vanilla" && typeof loader === "string",
426+
true,
416427
loader,
417428
selectedMCVersion.value,
418-
selectedLoaderVersion.value,
429+
loader === "Vanilla" ? "" : selectedLoaderVersion.value,
419430
);
420-
emit("reinstall");
431+
emit("reinstall", {
432+
loader,
433+
lVersion: selectedLoaderVersion.value,
434+
mVersion: selectedMCVersion.value,
435+
});
421436
await nextTick();
422437
window.scrollTo(0, 0);
423-
if (data.value) {
424-
data.value.loader = loader;
425-
data.value.loader_version = selectedLoaderVersion.value;
426-
}
427438
};
428439
429440
const reinstallNew = async (project: any, versionNumber: string) => {

0 commit comments

Comments
 (0)