From a8305772d0fbec506549ad7ea08504a8bc3a4f39 Mon Sep 17 00:00:00 2001 From: Igor Octaviano Date: Thu, 4 Jun 2020 07:25:19 -0300 Subject: [PATCH] =?UTF-8?q?fix:=20=F0=9F=90=9B=20Infinite=20frame=20index?= =?UTF-8?q?=20change=20when=20quickly=20jumping=20between=20(#1734)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Remove debounce and use react-cornerstone-viewport native debounce time * fix: 🐛 Infinite frame index change when quickly jumping between This change removes the debounced callback function from the app and instead uses the native debounce time from react-cornerstone-viewport. This change allows the application to set its state in a more controled way. ✅ Closes: #1733 * Bump rcv version Co-authored-by: James Petts --- extensions/cornerstone/package.json | 2 +- extensions/cornerstone/src/OHIFCornerstoneViewport.js | 9 +++++---- yarn.lock | 8 ++++---- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 43be1cfdc..69da1b1cf 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -51,6 +51,6 @@ "classnames": "^2.2.6", "lodash.merge": "^4.6.2", "lodash.throttle": "^4.1.1", - "react-cornerstone-viewport": "2.3.8" + "react-cornerstone-viewport": "2.3.9" } } diff --git a/extensions/cornerstone/src/OHIFCornerstoneViewport.js b/extensions/cornerstone/src/OHIFCornerstoneViewport.js index 1a8e4a3bc..1c332ef36 100644 --- a/extensions/cornerstone/src/OHIFCornerstoneViewport.js +++ b/extensions/cornerstone/src/OHIFCornerstoneViewport.js @@ -4,7 +4,6 @@ import ConnectedCornerstoneViewport from './ConnectedCornerstoneViewport'; import OHIF from '@ohif/core'; import PropTypes from 'prop-types'; import cornerstone from 'cornerstone-core'; -import debounce from 'lodash.debounce'; const { StackManager } = OHIF.utils; @@ -216,9 +215,10 @@ class OHIFCornerstoneViewport extends Component { }); } - const debouncedNewImageHandler = debounce(({ currentImageIdIndex, sopInstanceUid }) => { + const newImageHandler = ({ currentImageIdIndex, sopInstanceUid }) => { const { displaySet } = this.props.viewportData; const { StudyInstanceUID } = displaySet; + if (currentImageIdIndex > 0) { this.props.onNewImage({ StudyInstanceUID, @@ -227,7 +227,7 @@ class OHIFCornerstoneViewport extends Component { activeViewportIndex: viewportIndex, }); } - }, 700); + }; return ( <> @@ -235,7 +235,8 @@ class OHIFCornerstoneViewport extends Component { viewportIndex={viewportIndex} imageIds={imageIds} imageIdIndex={currentImageIdIndex} - onNewImage={debouncedNewImageHandler} + onNewImage={newImageHandler} + onNewImageDebounceTime={700} // ~~ Connected (From REDUX) // frameRate={frameRate} // isPlaying={false} diff --git a/yarn.lock b/yarn.lock index f774efc57..3bd9b1069 100644 --- a/yarn.lock +++ b/yarn.lock @@ -15603,10 +15603,10 @@ react-codemirror2@^6.0.0: resolved "https://registry.yarnpkg.com/react-codemirror2/-/react-codemirror2-6.0.0.tgz#180065df57a64026026cde569a9708fdf7656525" integrity sha512-D7y9qZ05FbUh9blqECaJMdDwKluQiO3A9xB+fssd5jKM7YAXucRuEOlX32mJQumUvHUkHRHqXIPBjm6g0FW0Ag== -react-cornerstone-viewport@2.3.8: - version "2.3.8" - resolved "https://registry.yarnpkg.com/react-cornerstone-viewport/-/react-cornerstone-viewport-2.3.8.tgz#7af8360f29bca986ae4e36b4e503269b88ddc52f" - integrity sha512-aiG2uVNrDY6SQx4t/HBxIA3zsMsCwT+6TpcXK9qSSoXhs+X6OTmYEKncWUqL0jtxU1yfh6JTUz8ARTg03gtF+A== +react-cornerstone-viewport@2.3.9: + version "2.3.9" + resolved "https://registry.yarnpkg.com/react-cornerstone-viewport/-/react-cornerstone-viewport-2.3.9.tgz#f9761da8e536f0a217137c6ca1a983f5882249f9" + integrity sha512-qrhq8CbX/jq6b93cQjV2qC/mhHOvFBpxzxcHlvHzEQZt/rmRMcaYxCqjpNaNbUmmBu61wNkxesUVsggkPTTcqg== dependencies: classnames "^2.2.6" date-fns "^2.2.1"