Files
radicle-desktop/src/components/CheckoutPatchButton.svelte
T
Rūdolfs Ošiņš 010cac0377 Redesign app with new UI kit
Redesign the entire app with a new UI kit. Typography, colors, icons,
avatars, and border radii have all been updated for a more polished,
consistent appearance that matches our other products like
radicle-explorer.

- Replace blockies-based avatars with a new DID-based avatar system
- Move Settings and Create Issue into fullscreen modals
- Change the default theme to follow the system theme
- Remove window decorations on macOS for a cleaner, more native feel
- Update the app icon
- Fix popovers and tooltips

Navigation:

- Rewrite app navigation and layouts
- Add a sidebar that gives you access to all your repos
- Change the startup screen to open directly to the notification inbox
- Add a getting started guide shown to new users on first launch

Settings:

- Add a setting to disable the notification badge
- Add a code font setting

Bug fixes:

- Fix reactions and edits incorrectly targeting the root comment
  instead of the intended reply
- Restrict issue/patch state, labels and assignees to delegates only
2026-03-20 17:48:38 -06:00

57 lines
1.7 KiB
Svelte

<script lang="ts">
import { formatOid } from "@app/lib/utils";
import Button from "@app/components/Button.svelte";
import Command from "@app/components/Command.svelte";
import Icon from "@app/components/Icon.svelte";
import Popover from "@app/components/Popover.svelte";
interface Props {
patchId: string;
selectedRevisionId: string;
tab: "patch" | "revisions" | "timeline";
}
const { patchId, selectedRevisionId, tab }: Props = $props();
const checkoutCommand = $derived.by(() => {
if (tab === "revisions" && selectedRevisionId !== patchId) {
return `rad patch checkout ${formatOid(patchId)} --revision ${formatOid(selectedRevisionId)}`;
} else {
return `rad patch checkout ${formatOid(patchId)}`;
}
});
let popoverExpanded: boolean = $state(false);
</script>
<Popover placement="bottom-end" bind:expanded={popoverExpanded}>
{#snippet toggle(onclick)}
<Button
variant="naked"
title="Checkout patch"
{onclick}
active={popoverExpanded}>
<Icon name="checkout" />
<span class="global-hide-on-medium-desktop-down">Checkout patch</span>
</Button>
{/snippet}
{#snippet popover()}
<div
style:border="1px solid var(--color-border-subtle)"
style:border-radius="var(--border-radius-sm)"
style:display="flex"
style:gap="0.5rem"
style:align-items="flex-start"
style:background-color="var(--color-surface-canvas)"
style:flex-direction="column"
style:padding="1rem"
style:width="max-content">
<span class="txt-body-m-regular">
To checkout this patch in your working copy, run:
</span>
<Command command={checkoutCommand} styleWidth="100%" />
</div>
{/snippet}
</Popover>