mirror of
https://seed.radicle.dev/rad:z4D5UCArafTzTQpDZNQRuqswh3ury.git
synced 2026-11-10 05:40:38 +08:00
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
34 lines
935 B
Svelte
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>
|