From 6454cb51242428a48b9929c6a28ad9b681ef8ba0 Mon Sep 17 00:00:00 2001 From: nfebe Date: Fri, 25 Apr 2025 00:01:40 +0100 Subject: [PATCH] perf(files_sharing): Change sharing filtering from O(3n) to O(n) Replaced multiple Array.filter() calls with a single loop to improve performance. This avoids redundant iterations over the shares array and categorizes them more efficiently. Signed-off-by: nfebe --- apps/files_sharing/src/views/SharingTab.vue | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/apps/files_sharing/src/views/SharingTab.vue b/apps/files_sharing/src/views/SharingTab.vue index b26947042d2..e9e068a7c1d 100644 --- a/apps/files_sharing/src/views/SharingTab.vue +++ b/apps/files_sharing/src/views/SharingTab.vue @@ -365,9 +365,15 @@ export default { ], ) - this.linkShares = shares.filter(share => [ShareType.Link, ShareType.Email].includes(share.type)) - this.shares = shares.filter(share => ![ShareType.Link, ShareType.Email, ShareType.Remote, ShareType.RemoteGroup].includes(share.type)) - this.externalShares = shares.filter(share => [ShareType.Remote, ShareType.RemoteGroup].includes(share.type)) + for (const share of shares) { + if ([ShareType.Link, ShareType.Email].includes(share.type)) { + this.linkShares.push(share) + } else if ([ShareType.Remote, ShareType.RemoteGroup].includes(share.type)) { + this.externalShares.push(share) + } else { + this.shares.push(share) + } + } logger.debug(`Processed ${this.linkShares.length} link share(s)`) logger.debug(`Processed ${this.shares.length} share(s)`)