MCPcopy Create free account
hub / github.com/error311/FileRise / updateToggleForOption

Function updateToggleForOption

public/js/folderManager.js:1145–1177  ·  view source on GitHub ↗
(folder, hasChildren)

Source from the content-addressed store, hash-verified

1143 Toggle (chevron) helper
1144----------------------*/
1145function updateToggleForOption(folder, hasChildren) {
1146 const opt = document.querySelector(`.folder-option[data-folder="${CSS.escape(folder)}"]`);
1147 if (!opt) return;
1148 const row = opt.closest('.folder-row');
1149 if (!row) return;
1150
1151 let btn = row.querySelector('button.folder-toggle');
1152 let spacer = row.querySelector('.folder-spacer');
1153
1154 if (hasChildren) {
1155 if (!btn) {
1156 btn = document.createElement('button');
1157 btn.type = 'button';
1158 btn.className = 'folder-toggle';
1159 btn.setAttribute('data-folder', folder);
1160 btn.setAttribute('aria-label', 'Expand');
1161 if (spacer) spacer.replaceWith(btn);
1162 else row.insertBefore(btn, opt);
1163 }
1164 } else {
1165 if (btn) {
1166 const newSpacer = document.createElement('span');
1167 newSpacer.className = 'folder-spacer';
1168 newSpacer.setAttribute('aria-hidden', 'true');
1169 btn.replaceWith(newSpacer);
1170 } else if (!spacer) {
1171 spacer = document.createElement('span');
1172 spacer.className = 'folder-spacer';
1173 spacer.setAttribute('aria-hidden', 'true');
1174 row.insertBefore(spacer, opt);
1175 }
1176 }
1177}
1178
1179/* ----------------------
1180 Colors

Callers 7

ensureFolderIconFunction · 0.85
loadMoreChildrenFunction · 0.85
ensureChildrenLoadedFunction · 0.85
primeChildTogglesFunction · 0.85
syncTreeAfterFolderMoveFunction · 0.85
loadFolderTreeFunction · 0.85
folderManager.jsFile · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected