MCPcopy Create free account
hub / github.com/Acode-Foundation/Acode / migrateOpenFolderStateUrls

Function migrateOpenFolderStateUrls

src/lib/openFolder.js:1075–1097  ·  view source on GitHub ↗

* Move saved expanded-state keys after a folder rename. * @param {string} oldUrl * @param {string} newUrl

(oldUrl, newUrl)

Source from the content-addressed store, hash-verified

1073 * @param {string} newUrl
1074 */
1075function migrateOpenFolderStateUrls(oldUrl, newUrl) {
1076 if (!oldUrl || !newUrl || areSameOpenFolderUrl(oldUrl, newUrl)) return;
1077
1078 const oldKey = normalizeUrlPathKey(oldUrl);
1079
1080 addedFolder.forEach(({ listState }) => {
1081 const matchingEntries = getListStateEntries(listState).filter(
1082 ([folderUrl]) => {
1083 return isInsideOpenFolder(folderUrl, oldUrl);
1084 },
1085 );
1086
1087 matchingEntries.forEach(([folderUrl, isExpanded]) => {
1088 const suffix = normalizeUrlPathKey(folderUrl).slice(oldKey.length);
1089 const migratedUrl = preserveTrailingSlashShape(
1090 appendUrlPathSuffix(newUrl, suffix),
1091 folderUrl,
1092 );
1093 deleteListStateEntry(listState, folderUrl);
1094 setListStateEntry(listState, migratedUrl, isExpanded);
1095 });
1096 });
1097}
1098
1099function getParentUrl(url) {
1100 return Url.dirname(url);

Callers 1

Calls 8

areSameOpenFolderUrlFunction · 0.85
normalizeUrlPathKeyFunction · 0.85
getListStateEntriesFunction · 0.85
isInsideOpenFolderFunction · 0.85
appendUrlPathSuffixFunction · 0.85
deleteListStateEntryFunction · 0.85
setListStateEntryFunction · 0.85

Tested by

no test coverage detected