Files
radicle-desktop/src/components/NodeStatusButton.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

66 lines
1.9 KiB
Svelte

<script lang="ts">
import { nodeRunning } from "@app/lib/events";
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";
let popoverExpanded: boolean = $state(false);
</script>
<Popover
popoverPadding="0"
placement="top-start"
bind:expanded={popoverExpanded}>
{#snippet toggle(onclick)}
<Button
variant="naked"
{onclick}
active={popoverExpanded}
styleWidth="100%"
styleJustifyContent="flex-start">
{#if $nodeRunning}
<span style:color="var(--color-text-tertiary)">
<Icon name="online" />
</span>
Online
{:else}
<span style:color="var(--color-text-tertiary)">
<Icon name="offline" />
</span>
Offline
{/if}
</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:padding="1rem"
style:width="22rem"
style:flex-direction="column">
<div class="txt-body-m-regular" style:line-height="1.625rem">
{#if $nodeRunning}
Your node is up and running, your changes will be synced
automatically.
{:else}
Your node is not running, changes you make are safe but won't be
announced.
<div style:margin-top="1rem">
You can start your node with:
<div style:margin-top="0.5rem">
<Command styleWidth="fit-content" command="rad node start" />
</div>
</div>
{/if}
</div>
</div>
{/snippet}
</Popover>