From 9ff061793db600d71e0a02b74caa7426fe2d98cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C5=ABdolfs=20O=C5=A1i=C5=86=C5=A1?= Date: Thu, 14 Nov 2024 09:40:02 +0100 Subject: [PATCH] Implement loading on scroll for patch second column --- src/components/PatchTeaser.svelte | 33 ++++++++++---------- src/components/Sidebar.svelte | 1 + src/views/repo/Layout.svelte | 50 ++++++++++++++++++++++--------- src/views/repo/Patch.svelte | 49 +++++++++++++++++++++++++++--- src/views/repo/Patches.svelte | 4 +-- src/views/repo/router.ts | 4 +-- 6 files changed, 103 insertions(+), 38 deletions(-) diff --git a/src/components/PatchTeaser.svelte b/src/components/PatchTeaser.svelte index 9ca7e7263..386063e51 100644 --- a/src/components/PatchTeaser.svelte +++ b/src/components/PatchTeaser.svelte @@ -9,33 +9,29 @@ patchStatusColor, } from "@app/lib/utils"; import { invoke } from "@app/lib/invoke"; - import { onMount } from "svelte"; import { push } from "@app/lib/router"; import DiffStatBadge from "./DiffStatBadge.svelte"; import Icon from "./Icon.svelte"; + import Id from "./Id.svelte"; import InlineTitle from "./InlineTitle.svelte"; import NodeId from "./NodeId.svelte"; - import Id from "./Id.svelte"; - - let stats: Stats | undefined = $state(undefined); - - onMount(async () => { - stats = await invoke("diff_stats", { - rid, - base: patch.base, - head: patch.head, - }); - }); interface Props { patch: Patch; rid: string; selected?: boolean; compact?: boolean; + loadPatch?: (rid: string, patchId: string) => void; } - const { patch, rid, selected = false, compact = false }: Props = $props(); + const { + patch, + rid, + selected = false, + compact = false, + loadPatch, + }: Props = $props(); - + {#snippet breadcrumbs()}
- {#each patches as p} + {#each items as p} diff --git a/src/views/repo/Patches.svelte b/src/views/repo/Patches.svelte index 8c8935dfb..1aa035a79 100644 --- a/src/views/repo/Patches.svelte +++ b/src/views/repo/Patches.svelte @@ -36,7 +36,7 @@ more = patches.more; }); - async function loadMore() { + async function loadMoreContent() { if (more) { const p = await invoke>("list_patches", { rid: repo.rid, @@ -71,7 +71,7 @@ } - + {#snippet breadcrumbs()} ; revisions: Revision[]; }; } @@ -131,7 +131,7 @@ export async function loadPatch( return { resource: "repo.patch", - params: { repo, config, patch, patches: patches.content, revisions }, + params: { repo, config, patch, patches, revisions }, }; }