diff options
Diffstat (limited to 'apps/files/src/views/favorites.ts')
-rw-r--r-- | apps/files/src/views/favorites.ts | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/apps/files/src/views/favorites.ts b/apps/files/src/views/favorites.ts index 67c4fd58a86..366fe56da12 100644 --- a/apps/files/src/views/favorites.ts +++ b/apps/files/src/views/favorites.ts @@ -124,6 +124,21 @@ export default () => { }) /** + * Update favourites navigation when a folder is renamed + */ + subscribe('files:node:renamed', (node: Node) => { + if (node.type !== FileType.Folder) { + return + } + + if (node.attributes.favorite !== 1) { + return + } + + updateNodeFromFavorites(node as Folder) + }) + + /** * Sort the favorites paths array and * update the order property of the existing views */ @@ -174,4 +189,17 @@ export default () => { Navigation.remove(id) updateAndSortViews() } + + // Update a folder from the favorites paths array and update the views + const updateNodeFromFavorites = function(node: Folder) { + const favoriteFolder = favoriteFolders.find((folder) => folder.fileid === node.fileid) + + // Skip if it does not exists + if (favoriteFolder === undefined) { + return + } + + removePathFromFavorites(favoriteFolder.path) + addToFavorites(node) + } } |