Allow OHIFCornerstoneExtension to have children passed into it upon declaration
This commit is contained in:
parent
3d1eff07ad
commit
35fd77573b
@ -21,3 +21,5 @@ npm-debug.log*
|
|||||||
yarn-debug.log*
|
yarn-debug.log*
|
||||||
yarn-error.log*
|
yarn-error.log*
|
||||||
.idea
|
.idea
|
||||||
|
|
||||||
|
yalc.lock
|
||||||
@ -26,7 +26,7 @@
|
|||||||
"react-dom": "^15.0.0 || ^16.0.0",
|
"react-dom": "^15.0.0 || ^16.0.0",
|
||||||
"react-redux": "^6.0.0",
|
"react-redux": "^6.0.0",
|
||||||
"redux": "^4.0.1",
|
"redux": "^4.0.1",
|
||||||
"ohif-core": "^0.2.6"
|
"ohif-core": "^0.2.7"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@babel/core": "^7.2.2",
|
"@babel/core": "^7.2.2",
|
||||||
|
|||||||
@ -1,6 +1,29 @@
|
|||||||
|
import React, { Component } from 'react';
|
||||||
import OHIFCornerstoneViewport from './OHIFCornerstoneViewport.js';
|
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 <WrappedComponent children={children} { ...props } />;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
// 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 {
|
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 (?)
|
* 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() {
|
getViewportModule() {
|
||||||
|
if (this.children && this.children.viewport) {
|
||||||
|
return withChildren(OHIFCornerstoneViewport, this.children.viewport);
|
||||||
|
}
|
||||||
|
|
||||||
return OHIFCornerstoneViewport;
|
return OHIFCornerstoneViewport;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -41,7 +41,8 @@ class OHIFCornerstoneViewport extends Component {
|
|||||||
static propTypes = {
|
static propTypes = {
|
||||||
studies: PropTypes.object,
|
studies: PropTypes.object,
|
||||||
displaySet: PropTypes.object,
|
displaySet: PropTypes.object,
|
||||||
viewportIndex: PropTypes.number
|
viewportIndex: PropTypes.number,
|
||||||
|
children: PropTypes.node
|
||||||
};
|
};
|
||||||
|
|
||||||
static id = 'OHIFCornerstoneViewport';
|
static id = 'OHIFCornerstoneViewport';
|
||||||
@ -160,6 +161,7 @@ class OHIFCornerstoneViewport extends Component {
|
|||||||
viewportIndex={this.props.viewportIndex}
|
viewportIndex={this.props.viewportIndex}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
|
{this.props.children}
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -4563,22 +4563,24 @@ react-cornerstone-viewport@^0.1.9:
|
|||||||
stylus "^0.54.5"
|
stylus "^0.54.5"
|
||||||
|
|
||||||
react-dom@^16.6.3:
|
react-dom@^16.6.3:
|
||||||
version "16.6.3"
|
version "16.8.1"
|
||||||
resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.6.3.tgz#8fa7ba6883c85211b8da2d0efeffc9d3825cccc0"
|
resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.8.1.tgz#ec860f98853d09d39bafd3a6f1e12389d283dbb4"
|
||||||
|
integrity sha512-N74IZUrPt6UiDjXaO7UbDDFXeUXnVhZzeRLy/6iqqN1ipfjrhR60Bp5NuBK+rv3GMdqdIuwIl22u1SYwf330bg==
|
||||||
dependencies:
|
dependencies:
|
||||||
loose-envify "^1.1.0"
|
loose-envify "^1.1.0"
|
||||||
object-assign "^4.1.1"
|
object-assign "^4.1.1"
|
||||||
prop-types "^15.6.2"
|
prop-types "^15.6.2"
|
||||||
scheduler "^0.11.2"
|
scheduler "^0.13.1"
|
||||||
|
|
||||||
react@^16.6.3:
|
react@^16.6.3:
|
||||||
version "16.6.3"
|
version "16.8.1"
|
||||||
resolved "https://registry.yarnpkg.com/react/-/react-16.6.3.tgz#25d77c91911d6bbdd23db41e70fb094cc1e0871c"
|
resolved "https://registry.yarnpkg.com/react/-/react-16.8.1.tgz#ae11831f6cb2a05d58603a976afc8a558e852c4a"
|
||||||
|
integrity sha512-wLw5CFGPdo7p/AgteFz7GblI2JPOos0+biSoxf1FPsGxWQZdN/pj6oToJs1crn61DL3Ln7mN86uZ4j74p31ELQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
loose-envify "^1.1.0"
|
loose-envify "^1.1.0"
|
||||||
object-assign "^4.1.1"
|
object-assign "^4.1.1"
|
||||||
prop-types "^15.6.2"
|
prop-types "^15.6.2"
|
||||||
scheduler "^0.11.2"
|
scheduler "^0.13.1"
|
||||||
|
|
||||||
read-pkg-up@^2.0.0:
|
read-pkg-up@^2.0.0:
|
||||||
version "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"
|
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
|
||||||
integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
|
integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
|
||||||
|
|
||||||
scheduler@^0.11.2:
|
scheduler@^0.13.1:
|
||||||
version "0.11.3"
|
version "0.13.1"
|
||||||
resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.11.3.tgz#b5769b90cf8b1464f3f3cfcafe8e3cd7555a2d6b"
|
resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.13.1.tgz#1a217df1bfaabaf4f1b92a9127d5d732d85a9591"
|
||||||
|
integrity sha512-VJKOkiKIN2/6NOoexuypwSrybx13MY7NSy9RNt8wPvZDMRT1CW6qlpF5jXRToXNHz3uWzbm2elNpZfXfGPqP9A==
|
||||||
dependencies:
|
dependencies:
|
||||||
loose-envify "^1.1.0"
|
loose-envify "^1.1.0"
|
||||||
object-assign "^4.1.1"
|
object-assign "^4.1.1"
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
export default '5bb64fd9254dbd2dd152424fcf584d3a34b05c8a';
|
export default '3d1eff07addbc53ced948c42cac8bd351ff083df';
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user