()
| 106 | } |
| 107 | |
| 108 | function syncSelectedFoldersWithTree() { |
| 109 | // Если выбрана системная папка (Inbox, Favorites, All, Trash), |
| 110 | // selectedFolderIds пуст — не нужно назначать fallback |
| 111 | if (state.libraryFilter) { |
| 112 | return |
| 113 | } |
| 114 | |
| 115 | const orderedIds = flatFolderList.value.map(folder => folder.id) |
| 116 | |
| 117 | if (!orderedIds.length) { |
| 118 | clearFolderSelection() |
| 119 | return |
| 120 | } |
| 121 | |
| 122 | const filteredSelection = selectedFolderIds.value.filter(id => |
| 123 | folderOrderMap.value.has(id), |
| 124 | ) |
| 125 | |
| 126 | if (!filteredSelection.length) { |
| 127 | const fallbackId |
| 128 | = state.folderId && folderOrderMap.value.has(state.folderId) |
| 129 | ? state.folderId |
| 130 | : orderedIds[0] |
| 131 | |
| 132 | if (fallbackId) { |
| 133 | setFolderSelection([fallbackId]) |
| 134 | } |
| 135 | else { |
| 136 | clearFolderSelection() |
| 137 | } |
| 138 | |
| 139 | return |
| 140 | } |
| 141 | |
| 142 | setFolderSelection(filteredSelection) |
| 143 | } |
| 144 | |
| 145 | watch( |
| 146 | () => state.folderId, |
no test coverage detected