From 088cbc5e18d105527edae024e6d2bf09d5ab483e Mon Sep 17 00:00:00 2001 From: Christoph Brandau Date: Fri, 11 Sep 2026 08:55:38 +0200 Subject: [PATCH] refactor(clone-dialog): generalize repository grouping and support gitea Generalize the repository grouping logic so grouping is driven by a single derived flag and not tied to a single provider. Replace the Azure-specific group variable with a generic repositoryGroups value and use a shared usesRepositoryGroups switch so grouping can be enabled for other providers. - Add usesRepositoryGroups derived flag to centralize grouping logic - Replace azure-only grouping with repositoryGroups and enable Gitea grouping --- src/lib/components/CloneRepositoryDialog.svelte | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/lib/components/CloneRepositoryDialog.svelte b/src/lib/components/CloneRepositoryDialog.svelte index 2473ff6..d1178c4 100644 --- a/src/lib/components/CloneRepositoryDialog.svelte +++ b/src/lib/components/CloneRepositoryDialog.svelte @@ -64,8 +64,9 @@ if (!query) return activeRepositories; return activeRepositories.filter((repository) => `${repository.fullName} ${repository.description}`.toLocaleLowerCase().includes(query)); }); - const azureRepositoryGroups = $derived.by(() => { - if (activeSource?.provider !== "azure-devops") return []; + const usesRepositoryGroups = $derived(activeSource?.provider === "azure-devops" || activeSource?.provider === "gitea"); + const repositoryGroups = $derived.by(() => { + if (!usesRepositoryGroups) return []; const groups = new Map(); for (const repository of filteredRepositories) { const separator = repository.fullName.indexOf("/"); @@ -390,8 +391,8 @@
{isGerman ? "Repositories konnten nicht geladen werden" : "Could not load repositories"}{repositoryError}
{:else if filteredRepositories.length === 0}
{repositorySearch ? (isGerman ? "Keine passenden Repositories." : "No matching repositories.") : (isGerman ? "Keine Repositories gefunden." : "No repositories found.")}
- {:else if activeSource?.provider === "azure-devops"} - {#each azureRepositoryGroups as group (group.project)} + {:else if usesRepositoryGroups} + {#each repositoryGroups as group (group.project)}
{group.project}{group.repositories.length}
{#each group.repositories as repository (repository.id)}