Skip to content

Commit 38c13a0

Browse files
committed
fix: remove unused RemoteQuery import and refactor searchUser function calls
1 parent a4b7cda commit 38c13a0

3 files changed

Lines changed: 13 additions & 24 deletions

File tree

src/lib/components/misc/CommandPalette.svelte

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import CircleAlert from "@lucide/svelte/icons/circle-alert";
66
import LoaderCircle from "@lucide/svelte/icons/loader-circle";
77
import Search from "@lucide/svelte/icons/search";
8-
import { isHttpError, type RemoteQuery } from "@sveltejs/kit";
8+
import { isHttpError } from "@sveltejs/kit";
99
import { Button, Command, computeCommandScore, Dialog } from "bits-ui";
1010
import { cubicOut } from "svelte/easing";
1111
import { fade } from "svelte/transition";
@@ -18,9 +18,10 @@
1818
let commandInput = $state<HTMLElement>(null!);
1919
let commandValue = $state<string | undefined>(null!);
2020
let searchQuery = $state<string>("");
21-
let searchUserRemoteFn = $state<RemoteQuery<never>>();
21+
let submittedSearchQuery = $state<string>("");
2222
2323
const searchQueryValidated = $derived(schema.safeParse({ query: searchQuery }));
24+
const searchUserRemoteFn = $derived(submittedSearchQuery ? searchUser({ username: submittedSearchQuery }) : undefined);
2425
2526
const preferences = getPreferences();
2627
const internalState = getInternalState();
@@ -37,14 +38,15 @@
3738
internalState.openCommand = false;
3839
commandValue = undefined;
3940
searchQuery = "";
41+
submittedSearchQuery = "";
4042
}
4143
4244
function handleKeydown(e: KeyboardEvent) {
4345
if (commandValue && commandValue !== "search") return;
4446
const k = e.key.toLowerCase();
4547
if (k === "enter" || k === "search") {
4648
e.preventDefault();
47-
searchUserRemoteFn = searchUser({ username: searchQuery });
49+
submittedSearchQuery = searchQuery;
4850
}
4951
}
5052
</script>
@@ -77,7 +79,7 @@
7779
type="button"
7880
class="flex aspect-square h-full items-center justify-center text-text"
7981
onclick={() => {
80-
searchUserRemoteFn = searchUser({ username: searchQuery });
82+
submittedSearchQuery = searchQuery;
8183
}}>
8284
{#if !searchQueryValidated.success && searchQuery.length > 0}
8385
<CircleAlert class="size-4" />
@@ -112,7 +114,7 @@
112114
class={cn("flex h-10 cursor-pointer items-center gap-2 rounded-lg px-3 py-2.5 text-sm outline-hidden select-none", preferences.performanceMode ? "data-selected:bg-background-lore" : "data-selected:bg-background-grey")}
113115
keywords={[searchQuery, "search", "find", "profile"]}
114116
onSelect={() => {
115-
searchUserRemoteFn = searchUser({ username: searchQuery });
117+
submittedSearchQuery = searchQuery;
116118
}}>
117119
{#if searchUserRemoteFn?.loading || loading}
118120
<LoaderCircle class="size-4 animate-spin" />

src/lib/layouts/stats/Stats.svelte

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,8 @@
22
import { getProfileContext } from "$ctx";
33
import { Notice } from "$lib/components/notices";
44
import { Stat } from "$lib/components/stats";
5-
import type { ModelsStats } from "$lib/shared/api/orval-generated";
65
import { getAdditionalStats } from "$lib/shared/api/skycrypt-api.remote";
76
import LoaderCircle from "@lucide/svelte/icons/loader-circle";
8-
import type { RemoteQuery } from "@sveltejs/kit";
97
import { Collapsible } from "bits-ui";
108
import { cubicOut } from "svelte/easing";
119
import { slide } from "svelte/transition";
@@ -15,23 +13,11 @@
1513
const profileUUID = $derived(profile?.uuid);
1614
const profileId = $derived(profile?.profile_id);
1715
18-
let stats = $state<RemoteQuery<ModelsStats>>();
19-
20-
$effect(() => {
21-
if (openState) {
22-
stats = getAdditionalStats({ uuid: profileUUID!, profileId: profileId! });
23-
}
24-
});
16+
const stats = $derived(openState && profileUUID && profileId ? getAdditionalStats({ uuid: profileUUID, profileId }) : undefined);
2517
</script>
2618

2719
<div class="stats flex flex-col">
28-
<Collapsible.Root
29-
bind:open={openState}
30-
onOpenChange={(open) => {
31-
if (open && !stats) {
32-
stats = getAdditionalStats({ uuid: profileUUID!, profileId: profileId! });
33-
}
34-
}}>
20+
<Collapsible.Root bind:open={openState}>
3521
{#key profile}
3622
<Collapsible.Content forceMount={true} class="columns-[12.5rem] *:motion-preset-focus *:motion-preset-slide-down *:motion-delay-[calc(sibling-index()*0.01s)]">
3723
{#snippet child({ props, open })}

src/routes/+page.svelte

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
import LoaderCircle from "@lucide/svelte/icons/loader-circle";
1212
import Server from "@lucide/svelte/icons/server";
1313
import Star from "@lucide/svelte/icons/star";
14-
import { isHttpError, type RemoteQuery } from "@sveltejs/kit";
14+
import { isHttpError } from "@sveltejs/kit";
1515
import { Button } from "bits-ui";
1616
import { onMount } from "svelte";
1717
import { Role } from "./enums";
@@ -25,7 +25,8 @@
2525
let searchQuery = $state<string>(null!);
2626
const searchQueryValidated = $derived(schema.safeParse({ query: searchQuery }));
2727
28-
let searchUserRemoteFn = $state<RemoteQuery<never>>();
28+
let searchUserArgs = $state<{ username: string }>();
29+
const searchUserRemoteFn = $derived(searchUserArgs ? searchUser(searchUserArgs) : undefined);
2930
3031
const iconMapper: Record<Role, typeof CodeXml | typeof Server | typeof GitPullRequestArrow | typeof Star | string> = {
3132
[Role.MAINTAINER]: CodeXml,
@@ -90,7 +91,7 @@
9091
<div class="flex flex-col gap-6">
9192
<label for="search" class="m-1 w-full text-center font-semibold">Show SkyBlock stats for</label>
9293
<!-- svelte-ignore a11y_autofocus -->
93-
<input id="search" type="search" required autofocus placeholder="Enter username" class="relative h-16 grow bg-text/10 text-center font-normal text-text placeholder:text-text/80 focus-visible:outline-hidden" bind:value={searchQuery} onchange={() => (searchUserRemoteFn = searchUser({ username: searchQuery }))} />
94+
<input id="search" type="search" required autofocus placeholder="Enter username" class="relative h-16 grow bg-text/10 text-center font-normal text-text placeholder:text-text/80 focus-visible:outline-hidden" bind:value={searchQuery} onchange={() => (searchUserArgs = { username: searchQuery })} />
9495
</div>
9596

9697
{#if !searchQueryValidated.success && searchQuery != null && searchQuery.length > 0}

0 commit comments

Comments
 (0)