From 425a1c06a33221b47484217efa91ea30be935f47 Mon Sep 17 00:00:00 2001 From: shatfield4 Date: Thu, 23 May 2024 16:12:30 -0700 Subject: [PATCH 1/4] update thread bulk edit ux to hold cmd/ctrl to appear + rename default new thread to avoid confusion --- .../ThreadContainer/index.jsx | 23 ++++++++++--------- server/models/workspaceThread.js | 2 +- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/frontend/src/components/Sidebar/ActiveWorkspaces/ThreadContainer/index.jsx b/frontend/src/components/Sidebar/ActiveWorkspaces/ThreadContainer/index.jsx index f3c0ac2a1c5..58168f1c495 100644 --- a/frontend/src/components/Sidebar/ActiveWorkspaces/ThreadContainer/index.jsx +++ b/frontend/src/components/Sidebar/ActiveWorkspaces/ThreadContainer/index.jsx @@ -22,24 +22,25 @@ export default function ThreadContainer({ workspace }) { fetchThreads(); }, [workspace.slug]); - // Enable toggling of meta-key (ctrl on win and cmd/fn on others) useEffect(() => { const handleKeyDown = (event) => { if (["Control", "Meta"].includes(event.key)) { - setCtrlPressed((prev) => !prev); - // when toggling, unset bulk progress so - // previously marked threads that were never deleted - // come back to life. - setThreads((prev) => - prev.map((t) => { - return { ...t, deleted: false }; - }) - ); + setCtrlPressed(true); } }; + + const handleKeyUp = (event) => { + if (["Control", "Meta"].includes(event.key)) { + setCtrlPressed(false); + } + }; + window.addEventListener("keydown", handleKeyDown); + window.addEventListener("keyup", handleKeyUp); + return () => { window.removeEventListener("keydown", handleKeyDown); + window.removeEventListener("keyup", handleKeyUp); }; }, []); @@ -56,7 +57,6 @@ export default function ThreadContainer({ workspace }) { const slugs = threads.filter((t) => t.deleted === true).map((t) => t.slug); await Workspace.threads.deleteBulk(workspace.slug, slugs); setThreads((prev) => prev.filter((t) => !t.deleted)); - setCtrlPressed(false); }; function removeThread(threadId) { @@ -89,6 +89,7 @@ export default function ThreadContainer({ workspace }) { ) ? threads.findIndex((thread) => thread?.slug === threadSlug) + 1 : 0; + return (
Date: Thu, 23 May 2024 16:31:47 -0700 Subject: [PATCH 2/4] revert new thread defualt name change --- server/models/workspaceThread.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/models/workspaceThread.js b/server/models/workspaceThread.js index 6077bfd5a22..a2a96f31097 100644 --- a/server/models/workspaceThread.js +++ b/server/models/workspaceThread.js @@ -8,7 +8,7 @@ const WorkspaceThread = { try { const thread = await prisma.workspace_threads.create({ data: { - name: "Thread", + name: "New thread", slug: uuidv4(), user_id: userId ? Number(userId) : null, workspace_id: workspace.id, From e2365a5344cf9e41e3b9caba31b884206d2f8e5b Mon Sep 17 00:00:00 2001 From: timothycarambat Date: Thu, 23 May 2024 16:41:40 -0700 Subject: [PATCH 3/4] unset undelete threads --- .../Sidebar/ActiveWorkspaces/ThreadContainer/index.jsx | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/frontend/src/components/Sidebar/ActiveWorkspaces/ThreadContainer/index.jsx b/frontend/src/components/Sidebar/ActiveWorkspaces/ThreadContainer/index.jsx index 58168f1c495..9c4a2278687 100644 --- a/frontend/src/components/Sidebar/ActiveWorkspaces/ThreadContainer/index.jsx +++ b/frontend/src/components/Sidebar/ActiveWorkspaces/ThreadContainer/index.jsx @@ -32,6 +32,14 @@ export default function ThreadContainer({ workspace }) { const handleKeyUp = (event) => { if (["Control", "Meta"].includes(event.key)) { setCtrlPressed(false); + // when toggling, unset bulk progress so + // previously marked threads that were never deleted + // come back to life. + setThreads((prev) => + prev.map((t) => { + return { ...t, deleted: false }; + }) + ); } }; From 44d6096bd120171595a843362c103c88ca1b1811 Mon Sep 17 00:00:00 2001 From: timothycarambat Date: Thu, 23 May 2024 16:42:37 -0700 Subject: [PATCH 4/4] comment --- .../Sidebar/ActiveWorkspaces/ThreadContainer/index.jsx | 1 + 1 file changed, 1 insertion(+) diff --git a/frontend/src/components/Sidebar/ActiveWorkspaces/ThreadContainer/index.jsx b/frontend/src/components/Sidebar/ActiveWorkspaces/ThreadContainer/index.jsx index 9c4a2278687..d1c0ba8c287 100644 --- a/frontend/src/components/Sidebar/ActiveWorkspaces/ThreadContainer/index.jsx +++ b/frontend/src/components/Sidebar/ActiveWorkspaces/ThreadContainer/index.jsx @@ -22,6 +22,7 @@ export default function ThreadContainer({ workspace }) { fetchThreads(); }, [workspace.slug]); + // Enable toggling of bulk-deletion by holding meta-key (ctrl on win and cmd/fn on others) useEffect(() => { const handleKeyDown = (event) => { if (["Control", "Meta"].includes(event.key)) {