-
Notifications
You must be signed in to change notification settings - Fork 14
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Added hotkey for deleting nodes #637
Open
sarccasm
wants to merge
4
commits into
amelioro:main
Choose a base branch
from
sarccasm:feature/delete-node-hotkey
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+47
−6
Open
Changes from all commits
Commits
Show all changes
4 commits
Select commit
Hold shift + click to select a range
297b016
feat(auth): Added hotkey for deleting nodes and fixed Auth0 setup
sarccasm 22568f3
Moved delete hotkey to TopicWorkspace and added node existence check
sarccasm 22f86c8
Fixed deleteGraphPart hotkey issue
sarccasm befcf24
Ensure immutability in deleteGraphPart function
sarccasm File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -15,7 +15,7 @@ import { TourSetter } from "@/web/topic/components/TopicWorkspace/TourSetter"; | |
import { TutorialAnchor } from "@/web/topic/components/TopicWorkspace/TutorialAnchor"; | ||
import { TutorialController } from "@/web/topic/components/TopicWorkspace/TutorialController"; | ||
import { WorkspaceContext } from "@/web/topic/components/TopicWorkspace/WorkspaceContext"; | ||
import { setScore } from "@/web/topic/store/actions"; | ||
import { deleteGraphPart, setScore } from "@/web/topic/store/actions"; | ||
import { playgroundUsername } from "@/web/topic/store/store"; | ||
import { isOnPlayground } from "@/web/topic/store/utilActions"; | ||
import { Score, possibleScores } from "@/web/topic/utils/graph"; | ||
|
@@ -37,11 +37,17 @@ const useWorkspaceHotkeys = (user: { username: string } | null | undefined) => { | |
const [score] = hotkeysEvent.keys; | ||
if (!score || !possibleScores.some((s) => score === s)) return; | ||
|
||
// seems slightly awkward that there's logic here not reused with the Score component, but hard to reuse that in a clean way | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Did you intentionally remove this comment? It's still relevant for the code below it, and your hotkey changes seem unrelated to it. The same goes for the other two comments that you've removed. |
||
const myUsername = isOnPlayground() ? playgroundUsername : user?.username; | ||
if (!userCanEditScores(myUsername, getPerspectives(), getReadonlyMode())) return; | ||
setScore(myUsername, selectedPart.id, score as Score); | ||
}); | ||
|
||
useHotkeys([hotkeys.delete || "del"], () => { | ||
const selectedPart = getSelectedGraphPart(); | ||
if (selectedPart?.id) { | ||
deleteGraphPart(selectedPart.id); | ||
} | ||
}); | ||
}; | ||
|
||
export const TopicWorkspace = () => { | ||
|
@@ -56,7 +62,6 @@ export const TopicWorkspace = () => { | |
const useSplitPanes = isLandscape && usingBigScreen; | ||
|
||
return ( | ||
// h-svh to force workspace to take up full height of screen | ||
<div className="relative flex h-svh flex-col"> | ||
<AppHeader /> | ||
|
||
|
@@ -94,7 +99,6 @@ export const TopicWorkspace = () => { | |
</WorkspaceContext.Provider> | ||
)} | ||
|
||
{/* prevents body scrolling when workspace is rendered*/} | ||
<Global styles={{ body: { overflow: "hidden" } }} /> | ||
</div> | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -13,4 +13,5 @@ export const hotkeys = { | |
showIndicators: "Alt + i", | ||
zoomIn: "Ctrl + =", | ||
zoomOut: "Ctrl + -", | ||
delete: "del", | ||
}; |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is a good idea, but since this
useEffect
is defined within theDeleteNodeMenuItem
, thedelete
key only works when this menu item is rendered, i.e. when right-clicking on a node.Check out the Technical Details section of the issue #520 - the code referenced there shows an established pattern for adding hotkeys in Ameliorate. There, we add a hotkey hook to the
TopicWorkspace
, which is a parent container of theDiagram
, so the hotkey will always be usable without needing any other specific components rendered.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The code you've added to
TopicWorkspace
is looking better, but thisDeleteNodeMenuItem
code still needs to be undone.