From 729efb6d766e0f72f1fd8adefbca6fb46b355b2b Mon Sep 17 00:00:00 2001 From: Michael Andersen <32403382+Michael-Andersen@users.noreply.github.com> Date: Fri, 14 Jun 2024 12:55:09 -0400 Subject: [PATCH] fix(pdf-viewport): Allow Drag and Drop on PDF Viewport (#4225) Co-authored-by: Michael Andersen --- .../viewports/OHIFCornerstonePdfViewport.css | 11 ++++++++ .../viewports/OHIFCornerstonePdfViewport.tsx | 25 +++++++++++++++++-- 2 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 extensions/dicom-pdf/src/viewports/OHIFCornerstonePdfViewport.css diff --git a/extensions/dicom-pdf/src/viewports/OHIFCornerstonePdfViewport.css b/extensions/dicom-pdf/src/viewports/OHIFCornerstonePdfViewport.css new file mode 100644 index 000000000..1837c2192 --- /dev/null +++ b/extensions/dicom-pdf/src/viewports/OHIFCornerstonePdfViewport.css @@ -0,0 +1,11 @@ +.pdf-no-click { + pointer-events: none; + height: 100%; + width: 100%; +} + +.pdf-yes-click { + pointer-events: auto; + height: 100%; + width: 100%; +} diff --git a/extensions/dicom-pdf/src/viewports/OHIFCornerstonePdfViewport.tsx b/extensions/dicom-pdf/src/viewports/OHIFCornerstonePdfViewport.tsx index e4e2bac4b..8c60fd92a 100644 --- a/extensions/dicom-pdf/src/viewports/OHIFCornerstonePdfViewport.tsx +++ b/extensions/dicom-pdf/src/viewports/OHIFCornerstonePdfViewport.tsx @@ -1,9 +1,27 @@ import React, { useEffect, useState } from 'react'; import PropTypes from 'prop-types'; +import './OHIFCornerstonePdfViewport.css'; function OHIFCornerstonePdfViewport({ displaySets }) { const [url, setUrl] = useState(null); + useEffect(() => { + document.body.addEventListener('drag', makePdfDropTarget); + return function cleanup() { + document.body.removeEventListener('drag', makePdfDropTarget); + }; + }, []); + + const [style, setStyle] = useState('pdf-yes-click'); + + const makePdfScrollable = () => { + setStyle('pdf-yes-click'); + }; + + const makePdfDropTarget = () => { + setStyle('pdf-no-click'); + }; + if (displaySets && displaySets.length > 1) { throw new Error( 'OHIFCornerstonePdfViewport: only one display set is supported for dicom pdf right now' @@ -21,11 +39,14 @@ function OHIFCornerstonePdfViewport({ displaySets }) { }, [pdfUrl]); return ( -
+
No online PDF viewer installed