From ffbf7b4a76a63e554f51b8851ea4aebceeb77ca2 Mon Sep 17 00:00:00 2001 From: dannyrb Date: Sun, 7 Jun 2020 12:08:50 -0400 Subject: [PATCH] bubble up thumbnail "untrack" clicks to parent "StudyBrowser" component w/ prop drilling --- .../PanelStudyBrowserTracking.jsx | 8 +++--- platform/ui/src/assets/styles/styles.css | 8 ------ .../components/StudyBrowser/StudyBrowser.jsx | 26 ++++++++++++++----- .../ThumbnailList/ThumbnailList.jsx | 3 +++ .../ThumbnailTracked/ThumbnailTracked.jsx | 11 ++++---- 5 files changed, 32 insertions(+), 24 deletions(-) diff --git a/extensions/measurement-tracking/src/panels/PanelStudyBrowserTracking/PanelStudyBrowserTracking.jsx b/extensions/measurement-tracking/src/panels/PanelStudyBrowserTracking/PanelStudyBrowserTracking.jsx index 4ffa0aab1..49818c670 100644 --- a/extensions/measurement-tracking/src/panels/PanelStudyBrowserTracking/PanelStudyBrowserTracking.jsx +++ b/extensions/measurement-tracking/src/panels/PanelStudyBrowserTracking/PanelStudyBrowserTracking.jsx @@ -50,9 +50,6 @@ function PanelStudyBrowserTracking({ StudyInstanceUID, SeriesInstanceUID, }); - - console.log('PANEL:', measurement); - // console.log('Mapped:', annotation); } ); @@ -159,7 +156,7 @@ function PanelStudyBrowserTracking({ changedDisplaySets, thumbnailImageSrcMap, trackedSeries, - viewports, + viewports ); setDisplaySets(mappedDisplaySets); @@ -214,6 +211,9 @@ function PanelStudyBrowserTracking({ onClickTab={clickedTabName => { setActiveTabName(clickedTabName); }} + onClickUntrack={displaySetInstanceUID => + console.log(displaySetInstanceUID) + } /> ); } diff --git a/platform/ui/src/assets/styles/styles.css b/platform/ui/src/assets/styles/styles.css index 494887a42..df621a56e 100644 --- a/platform/ui/src/assets/styles/styles.css +++ b/platform/ui/src/assets/styles/styles.css @@ -40,11 +40,3 @@ .invisible-scrollbar::-webkit-scrollbar-thumb:window-inactive { @apply hidden; } - -.showExcludeButtonOnHover .excludeButton { - display: none; -} - -.showExcludeButtonOnHover:hover .excludeButton { - display: block; -} diff --git a/platform/ui/src/components/StudyBrowser/StudyBrowser.jsx b/platform/ui/src/components/StudyBrowser/StudyBrowser.jsx index 9a573647b..048489e70 100644 --- a/platform/ui/src/components/StudyBrowser/StudyBrowser.jsx +++ b/platform/ui/src/components/StudyBrowser/StudyBrowser.jsx @@ -25,6 +25,7 @@ const StudyBrowser = ({ onClickTab, onClickStudy, onClickThumbnail, + onClickUntrack, }) => { const [thumbnailActive, setThumbnailActive] = useState(null); @@ -58,15 +59,16 @@ const StudyBrowser = ({ { + onThumbnailClick={displaySetInstanceUID => { setThumbnailActive( - thumbnailId === thumbnailActive ? null : thumbnailId + displaySetInstanceUID === thumbnailActive + ? null + : displaySetInstanceUID ); - - if (onClickThumbnail) { - // TODO: what is thumbnailId? Should pass display set instead - onClickThumbnail(thumbnailId); - } + onClickThumbnail(displaySetInstanceUID); + }} + onClickUntrack={displaySetInstanceUID => { + onClickUntrack(displaySetInstanceUID); }} /> )} @@ -116,6 +118,7 @@ StudyBrowser.propTypes = { onClickTab: PropTypes.func.isRequired, onClickStudy: PropTypes.func, onClickThumbnail: PropTypes.func, + onClickUntrack: PropTypes.func, activeTabName: PropTypes.string.isRequired, expandedStudyInstanceUIDs: PropTypes.arrayOf(PropTypes.string).isRequired, tabs: PropTypes.arrayOf( @@ -164,4 +167,13 @@ StudyBrowser.propTypes = { ), }; +const noop = () => {}; + +StudyBrowser.defaultProps = { + onClickTab: noop, + onClickStudy: noop, + onClickThumbnail: noop, + onClickUntrack: noop, +}; + export default StudyBrowser; diff --git a/platform/ui/src/components/ThumbnailList/ThumbnailList.jsx b/platform/ui/src/components/ThumbnailList/ThumbnailList.jsx index 97e619891..303159df8 100644 --- a/platform/ui/src/components/ThumbnailList/ThumbnailList.jsx +++ b/platform/ui/src/components/ThumbnailList/ThumbnailList.jsx @@ -7,6 +7,7 @@ const ThumbnailList = ({ thumbnails, thumbnailActive, onThumbnailClick, + onClickUntrack, }) => { return (
@@ -57,6 +58,7 @@ const ThumbnailList = ({ isTracked={isTracked} isActive={isActive} onClick={() => onThumbnailClick(displaySetInstanceUID)} + onClickUntrack={() => onClickUntrack(displaySetInstanceUID)} /> ); case 'thumbnailNoImage': @@ -111,6 +113,7 @@ ThumbnailList.propTypes = { ), thumbnailActive: PropTypes.string, onThumbnailClick: PropTypes.func, + onClickUntrack: PropTypes.func.isRequired, }; export default ThumbnailList; diff --git a/platform/ui/src/components/ThumbnailTracked/ThumbnailTracked.jsx b/platform/ui/src/components/ThumbnailTracked/ThumbnailTracked.jsx index 6ac80d52d..5fd9bb687 100644 --- a/platform/ui/src/components/ThumbnailTracked/ThumbnailTracked.jsx +++ b/platform/ui/src/components/ThumbnailTracked/ThumbnailTracked.jsx @@ -13,6 +13,7 @@ const ThumbnailTracked = ({ numInstances, dragData, onClick, + onClickUntrack, viewportIdentificator, isTracked, isActive, @@ -22,7 +23,7 @@ const ThumbnailTracked = ({ return (
@@ -63,10 +64,9 @@ const ThumbnailTracked = ({
{isTracked && ( - +
+ +
)}