Skip to content

Commit d867954

Browse files
committed
refactor(lists): extract user list summary into a shared store
relocates the user list summary fetching logic from a route-specific file to a shared hook in the lists section. updates the pinned list component and the list page to use this centralized hook for improved reusability and consistency.
1 parent 1774bb5 commit d867954

3 files changed

Lines changed: 13 additions & 9 deletions

File tree

projects/client/src/lib/sections/lists/user/PinnedList.svelte

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,27 @@
11
<script lang="ts">
22
import type { DiscoverMode } from "$lib/features/discover/models/DiscoverMode.ts";
3-
import { useQuery } from "$lib/features/query/useQuery.ts";
4-
import { userListSummaryQuery } from "$lib/requests/queries/users/userListSummaryQuery.ts";
53
import UserList from "./UserList.svelte";
4+
import { useUserListSummary } from "./useUserListSummary.ts";
65
76
type PinnedListProps = {
87
userId: string;
98
listId: string;
109
mode?: DiscoverMode;
1110
};
1211
13-
const { userId, listId, mode }: PinnedListProps = $props();
12+
const { userId, listId, mode = "media" }: PinnedListProps = $props();
1413
15-
const query = useQuery(userListSummaryQuery({ userId, listId }));
14+
const { list, isLoading } = $derived(
15+
useUserListSummary({
16+
userId,
17+
listId,
18+
}),
19+
);
1620
</script>
1721

18-
{#if $query && $query.data}
22+
{#if !$isLoading && $list}
1923
<div class="trakt-pinned-list">
20-
<UserList list={$query.data} type={mode} />
24+
<UserList list={$list} type={mode} />
2125
</div>
2226
{/if}
2327

projects/client/src/routes/users/[user]/lists/[list]/userListSummary.ts renamed to projects/client/src/lib/sections/lists/user/useUserListSummary.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ type UseUserListSummaryProps = {
99
listId: string;
1010
};
1111

12-
export function userListSummary(props: UseUserListSummaryProps) {
12+
export function useUserListSummary(props: UseUserListSummaryProps) {
1313
const query = useQuery(userListSummaryQuery(props));
1414

1515
return {

projects/client/src/routes/users/[user]/lists/[list]/+page.svelte

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,16 @@
33
import TraktPage from "$lib/sections/layout/TraktPage.svelte";
44
import TraktPageCoverSetter from "$lib/sections/layout/TraktPageCoverSetter.svelte";
55
import UserListPaginatedList from "$lib/sections/lists/user/UserListPaginatedList.svelte";
6+
import { useUserListSummary } from "$lib/sections/lists/user/useUserListSummary.ts";
67
import NavbarStateSetter from "$lib/sections/navbar/NavbarStateSetter.svelte";
78
import { DEFAULT_SHARE_COVER } from "$lib/utils/constants";
89
import type { PageProps } from "./$types";
910
import { mapToMediaType } from "./_internal/mapToMediaType";
10-
import { userListSummary } from "./userListSummary.ts";
1111
1212
const { params }: PageProps = $props();
1313
1414
const { list } = $derived(
15-
userListSummary({
15+
useUserListSummary({
1616
userId: params.user,
1717
listId: params.list,
1818
}),

0 commit comments

Comments
 (0)