Skip to content

Commit d7af6b5

Browse files
committed
Disable drag and drop for specific node.
Remove dependency on `user`
1 parent 2802825 commit d7af6b5

File tree

6 files changed

+12
-6
lines changed

6 files changed

+12
-6
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ export interface TreeViewItem {
8787
checked?: boolean;
8888
selected?: boolean;
8989
expanded?: boolean;
90+
disableDragAndDrop?: boolean; // Disable drag and drop for a specific node.
9091
disabled?: boolean;// When disabled, an item can neither be selected nor checked
9192
meta?: any;// provides meta-data of any type per node.
9293
}

dev/serve.vue

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ export default defineComponent({
101101
</div>
102102
</template>
103103

104-
<style scoped>
104+
<style>
105105
* {
106106
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
107107
font-size: 14px;
@@ -114,4 +114,9 @@ button {
114114
color: blue;
115115
cursor: pointer;
116116
}
117+
118+
.selected-tree-item {
119+
background: blue !important;
120+
}
121+
117122
</style>

dev/tree.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,9 @@
5656
]
5757
},
5858
{
59-
"name": "System Design Playlist",
59+
"name": "System Design Playlist (Not Draggable)",
6060
"id": 993029302938,
61+
"disableDragAndDrop": true,
6162
"type": ".playlist",
6263
"children": [
6364
{

package.json

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,5 @@
7171
},
7272
"engines": {
7373
"node": ">=12"
74-
},
75-
"dependencies": {
76-
"user": "^0.0.0"
7774
}
7875
}

src/composables/use-tree-mouse-actions.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ export function useTreeViewItemMouseActions() {
3434
}
3535

3636
const onDragNode = (item: TreeViewItem, event: DragEvent): void => {
37+
if (item.disableDragAndDrop) return;
3738
if (event.dataTransfer) {
3839
event.dataTransfer.setData('text/plain', JSON.stringify(item));
3940
}
@@ -46,7 +47,7 @@ export function useTreeViewItemMouseActions() {
4647

4748
if (!isDropValid) return;
4849

49-
if (dropHost && droppedNode.id === dropHost.id) {
50+
if (dropHost && droppedNode.id === dropHost.id || droppedNode.disableDragAndDrop) {
5051
return
5152
}
5253

src/types.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ export interface TreeViewItem {
66
selected?: boolean;
77
expanded?: boolean;
88
disabled?: boolean;
9+
disableDragAndDrop?: boolean;
910
meta?: any;
1011
}
1112

0 commit comments

Comments
 (0)