diff --git a/Packages-react/extensions/ohif-cornerstone-extension/.gitignore b/Packages-react/extensions/ohif-cornerstone-extension/.gitignore index 2ac570343..ebe1583ea 100644 --- a/Packages-react/extensions/ohif-cornerstone-extension/.gitignore +++ b/Packages-react/extensions/ohif-cornerstone-extension/.gitignore @@ -21,3 +21,5 @@ npm-debug.log* yarn-debug.log* yarn-error.log* .idea + +yalc.lock \ No newline at end of file diff --git a/Packages-react/extensions/ohif-cornerstone-extension/package.json b/Packages-react/extensions/ohif-cornerstone-extension/package.json index bfaa42d37..84e4ce1af 100644 --- a/Packages-react/extensions/ohif-cornerstone-extension/package.json +++ b/Packages-react/extensions/ohif-cornerstone-extension/package.json @@ -26,7 +26,7 @@ "react-dom": "^15.0.0 || ^16.0.0", "react-redux": "^6.0.0", "redux": "^4.0.1", - "ohif-core": "^0.2.6" + "ohif-core": "^0.2.7" }, "devDependencies": { "@babel/core": "^7.2.2", diff --git a/Packages-react/extensions/ohif-cornerstone-extension/src/OHIFCornerstoneExtension.js b/Packages-react/extensions/ohif-cornerstone-extension/src/OHIFCornerstoneExtension.js index d8cc74834..1ba733998 100644 --- a/Packages-react/extensions/ohif-cornerstone-extension/src/OHIFCornerstoneExtension.js +++ b/Packages-react/extensions/ohif-cornerstone-extension/src/OHIFCornerstoneExtension.js @@ -1,6 +1,29 @@ +import React, { Component } from 'react'; import OHIFCornerstoneViewport from './OHIFCornerstoneViewport.js'; +/** + * Pass in 'children' to a React component. The purpose of this is to + * allow end users of this extension to pass in components which will + * be rendered on top of the base components. + * + * @param WrappedComponent + * @param children + * @return {function(*): *} + */ +function withChildren(WrappedComponent, children) { + return function(props) { + return ; + }; +} + +// Note: If you are authoring extensions which use stateful libraries (e.g. cornerstone-core, react-redux) as peerDependencies and are also duplicated at the application level, try using 'yalc' to link it to the application, rather than yarn link. This can help fix 'module not found' issues. +// https://github.com/whitecolor/yalc + export default class OHIFCornerstoneExtension { + constructor(children) { + this.children = children; + } + /** * Extension ID is a unique id, might be used for namespacing extension specific redux actions/reducers (?) */ @@ -9,6 +32,10 @@ export default class OHIFCornerstoneExtension { } getViewportModule() { + if (this.children && this.children.viewport) { + return withChildren(OHIFCornerstoneViewport, this.children.viewport); + } + return OHIFCornerstoneViewport; } diff --git a/Packages-react/extensions/ohif-cornerstone-extension/src/OHIFCornerstoneViewport.js b/Packages-react/extensions/ohif-cornerstone-extension/src/OHIFCornerstoneViewport.js index 8f4f70b98..18374b87f 100644 --- a/Packages-react/extensions/ohif-cornerstone-extension/src/OHIFCornerstoneViewport.js +++ b/Packages-react/extensions/ohif-cornerstone-extension/src/OHIFCornerstoneViewport.js @@ -41,7 +41,8 @@ class OHIFCornerstoneViewport extends Component { static propTypes = { studies: PropTypes.object, displaySet: PropTypes.object, - viewportIndex: PropTypes.number + viewportIndex: PropTypes.number, + children: PropTypes.node }; static id = 'OHIFCornerstoneViewport'; @@ -160,6 +161,7 @@ class OHIFCornerstoneViewport extends Component { viewportIndex={this.props.viewportIndex} /> )} + {this.props.children} ); } diff --git a/Packages-react/extensions/ohif-cornerstone-extension/yarn.lock b/Packages-react/extensions/ohif-cornerstone-extension/yarn.lock index b990213c3..0457d50ce 100644 --- a/Packages-react/extensions/ohif-cornerstone-extension/yarn.lock +++ b/Packages-react/extensions/ohif-cornerstone-extension/yarn.lock @@ -4563,22 +4563,24 @@ react-cornerstone-viewport@^0.1.9: stylus "^0.54.5" react-dom@^16.6.3: - version "16.6.3" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.6.3.tgz#8fa7ba6883c85211b8da2d0efeffc9d3825cccc0" + version "16.8.1" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.8.1.tgz#ec860f98853d09d39bafd3a6f1e12389d283dbb4" + integrity sha512-N74IZUrPt6UiDjXaO7UbDDFXeUXnVhZzeRLy/6iqqN1ipfjrhR60Bp5NuBK+rv3GMdqdIuwIl22u1SYwf330bg== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" prop-types "^15.6.2" - scheduler "^0.11.2" + scheduler "^0.13.1" react@^16.6.3: - version "16.6.3" - resolved "https://registry.yarnpkg.com/react/-/react-16.6.3.tgz#25d77c91911d6bbdd23db41e70fb094cc1e0871c" + version "16.8.1" + resolved "https://registry.yarnpkg.com/react/-/react-16.8.1.tgz#ae11831f6cb2a05d58603a976afc8a558e852c4a" + integrity sha512-wLw5CFGPdo7p/AgteFz7GblI2JPOos0+biSoxf1FPsGxWQZdN/pj6oToJs1crn61DL3Ln7mN86uZ4j74p31ELQ== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" prop-types "^15.6.2" - scheduler "^0.11.2" + scheduler "^0.13.1" read-pkg-up@^2.0.0: version "2.0.0" @@ -4990,9 +4992,10 @@ sax@~1.2.4: resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== -scheduler@^0.11.2: - version "0.11.3" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.11.3.tgz#b5769b90cf8b1464f3f3cfcafe8e3cd7555a2d6b" +scheduler@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.13.1.tgz#1a217df1bfaabaf4f1b92a9127d5d732d85a9591" + integrity sha512-VJKOkiKIN2/6NOoexuypwSrybx13MY7NSy9RNt8wPvZDMRT1CW6qlpF5jXRToXNHz3uWzbm2elNpZfXfGPqP9A== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" diff --git a/Packages-react/ohif-viewer/src/sha.js b/Packages-react/ohif-viewer/src/sha.js index dbedc2200..6b6313be3 100644 --- a/Packages-react/ohif-viewer/src/sha.js +++ b/Packages-react/ohif-viewer/src/sha.js @@ -1 +1 @@ -export default '5bb64fd9254dbd2dd152424fcf584d3a34b05c8a'; +export default '3d1eff07addbc53ced948c42cac8bd351ff083df';