From 38d403bcc26244e778a6e7a2f75ee39a9ec7ed27 Mon Sep 17 00:00:00 2001
From: Mohamed Bassem <me@mbassem.com>
Date: Sun, 12 Jan 2025 23:47:25 +0000
Subject: fix: Limit concurrency of bulk actions. Fix #773

---
 .../dashboard/bookmarks/BulkManageListsModal.tsx          | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)

(limited to 'apps/web/components/dashboard/bookmarks/BulkManageListsModal.tsx')

diff --git a/apps/web/components/dashboard/bookmarks/BulkManageListsModal.tsx b/apps/web/components/dashboard/bookmarks/BulkManageListsModal.tsx
index 9c1f05d2..27e5c5e2 100644
--- a/apps/web/components/dashboard/bookmarks/BulkManageListsModal.tsx
+++ b/apps/web/components/dashboard/bookmarks/BulkManageListsModal.tsx
@@ -21,6 +21,7 @@ import { useForm } from "react-hook-form";
 import { z } from "zod";
 
 import { useAddBookmarkToList } from "@hoarder/shared-react/hooks/lists";
+import { limitConcurrency } from "@hoarder/shared/concurrency";
 
 import { BookmarkListSelector } from "../lists/BookmarkListSelector";
 
@@ -67,11 +68,15 @@ export default function BulkManageListsModal({
 
   const onSubmit = async (value: z.infer<typeof formSchema>) => {
     const results = await Promise.allSettled(
-      bookmarkIds.map((bookmarkId) =>
-        addToList({
-          bookmarkId,
-          listId: value.listId,
-        }),
+      limitConcurrency(
+        bookmarkIds.map(
+          (bookmarkId) => () =>
+            addToList({
+              bookmarkId,
+              listId: value.listId,
+            }),
+        ),
+        50,
       ),
     );
 
-- 
cgit v1.2.3-70-g09d2

