( tree: ConfigTree<T>, id: string )
| 81 | } |
| 82 | |
| 83 | export function removeTreeFolder<T extends ConfigItemBase>( |
| 84 | tree: ConfigTree<T>, |
| 85 | id: string |
| 86 | ): ConfigTree<T> { |
| 87 | const allFolderIds = [id, ...getAllSubFolderIds(tree.folders, id)] |
| 88 | const maxOrder = getMaxOrderAtLevel(tree.items) |
| 89 | |
| 90 | let orderOffset = 0 |
| 91 | const updatedItems = tree.items.map((item) => { |
| 92 | if (item.parentFolderId && allFolderIds.includes(item.parentFolderId)) { |
| 93 | orderOffset++ |
| 94 | return { ...item, parentFolderId: undefined, order: maxOrder + orderOffset } |
| 95 | } |
| 96 | return item |
| 97 | }) |
| 98 | |
| 99 | return { |
| 100 | items: updatedItems, |
| 101 | folders: tree.folders.filter((f) => !allFolderIds.includes(f.id)) |
| 102 | } |
| 103 | } |
| 104 | |
| 105 | export function clearTreeFolder<T extends ConfigItemBase>( |
| 106 | tree: ConfigTree<T>, |
no test coverage detected