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

34 lines
935 B
Svelte

<script lang="ts">
import type { Tree } from "@bindings/source/Tree";
import FileTreeFile from "@app/components/FileTreeFile.svelte";
import FileTreeFolder from "@app/components/FileTreeFolder.svelte";
interface Props {
tree: Tree;
currentPath: string;
fetchTree: (path: string) => Promise<Tree>;
fetchBlob: (path: string) => Promise<void>;
}
const { currentPath, tree, fetchTree, fetchBlob }: Props = $props();
</script>
<div style:display="flex" style:flex-direction="column" style:gap="0.25rem">
{#each tree.entries as entry (entry.name)}
{#if entry.kind === "tree"}
<FileTreeFolder
name={entry.name}
prefix={`${entry.path}/`}
{currentPath}
{fetchTree}
{fetchBlob} />
{:else}
<FileTreeFile
name={entry.name}
fetchBlob={() => fetchBlob(entry.path)}
active={entry.path === currentPath} />
{/if}
{/each}
</div>