From 43989e53ba4ac471e589258cb5dbff340a9f0853 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C5=ABdolfs=20O=C5=A1i=C5=86=C5=A1?= Date: Thu, 22 May 2025 13:52:20 +0200 Subject: [PATCH] Show patch id as well as revision id in breadcrumbs --- src/views/repo/BreadcrumbCopyButton.svelte | 30 +++++++++++++++++++--- src/views/repo/Patch.svelte | 23 ++++++++--------- 2 files changed, 36 insertions(+), 17 deletions(-) diff --git a/src/views/repo/BreadcrumbCopyButton.svelte b/src/views/repo/BreadcrumbCopyButton.svelte index 62a0ebe68..ac3c6e831 100644 --- a/src/views/repo/BreadcrumbCopyButton.svelte +++ b/src/views/repo/BreadcrumbCopyButton.svelte @@ -4,18 +4,22 @@ import { writeToClipboard } from "@app/lib/invoke"; import debounce from "lodash/debounce"; - import Icon from "@app/components/Icon.svelte"; - import Popover, { closeFocused } from "@app/components/Popover.svelte"; - import DropdownListItem from "@app/components/DropdownListItem.svelte"; + import { closeFocused } from "@app/components/Popover.svelte"; + import Border from "@app/components/Border.svelte"; + import DropdownListItem from "@app/components/DropdownListItem.svelte"; + import Icon from "@app/components/Icon.svelte"; + import Popover from "@app/components/Popover.svelte"; interface Props { icon: ComponentProps["name"]; id: string; url: string; + id2?: string; + icon2?: ComponentProps["name"]; } - const { icon, id, url }: Props = $props(); + const { icon, icon2, id, id2, url }: Props = $props(); let popoverExpanded: boolean = $state(false); let triggerIcon: ComponentProps["name"] = $state("copy"); @@ -54,6 +58,24 @@ + {#if id2 && icon2} + { + await writeToClipboard(id2); + triggerIcon = "checkmark"; + restoreIcon(); + closeFocused(); + }} + styleWidth="100%"> +
+ + {id2} + +
+
+ {/if} + icon={patch.state.status === "open" + ? "patch" + : `patch-${patch.state.status}`} + id={patch.id} + icon2={revisions.length > 1 ? "revision" : undefined} + id2={revisions.length > 1 && + selectedRevision.id !== revisions[0].id && + tab !== "patch" + ? selectedRevision.id + : undefined} /> {/if} {/snippet}