From c0b1e41aef4d087bb3105a645db230a3d6af6aa8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C5=ABdolfs=20O=C5=A1i=C5=86=C5=A1?= Date: Mon, 27 Apr 2026 17:53:21 +0200 Subject: [PATCH] Extract Topbar component Co-authored-by: Julien Donck --- src/components/Topbar.svelte | 27 +++++++++++++++++ src/views/repo/Issue.svelte | 51 +++++++++++++++---------------- src/views/repo/Issues.svelte | 14 ++------- src/views/repo/Patch.svelte | 57 +++++++++++++++++------------------ src/views/repo/Patches.svelte | 14 ++------- 5 files changed, 84 insertions(+), 79 deletions(-) create mode 100644 src/components/Topbar.svelte diff --git a/src/components/Topbar.svelte b/src/components/Topbar.svelte new file mode 100644 index 000000000..ca7a31c53 --- /dev/null +++ b/src/components/Topbar.svelte @@ -0,0 +1,27 @@ + + + + +
+ {@render children()} +
diff --git a/src/views/repo/Issue.svelte b/src/views/repo/Issue.svelte index d43949770..f4c4fee17 100644 --- a/src/views/repo/Issue.svelte +++ b/src/views/repo/Issue.svelte @@ -36,6 +36,7 @@ import IssueTimeline from "@app/components/IssueTimeline.svelte"; import LabelInput from "@app/components/LabelInput.svelte"; import ScrollArea from "@app/components/ScrollArea.svelte"; + import Topbar from "@app/components/Topbar.svelte"; import CreateIssueModal from "@app/modals/CreateIssue.svelte"; import Layout from "./Layout.svelte"; @@ -265,18 +266,12 @@ flex-direction: column; height: 100%; } - .topbar { + .breadcrumb { display: flex; align-items: center; - padding: 0 1rem; - height: 2.5rem; - flex-shrink: 0; gap: 0.375rem; - border-bottom: 1px solid var(--color-border-subtle); - font: var(--txt-body-m-regular); - color: var(--color-text-secondary); } - .topbar-link { + .breadcrumb-link { cursor: pointer; background: none; border: none; @@ -284,7 +279,7 @@ font: var(--txt-body-m-regular); color: var(--color-text-secondary); } - .topbar-link:hover { + .breadcrumb-link:hover { color: var(--color-text-primary); } .content { @@ -345,23 +340,25 @@
-
- - - - - + +
-
+
diff --git a/src/views/repo/Issues.svelte b/src/views/repo/Issues.svelte index 7c6a25251..e8702e15c 100644 --- a/src/views/repo/Issues.svelte +++ b/src/views/repo/Issues.svelte @@ -23,6 +23,7 @@ import Icon from "@app/components/Icon.svelte"; import IssueTeaser from "@app/components/IssueTeaser.svelte"; import ScrollArea from "@app/components/ScrollArea.svelte"; + import Topbar from "@app/components/Topbar.svelte"; import CreateIssueModal from "@app/modals/CreateIssue.svelte"; import Layout from "./Layout.svelte"; @@ -105,15 +106,6 @@ flex-direction: column; height: 100%; } - .topbar { - display: flex; - align-items: center; - gap: 0.75rem; - padding: 0 1rem; - height: 2.75rem; - flex-shrink: 0; - border-bottom: 1px solid var(--color-border-subtle); - } .topbar-title { font: var(--txt-body-m-semibold); color: var(--color-text-secondary); @@ -156,7 +148,7 @@
-
+ Issues -
+ {#if issueCountMismatch(status)} diff --git a/src/views/repo/Patch.svelte b/src/views/repo/Patch.svelte index 777f782ef..8e5d91598 100644 --- a/src/views/repo/Patch.svelte +++ b/src/views/repo/Patch.svelte @@ -34,6 +34,7 @@ import RevisionComponent from "@app/components/Revision.svelte"; import Revisions from "@app/components/Revisions.svelte"; import ScrollArea from "@app/components/ScrollArea.svelte"; + import Topbar from "@app/components/Topbar.svelte"; import Layout from "./Layout.svelte"; @@ -182,18 +183,12 @@ flex-direction: column; height: 100%; } - .topbar { + .breadcrumb { display: flex; align-items: center; - padding: 0 1rem; - height: 2.5rem; - flex-shrink: 0; gap: 0.375rem; - border-bottom: 1px solid var(--color-border-subtle); - font: var(--txt-body-m-regular); - color: var(--color-text-secondary); } - .topbar-link { + .breadcrumb-link { cursor: pointer; background: none; border: none; @@ -201,7 +196,7 @@ font: var(--txt-body-m-regular); color: var(--color-text-secondary); } - .topbar-link:hover { + .breadcrumb-link:hover { color: var(--color-text-primary); } .content { @@ -260,30 +255,32 @@ }} /> {:else}