Merge pull request #467 from game5413/enhancement/collection-dropdown

Better experience for open request or folder dropdown action
This commit is contained in:
Anoop M D 2023-10-09 06:52:13 +05:30 committed by GitHub
commit f0c3b8a877
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 53 additions and 25 deletions

View File

@ -88,14 +88,18 @@ const CollectionItem = ({ item, collection, searchText }) => {
}); });
const handleClick = (event) => { const handleClick = (event) => {
switch (event.button) {
case 0: // left click
if (isItemARequest(item)) { if (isItemARequest(item)) {
dispatch(hideHomePage());
if (itemIsOpenedInTabs(item, tabs)) { if (itemIsOpenedInTabs(item, tabs)) {
dispatch( dispatch(
focusTab({ focusTab({
uid: item.uid uid: item.uid
}) })
); );
} else { return;
}
dispatch( dispatch(
addTab({ addTab({
uid: item.uid, uid: item.uid,
@ -103,15 +107,25 @@ const CollectionItem = ({ item, collection, searchText }) => {
requestPaneTab: getDefaultRequestPaneTab(item) requestPaneTab: getDefaultRequestPaneTab(item)
}) })
); );
return;
} }
dispatch(hideHomePage());
} else {
dispatch( dispatch(
collectionFolderClicked({ collectionFolderClicked({
itemUid: item.uid, itemUid: item.uid,
collectionUid: collection.uid collectionUid: collection.uid
}) })
); );
return;
case 2: // right click
const _menuDropdown = dropdownTippyRef.current;
if (_menuDropdown) {
let menuDropdownBehavior = 'show';
if (_menuDropdown.state.isShown) {
menuDropdownBehavior = 'hide';
}
_menuDropdown[menuDropdownBehavior]();
}
return;
} }
}; };
@ -189,7 +203,7 @@ const CollectionItem = ({ item, collection, searchText }) => {
? indents.map((i) => { ? indents.map((i) => {
return ( return (
<div <div
onClick={handleClick} onMouseUp={handleClick}
onDoubleClick={handleDoubleClick} onDoubleClick={handleDoubleClick}
className="indent-block" className="indent-block"
key={i} key={i}
@ -205,7 +219,7 @@ const CollectionItem = ({ item, collection, searchText }) => {
}) })
: null} : null}
<div <div
onClick={handleClick} onMouseUp={handleClick}
onDoubleClick={handleDoubleClick} onDoubleClick={handleDoubleClick}
className="flex flex-grow items-center h-full overflow-hidden" className="flex flex-grow items-center h-full overflow-hidden"
style={{ style={{

View File

@ -64,7 +64,21 @@ const Collection = ({ collection, searchText }) => {
}); });
const handleClick = (event) => { const handleClick = (event) => {
const _menuDropdown = menuDropdownTippyRef.current;
switch (event.button) {
case 0: // left click
dispatch(collectionClicked(collection.uid)); dispatch(collectionClicked(collection.uid));
return;
case 2: // right click
if (_menuDropdown) {
let menuDropdownBehavior = 'show';
if (_menuDropdown.state.isShown) {
menuDropdownBehavior = 'hide';
}
_menuDropdown[menuDropdownBehavior]();
}
return;
}
}; };
const handleExportClick = () => { const handleExportClick = () => {
@ -119,7 +133,7 @@ const Collection = ({ collection, searchText }) => {
<CollectionProperties collection={collection} onClose={() => setCollectionPropertiesModal(false)} /> <CollectionProperties collection={collection} onClose={() => setCollectionPropertiesModal(false)} />
)} )}
<div className="flex py-1 collection-name items-center" ref={drop}> <div className="flex py-1 collection-name items-center" ref={drop}>
<div className="flex flex-grow items-center overflow-hidden" onClick={handleClick}> <div className="flex flex-grow items-center overflow-hidden" onMouseUp={handleClick}>
<IconChevronRight <IconChevronRight
size={16} size={16}
strokeWidth={2} strokeWidth={2}