* Move saved expanded-state keys after a folder rename. * @param {string} oldUrl * @param {string} newUrl
(oldUrl, newUrl)
| 1073 | * @param {string} newUrl |
| 1074 | */ |
| 1075 | function 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 | |
| 1099 | function getParentUrl(url) { |
| 1100 | return Url.dirname(url); |
no test coverage detected