Skip to content

Commit e2c043a

Browse files
authored
breaking: pass {parent, node} to IsItemDisabled and isItemHidden (#100)
* breaking: pass {parent, node} instead of just node * chore: add changeset
1 parent 24fe790 commit e2c043a

File tree

3 files changed

+25
-4
lines changed

3 files changed

+25
-4
lines changed

.changeset/empty-planets-wash.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"svelte-file-tree": minor
3+
---
4+
5+
breaking: pass {parent, node} to `isItemDisabled` and `isItemHidden`

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -129,8 +129,8 @@
129129
return expandedIds.has(node.id);
130130
},
131131
inClipboard: () => clipboardIds.has(node.id),
132-
disabled: () => parent?.disabled || isItemDisabled(node),
133-
visible: () => (parent === undefined || parent.expanded) && !isItemHidden(node),
132+
disabled: () => parent?.disabled || isItemDisabled({ parent, node }),
133+
visible: () => (parent === undefined || parent.expanded) && !isItemHidden({ parent, node }),
134134
});
135135
result.push(item);
136136

packages/svelte-file-tree/src/lib/components/types.ts

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,22 @@ export type TreeChildrenSnippetArgs<
2222

2323
export type PasteOperation = "copy" | "cut";
2424

25+
export type IsItemDisabledArgs<
26+
TFile extends FileNode = FileNode,
27+
TFolder extends FolderNode<TFile | TFolder> = DefaultTFolder<TFile>,
28+
> = {
29+
parent: TreeItemState<TFile, TFolder, TFolder> | undefined;
30+
node: TFile | TFolder;
31+
};
32+
33+
export type IsItemHiddenArgs<
34+
TFile extends FileNode = FileNode,
35+
TFolder extends FolderNode<TFile | TFolder> = DefaultTFolder<TFile>,
36+
> = {
37+
parent: TreeItemState<TFile, TFolder, TFolder> | undefined;
38+
node: TFile | TFolder;
39+
};
40+
2541
export type OnResolveNameConflictArgs<
2642
TFile extends FileNode = FileNode,
2743
TFolder extends FolderNode<TFile | TFolder> = DefaultTFolder<TFile>,
@@ -79,8 +95,8 @@ export interface TreeProps<
7995
clipboardIds?: SvelteSet<string>;
8096
pasteOperation?: PasteOperation;
8197
ref?: HTMLDivElement | null;
82-
isItemDisabled?: (node: TFile | TFolder) => boolean;
83-
isItemHidden?: (node: TFile | TFolder) => boolean;
98+
isItemDisabled?: (args: IsItemDisabledArgs<TFile, TFolder>) => boolean;
99+
isItemHidden?: (args: IsItemHiddenArgs<TFile, TFolder>) => boolean;
84100
copyNode?: (node: TFile | TFolder) => TFile | TFolder;
85101
shouldClearClipboard?: (operation: PasteOperation) => boolean;
86102
onResolveNameConflict?: (

0 commit comments

Comments
 (0)