* Remove matching rendered entries from expanded folder views. * This keeps FileTree's in-memory state aligned with the rendered tree. * @param {string} entryUrl
(entryUrl)
| 1106 | * @param {string} entryUrl |
| 1107 | */ |
| 1108 | function removeEntryFromOpenFolder(entryUrl) { |
| 1109 | const filesApp = sidebarApps.get("files"); |
| 1110 | const $els = Array.from( |
| 1111 | filesApp.getAll(`[data-url="${CSS.escape(entryUrl)}"]`), |
| 1112 | ); |
| 1113 | |
| 1114 | $els.forEach(($el) => { |
| 1115 | const ownerTree = |
| 1116 | $el?.parentElement?._fileTree || |
| 1117 | $el?.parentElement?.parentElement?._fileTree; |
| 1118 | |
| 1119 | if (ownerTree) { |
| 1120 | ownerTree.removeEntry(entryUrl); |
| 1121 | return; |
| 1122 | } |
| 1123 | |
| 1124 | const type = $el.dataset.type; |
| 1125 | if (helpers.isFile(type)) { |
| 1126 | $el.remove(); |
| 1127 | } else { |
| 1128 | $el.parentElement?.remove(); |
| 1129 | } |
| 1130 | }); |
| 1131 | } |
| 1132 | |
| 1133 | /** |
| 1134 | * Update matching expanded folder views with a new entry. |
no test coverage detected