bubble up thumbnail "untrack" clicks to parent "StudyBrowser" component w/ prop drilling
This commit is contained in:
parent
0573cb18e6
commit
ffbf7b4a76
@ -50,9 +50,6 @@ function PanelStudyBrowserTracking({
|
|||||||
StudyInstanceUID,
|
StudyInstanceUID,
|
||||||
SeriesInstanceUID,
|
SeriesInstanceUID,
|
||||||
});
|
});
|
||||||
|
|
||||||
console.log('PANEL:', measurement);
|
|
||||||
// console.log('Mapped:', annotation);
|
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -159,7 +156,7 @@ function PanelStudyBrowserTracking({
|
|||||||
changedDisplaySets,
|
changedDisplaySets,
|
||||||
thumbnailImageSrcMap,
|
thumbnailImageSrcMap,
|
||||||
trackedSeries,
|
trackedSeries,
|
||||||
viewports,
|
viewports
|
||||||
);
|
);
|
||||||
|
|
||||||
setDisplaySets(mappedDisplaySets);
|
setDisplaySets(mappedDisplaySets);
|
||||||
@ -214,6 +211,9 @@ function PanelStudyBrowserTracking({
|
|||||||
onClickTab={clickedTabName => {
|
onClickTab={clickedTabName => {
|
||||||
setActiveTabName(clickedTabName);
|
setActiveTabName(clickedTabName);
|
||||||
}}
|
}}
|
||||||
|
onClickUntrack={displaySetInstanceUID =>
|
||||||
|
console.log(displaySetInstanceUID)
|
||||||
|
}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -40,11 +40,3 @@
|
|||||||
.invisible-scrollbar::-webkit-scrollbar-thumb:window-inactive {
|
.invisible-scrollbar::-webkit-scrollbar-thumb:window-inactive {
|
||||||
@apply hidden;
|
@apply hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
.showExcludeButtonOnHover .excludeButton {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.showExcludeButtonOnHover:hover .excludeButton {
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
|
|||||||
@ -25,6 +25,7 @@ const StudyBrowser = ({
|
|||||||
onClickTab,
|
onClickTab,
|
||||||
onClickStudy,
|
onClickStudy,
|
||||||
onClickThumbnail,
|
onClickThumbnail,
|
||||||
|
onClickUntrack,
|
||||||
}) => {
|
}) => {
|
||||||
const [thumbnailActive, setThumbnailActive] = useState(null);
|
const [thumbnailActive, setThumbnailActive] = useState(null);
|
||||||
|
|
||||||
@ -58,15 +59,16 @@ const StudyBrowser = ({
|
|||||||
<ThumbnailList
|
<ThumbnailList
|
||||||
thumbnails={displaySets}
|
thumbnails={displaySets}
|
||||||
thumbnailActive={thumbnailActive}
|
thumbnailActive={thumbnailActive}
|
||||||
onThumbnailClick={thumbnailId => {
|
onThumbnailClick={displaySetInstanceUID => {
|
||||||
setThumbnailActive(
|
setThumbnailActive(
|
||||||
thumbnailId === thumbnailActive ? null : thumbnailId
|
displaySetInstanceUID === thumbnailActive
|
||||||
|
? null
|
||||||
|
: displaySetInstanceUID
|
||||||
);
|
);
|
||||||
|
onClickThumbnail(displaySetInstanceUID);
|
||||||
if (onClickThumbnail) {
|
}}
|
||||||
// TODO: what is thumbnailId? Should pass display set instead
|
onClickUntrack={displaySetInstanceUID => {
|
||||||
onClickThumbnail(thumbnailId);
|
onClickUntrack(displaySetInstanceUID);
|
||||||
}
|
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
@ -116,6 +118,7 @@ StudyBrowser.propTypes = {
|
|||||||
onClickTab: PropTypes.func.isRequired,
|
onClickTab: PropTypes.func.isRequired,
|
||||||
onClickStudy: PropTypes.func,
|
onClickStudy: PropTypes.func,
|
||||||
onClickThumbnail: PropTypes.func,
|
onClickThumbnail: PropTypes.func,
|
||||||
|
onClickUntrack: PropTypes.func,
|
||||||
activeTabName: PropTypes.string.isRequired,
|
activeTabName: PropTypes.string.isRequired,
|
||||||
expandedStudyInstanceUIDs: PropTypes.arrayOf(PropTypes.string).isRequired,
|
expandedStudyInstanceUIDs: PropTypes.arrayOf(PropTypes.string).isRequired,
|
||||||
tabs: PropTypes.arrayOf(
|
tabs: PropTypes.arrayOf(
|
||||||
@ -164,4 +167,13 @@ StudyBrowser.propTypes = {
|
|||||||
),
|
),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const noop = () => {};
|
||||||
|
|
||||||
|
StudyBrowser.defaultProps = {
|
||||||
|
onClickTab: noop,
|
||||||
|
onClickStudy: noop,
|
||||||
|
onClickThumbnail: noop,
|
||||||
|
onClickUntrack: noop,
|
||||||
|
};
|
||||||
|
|
||||||
export default StudyBrowser;
|
export default StudyBrowser;
|
||||||
|
|||||||
@ -7,6 +7,7 @@ const ThumbnailList = ({
|
|||||||
thumbnails,
|
thumbnails,
|
||||||
thumbnailActive,
|
thumbnailActive,
|
||||||
onThumbnailClick,
|
onThumbnailClick,
|
||||||
|
onClickUntrack,
|
||||||
}) => {
|
}) => {
|
||||||
return (
|
return (
|
||||||
<div className="py-3 bg-black">
|
<div className="py-3 bg-black">
|
||||||
@ -57,6 +58,7 @@ const ThumbnailList = ({
|
|||||||
isTracked={isTracked}
|
isTracked={isTracked}
|
||||||
isActive={isActive}
|
isActive={isActive}
|
||||||
onClick={() => onThumbnailClick(displaySetInstanceUID)}
|
onClick={() => onThumbnailClick(displaySetInstanceUID)}
|
||||||
|
onClickUntrack={() => onClickUntrack(displaySetInstanceUID)}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
case 'thumbnailNoImage':
|
case 'thumbnailNoImage':
|
||||||
@ -111,6 +113,7 @@ ThumbnailList.propTypes = {
|
|||||||
),
|
),
|
||||||
thumbnailActive: PropTypes.string,
|
thumbnailActive: PropTypes.string,
|
||||||
onThumbnailClick: PropTypes.func,
|
onThumbnailClick: PropTypes.func,
|
||||||
|
onClickUntrack: PropTypes.func.isRequired,
|
||||||
};
|
};
|
||||||
|
|
||||||
export default ThumbnailList;
|
export default ThumbnailList;
|
||||||
|
|||||||
@ -13,6 +13,7 @@ const ThumbnailTracked = ({
|
|||||||
numInstances,
|
numInstances,
|
||||||
dragData,
|
dragData,
|
||||||
onClick,
|
onClick,
|
||||||
|
onClickUntrack,
|
||||||
viewportIdentificator,
|
viewportIdentificator,
|
||||||
isTracked,
|
isTracked,
|
||||||
isActive,
|
isActive,
|
||||||
@ -22,7 +23,7 @@ const ThumbnailTracked = ({
|
|||||||
return (
|
return (
|
||||||
<div
|
<div
|
||||||
className={classnames(
|
className={classnames(
|
||||||
'flex flex-row flex-1 px-3 py-2 showExcludeButtonOnHover cursor-pointer outline-none',
|
'flex flex-row flex-1 px-3 py-2 cursor-pointer outline-none',
|
||||||
className
|
className
|
||||||
)}
|
)}
|
||||||
>
|
>
|
||||||
@ -63,10 +64,9 @@ const ThumbnailTracked = ({
|
|||||||
</Tooltip>
|
</Tooltip>
|
||||||
</div>
|
</div>
|
||||||
{isTracked && (
|
{isTracked && (
|
||||||
<Icon
|
<div onClick={onClickUntrack}>
|
||||||
name="cancel"
|
<Icon name="cancel" className="w-4 text-primary-active" />
|
||||||
className="w-4 text-primary-active excludeButton"
|
</div>
|
||||||
/>
|
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
<Thumbnail
|
<Thumbnail
|
||||||
@ -102,6 +102,7 @@ ThumbnailTracked.propTypes = {
|
|||||||
seriesNumber: PropTypes.number.isRequired,
|
seriesNumber: PropTypes.number.isRequired,
|
||||||
numInstances: PropTypes.number.isRequired,
|
numInstances: PropTypes.number.isRequired,
|
||||||
onClick: PropTypes.func.isRequired,
|
onClick: PropTypes.func.isRequired,
|
||||||
|
onClickUntrack: PropTypes.func.isRequired,
|
||||||
viewportIdentificator: PropTypes.string,
|
viewportIdentificator: PropTypes.string,
|
||||||
isTracked: PropTypes.bool,
|
isTracked: PropTypes.bool,
|
||||||
isActive: PropTypes.bool.isRequired,
|
isActive: PropTypes.bool.isRequired,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user