Skip to content
Snippets Groups Projects
Unverified Commit 649d0d79 authored by Sean Hatfield's avatar Sean Hatfield Committed by GitHub
Browse files

[FEAT] Thread bulk edit UX improvements (#1520)


* update thread bulk edit ux to hold cmd/ctrl to appear + rename default new thread to avoid confusion

* revert new thread defualt name change

* unset undelete threads

* comment

---------

Co-authored-by: default avatartimothycarambat <rambat1010@gmail.com>
parent 6a2d7aca
No related branches found
No related tags found
No related merge requests found
......@@ -22,11 +22,17 @@ export default function ThreadContainer({ workspace }) {
fetchThreads();
}, [workspace.slug]);
// Enable toggling of meta-key (ctrl on win and cmd/fn on others)
// 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)) {
setCtrlPressed((prev) => !prev);
setCtrlPressed(true);
}
};
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.
......@@ -37,9 +43,13 @@ export default function ThreadContainer({ workspace }) {
);
}
};
window.addEventListener("keydown", handleKeyDown);
window.addEventListener("keyup", handleKeyUp);
return () => {
window.removeEventListener("keydown", handleKeyDown);
window.removeEventListener("keyup", handleKeyUp);
};
}, []);
......@@ -56,7 +66,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 +98,7 @@ export default function ThreadContainer({ workspace }) {
)
? threads.findIndex((thread) => thread?.slug === threadSlug) + 1
: 0;
return (
<div className="flex flex-col" role="list" aria-label="Threads">
<ThreadItem
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment