From 5f7a1a62cfae2b1b70edfa45217c1af818d64366 Mon Sep 17 00:00:00 2001 From: Bao Nguyen Date: Tue, 14 Feb 2023 14:23:03 +0700 Subject: [PATCH] prevent item from pasting into itself --- src/lib/fs.js | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/lib/fs.js b/src/lib/fs.js index 2b4d94e..8c8f8bc 100644 --- a/src/lib/fs.js +++ b/src/lib/fs.js @@ -75,7 +75,27 @@ export function del_fs(id){ } } +function dir_contains_dir(a, b){ + if(a == null || b == null) return false; + if(get(hardDrive)[a] == null) return false; + if(get(hardDrive)[b] == null) return false; + if(a == b) return true; + + let paths = []; + while(get(hardDrive)[b].parent != null){ + let parent = get(hardDrive)[b].parent; + paths.push(parent); + b = parent; + } + return paths.includes(a); + +} export function clone_fs(obj_current_id, parent_id, new_id=null){ + if(dir_contains_dir(obj_current_id, parent_id)){ + console.log('cannot paste item onto itself'); + return; + } + let obj = {...get(hardDrive)[obj_current_id]}; if(new_id == null){