feat: right-click to open menu for document/collection links

This commit is contained in:
2024-05-30 00:36:25 +08:00
parent 43cf33fc0a
commit eaea7b043e
6 changed files with 56 additions and 2 deletions

View File

@@ -92,6 +92,13 @@ function DocumentListItem(
title: document.titleWithDefault,
},
}}
onContextMenu={(e) => {
if (menuOpen) {
return;
}
e.preventDefault();
handleMenuOpen();
}}
{...rest}
{...rovingTabIndex}
>
@@ -149,6 +156,7 @@ function DocumentListItem(
<DocumentMenu
document={document}
showPin={showPin}
visible={menuOpen}
onOpen={handleMenuOpen}
onClose={handleMenuClose}
modal={false}

View File

@@ -131,7 +131,16 @@ const CollectionLink: React.FC<Props> = ({
return (
<>
<Relative ref={drop}>
<Relative
ref={drop}
onContextMenu={(e) => {
if (menuOpen || isEditing) {
return;
}
e.preventDefault();
handleMenuOpen();
}}
>
<DropToImport collectionId={collection.id}>
<SidebarLink
to={{
@@ -178,6 +187,7 @@ const CollectionLink: React.FC<Props> = ({
onRename={() =>
editableTitleRef.current?.setIsEditing(true)
}
visible={menuOpen}
onOpen={handleMenuOpen}
onClose={handleMenuClose}
/>

View File

@@ -313,6 +313,13 @@ function InnerDocumentLink(
$isDragging={isDragging}
$isMoving={isMoving}
onKeyDown={handleKeyDown}
onContextMenu={(e) => {
if (menuOpen || isEditing) {
return;
}
e.preventDefault();
handleMenuOpen();
}}
>
<div ref={dropToReparent}>
<DropToImport documentId={node.id} activeClassName="activeDropZone">
@@ -373,6 +380,7 @@ function InnerDocumentLink(
onRename={() =>
editableTitleRef.current?.setIsEditing(true)
}
visible={menuOpen}
onOpen={handleMenuOpen}
onClose={handleMenuClose}
/>

View File

@@ -115,7 +115,18 @@ function StarredLink({ star }: Props) {
return (
<>
<Draggable key={star.id} ref={draggableRef} $isDragging={isDragging}>
<Draggable
key={star.id}
ref={draggableRef}
$isDragging={isDragging}
onContextMenu={(e) => {
if (menuOpen) {
return;
}
e.preventDefault();
handleMenuOpen();
}}
>
<SidebarLink
depth={0}
to={{
@@ -136,6 +147,7 @@ function StarredLink({ star }: Props) {
<Fade>
<DocumentMenu
document={document}
visible={menuOpen}
onOpen={handleMenuOpen}
onClose={handleMenuClose}
/>