Skip to content

Commit 3294a10

Browse files
committed
cleanup
1 parent b85a833 commit 3294a10

File tree

7 files changed

+11
-131
lines changed

7 files changed

+11
-131
lines changed

packages/svelte-file-tree/src/lib/components/Tree.svelte

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -759,15 +759,6 @@
759759
expandedIds.add(child.id);
760760
}
761761
}
762-
763-
// After the items are expanded, the tree's height changes,
764-
// causing this item to move down. Scroll down to preserve
765-
// the scroll position relative to this item.
766-
const rectBefore = event.currentTarget.getBoundingClientRect();
767-
tick().then(() => {
768-
const rectAfter = event.currentTarget.getBoundingClientRect();
769-
window.scrollBy(0, rectAfter.top - rectBefore.top);
770-
});
771762
break;
772763
}
773764
case "Delete": {
Lines changed: 3 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,19 @@
11
<script lang="ts">
2-
import { Tree } from "svelte-file-tree";
2+
import { Tree, type FileTree, type FolderNode } from "svelte-file-tree";
33
import { flip } from "svelte/animate";
44
import { SvelteSet } from "svelte/reactivity";
5-
import { FileNode, FolderNode, type FileTree, type FileTreeNode } from "$lib/tree.svelte.js";
65
import TreeItem from "./TreeItem.svelte";
76
import type { TreeProps } from "./types.js";
87
98
const { tree }: TreeProps = $props();
109
1110
const expandedIds = new SvelteSet<string>();
1211
let dropDestination: FolderNode | FileTree | undefined = $state.raw();
13-
14-
function copyNode(node: FileTreeNode): FileTreeNode {
15-
switch (node.type) {
16-
case "file": {
17-
return new FileNode({
18-
id: crypto.randomUUID(),
19-
name: node.name,
20-
size: node.size,
21-
});
22-
}
23-
case "folder": {
24-
return new FolderNode({
25-
id: crypto.randomUUID(),
26-
name: node.name,
27-
children: node.children.map(copyNode),
28-
});
29-
}
30-
}
31-
}
32-
33-
const TypedTree = Tree<FileNode, FolderNode, FileTree>;
3412
</script>
3513

36-
<TypedTree
14+
<Tree
3715
{tree}
3816
{expandedIds}
39-
{copyNode}
4017
onChildrenChange={(args) => {
4118
args.children.sort((a, b) => a.name.localeCompare(b.name));
4219
}}
@@ -60,4 +37,4 @@
6037
</div>
6138
{/each}
6239
{/snippet}
63-
</TypedTree>
40+
</Tree>

sites/preview/src/lib/components/TreeItem.svelte

Lines changed: 6 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,14 @@
1-
<script lang="ts" module>
1+
<script lang="ts">
22
import { ChevronDownIcon, FileIcon, FolderIcon, FolderOpenIcon } from "@lucide/svelte";
33
import { TreeItem } from "svelte-file-tree";
4-
import type { FileNode, FolderNode } from "$lib/tree.svelte.js";
54
import type { TreeItemProps } from "./types.js";
65
7-
const sizeFormatter = new Intl.NumberFormat(undefined, {
8-
style: "decimal",
9-
maximumFractionDigits: 2,
10-
});
11-
12-
const sizeUnits = ["B", "KB", "MB", "GB", "TB"];
13-
14-
function formatSize(size: number) {
15-
let unit = 0;
16-
while (size >= 1024 && unit < sizeUnits.length - 1) {
17-
size /= 1024;
18-
unit++;
19-
}
20-
return `${sizeFormatter.format(size)} ${sizeUnits[unit]}`;
21-
}
22-
</script>
23-
24-
<script lang="ts">
256
const { item, dropDestination, onExpand, onCollapse }: TreeItemProps = $props();
267
278
let dragged = $state.raw(false);
28-
29-
const TypedTreeItem = TreeItem<FileNode, FolderNode>;
309
</script>
3110

32-
<TypedTreeItem
11+
<TreeItem
3312
{item}
3413
class={[
3514
"relative flex items-center p-3 hover:bg-neutral-200 focus:outline-2 focus:-outline-offset-2 focus:outline-current active:bg-neutral-300 aria-selected:bg-blue-200 aria-selected:text-blue-900 aria-selected:active:bg-blue-300",
@@ -59,7 +38,7 @@
5938
},
6039
]}
6140
onclick={(event) => {
62-
event.preventDefault();
41+
event.stopPropagation();
6342

6443
if (item.expanded) {
6544
onCollapse();
@@ -72,7 +51,7 @@
7251
<ChevronDownIcon role="presentation" size={20} />
7352
</button>
7453

75-
<div class="ps-1 pe-2">
54+
<div class="ps-1">
7655
{#if item.node.type === "file"}
7756
<FileIcon role="presentation" />
7857
{:else if item.expanded}
@@ -82,5 +61,5 @@
8261
{/if}
8362
</div>
8463

85-
<span>{item.node.name}</span>
86-
</TypedTreeItem>
64+
<div class="grow px-2">{item.node.name}</div>
65+
</TreeItem>

sites/preview/src/lib/components/types.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
import type { TreeItemState } from "svelte-file-tree";
2-
import type { FileNode, FileTree, FolderNode } from "$lib/tree.svelte";
1+
import type { FileNode, FileTree, FolderNode, TreeItemState } from "svelte-file-tree";
32

43
export interface TreeProps {
54
tree: FileTree;

sites/preview/src/lib/tree.svelte.ts

Lines changed: 0 additions & 34 deletions
This file was deleted.

sites/preview/src/routes/+page.svelte

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<script lang="ts">
22
import Tree from "$lib/components/Tree.svelte";
3-
import { FileNode, FileTree, FolderNode, type FileTreeNode } from "$lib/tree.svelte.js";
3+
import { FileNode, FileTree, FolderNode, type FileTreeNode } from "svelte-file-tree";
44
import { files } from "./files.js";
55
66
const tree = new FileTree(
@@ -16,7 +16,6 @@
1616
return new FileNode({
1717
id,
1818
name: file.name,
19-
size: file.size,
2019
});
2120
}
2221
}),

sites/preview/src/routes/files.ts

Lines changed: 0 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
export type FileData = {
22
name: string;
3-
size: number;
43
};
54

65
export type FolderData = {
@@ -14,27 +13,21 @@ export const files: Array<FileData | FolderData> = [
1413
children: [
1514
{
1615
name: "App Store.app",
17-
size: 10000000,
1816
},
1917
{
2018
name: "Facetime.app",
21-
size: 15000000,
2219
},
2320
{
2421
name: "Mail.app",
25-
size: 25000000,
2622
},
2723
{
2824
name: "Messages.app",
29-
size: 5000000,
3025
},
3126
{
3227
name: "Music.app",
33-
size: 50000000,
3428
},
3529
{
3630
name: "Safari.app",
37-
size: 14000000,
3831
},
3932
],
4033
},
@@ -52,35 +45,28 @@ export const files: Array<FileData | FolderData> = [
5245
children: [
5346
{
5447
name: "Tree.svelte",
55-
size: 3000,
5648
},
5749
{
5850
name: "TreeItem.svelte",
59-
size: 1100,
6051
},
6152
{
6253
name: "TreeItemInput.svelte",
63-
size: 2000,
6454
},
6555
],
6656
},
6757
{
6858
name: "index.ts",
69-
size: 500,
7059
},
7160
{
7261
name: "tree.svelte.ts",
73-
size: 1000,
7462
},
7563
],
7664
},
7765
{
7866
name: "package.json",
79-
size: 2000,
8067
},
8168
{
8269
name: "README.md",
83-
size: 1000,
8470
},
8571
],
8672
},
@@ -92,21 +78,17 @@ export const files: Array<FileData | FolderData> = [
9278
children: [
9379
{
9480
name: "index.ts",
95-
size: 200,
9681
},
9782
{
9883
name: "Ripple.svelte",
99-
size: 10000,
10084
},
10185
],
10286
},
10387
{
10488
name: "package.json",
105-
size: 3000,
10689
},
10790
{
10891
name: "README.md",
109-
size: 1000,
11092
},
11193
],
11294
},
@@ -120,21 +102,17 @@ export const files: Array<FileData | FolderData> = [
120102
children: [
121103
{
122104
name: "q1-goals.xlsx",
123-
size: 22000000,
124105
},
125106
{
126107
name: "timeline.pdf",
127-
size: 1500000,
128108
},
129109
],
130110
},
131111
{
132112
name: "meeting-notes.docx",
133-
size: 10000,
134113
},
135114
{
136115
name: "resume.pdf",
137-
size: 1200000,
138116
},
139117
],
140118
},
@@ -143,11 +121,9 @@ export const files: Array<FileData | FolderData> = [
143121
children: [
144122
{
145123
name: "conference-slides.pptx",
146-
size: 5000000,
147124
},
148125
{
149126
name: "typescript-cheatsheet.pdf",
150-
size: 50000,
151127
},
152128
],
153129
},
@@ -156,15 +132,12 @@ export const files: Array<FileData | FolderData> = [
156132
children: [
157133
{
158134
name: "Finding Nemo.mp4",
159-
size: 1000000000,
160135
},
161136
{
162137
name: "Inside Out.mp4",
163-
size: 1000000000,
164138
},
165139
{
166140
name: "Up.mp4",
167-
size: 1000000000,
168141
},
169142
],
170143
},
@@ -176,21 +149,17 @@ export const files: Array<FileData | FolderData> = [
176149
children: [
177150
{
178151
name: "bug-report.png",
179-
size: 300000,
180152
},
181153
{
182154
name: "component-diagram.png",
183-
size: 400000,
184155
},
185156
{
186157
name: "design-mockup.png",
187-
size: 350000,
188158
},
189159
],
190160
},
191161
{
192162
name: "profile-photo.jpg",
193-
size: 200000,
194163
},
195164
],
196165
},

0 commit comments

Comments
 (0)