Skip to content

Commit f873992

Browse files
labdalaPaulHax
andcommitted
feat(getSelectedImageContext): Introduce utility function
Co-authored-by: Paul Elliott <paul.elliott@kitware.com>
1 parent ed712cf commit f873992

5 files changed

Lines changed: 25 additions & 15 deletions

File tree

src/Images/ColorMapIconSelector.jsx

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import Row from 'react-bootstrap/Row'
1010
import Col from 'react-bootstrap/Col'
1111
import OverlayTrigger from 'react-bootstrap/OverlayTrigger'
1212
import Tooltip from 'react-bootstrap/Tooltip'
13+
import getSelectedImageContext from './getSelectedImageContext'
1314

1415
const colorMapIcons = Array.from(ColorMapPresetIcons).map(([name, icon]) => ({
1516
name,
@@ -24,9 +25,11 @@ function ColorMapIconSelector(props) {
2425
service,
2526
(state) => state.context.images.selectedName
2627
)
27-
const selectedActorContext = useSelector(service, (state) =>
28-
state.context.images.actorContext.get(selectedName)
28+
29+
const actorContext = useSelector(service, (state) =>
30+
getSelectedImageContext(state)
2931
)
32+
3033
const imagesLookupTableProxies = useSelector(
3134
service,
3235
(state) => state.context.images.lookupTableProxies
@@ -50,8 +53,8 @@ function ColorMapIconSelector(props) {
5053
}
5154

5255
const currentColorMap = () => {
53-
if (selectedActorContext) {
54-
const component = selectedActorContext.selectedComponent
56+
if (actorContext) {
57+
const component = actorContext.selectedComponent
5558
const lookupTableProxies = imagesLookupTableProxies
5659
if (lookupTableProxies) {
5760
return lookupTableProxies.get(component).getPresetName()
@@ -67,7 +70,7 @@ function ColorMapIconSelector(props) {
6770

6871
const handleChange = (colorMap) => {
6972
const name = selectedName
70-
const componentIndex = selectedActorContext.selectedComponent
73+
const componentIndex = actorContext.selectedComponent
7174
send({
7275
type: 'IMAGE_COLOR_MAP_CHANGED',
7376
data: { name, component: componentIndex, colorMap }

src/Images/ColorRangeInput.jsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import Image from 'react-bootstrap/Image'
99
import OverlayTrigger from 'react-bootstrap/OverlayTrigger'
1010
import Tooltip from 'react-bootstrap/Tooltip'
1111
import cn from 'classnames'
12+
import getSelectedImageContext from './getSelectedImageContext'
1213

1314
function ColorRangeInput(props) {
1415
const { service } = props
@@ -52,7 +53,7 @@ function ColorRangeInput(props) {
5253
)
5354

5455
const actorContext = useSelector(service, (state) =>
55-
state.context.images.actorContext.get(name)
56+
getSelectedImageContext(state)
5657
)
5758

5859
const imageType = actorContext.image?.imageType.componentType

src/Images/LabelMapWeightWidget.jsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { useSelector } from '@xstate/react'
33
import Form from 'react-bootstrap/Form'
44
import MapWeightSelector from './MapWeightSelector'
55
import '../style.css'
6+
import getSelectedImageContext from './getSelectedImageContext'
67

78
function LabelMapWeightWidget({ service }) {
89
const labelImageWeightUIGroup = useRef(null)
@@ -13,9 +14,11 @@ function LabelMapWeightWidget({ service }) {
1314
service,
1415
(state) => state.context.images.selectedName
1516
)
17+
1618
const actorContext = useSelector(service, (state) =>
17-
state.context.images.actorContext.get(state.context.images.selectedName)
19+
getSelectedImageContext(state)
1820
)
21+
1922
const labelImageWeights = useSelector(
2023
service,
2124
(state) =>

src/Images/VolumeRenderingInputs.jsx

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,22 +5,18 @@ import GradientOpacitySlider from './GradientOpacitySlider'
55
import SampleDistanceSlider from './SampleDistanceSlider'
66
import ShadowToggle from './ShadowToggle'
77
import '../style.css'
8+
import getSelectedImageContext from './getSelectedImageContext'
89

910
function VolumeRenderingInputs(props) {
1011
const { service } = props
1112
const volumeRow1 = useRef(null)
1213
const volumeRow2 = useRef(null)
13-
const name = useSelector(
14-
service,
15-
(state) => state.context.images.selectedName
16-
)
1714
const actorContext = useSelector(service, (state) =>
18-
state.context.images.actorContext.get(name)
15+
getSelectedImageContext(state)
1916
)
17+
2018
const volumeMenu = useSelector(service, (state) =>
21-
state.context.images.actorContext
22-
.get(name)
23-
.colorRanges.get(actorContext.selectedComponent)
19+
actorContext.colorRanges.get(actorContext.selectedComponent)
2420
)
2521

2622
const use2D = useSelector(service, (state) => state.context.use2D)
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
function getSelectedImageContext(state) {
2+
return state.context.images.actorContext.get(
3+
state.context.images.selectedName
4+
)
5+
}
6+
7+
export default getSelectedImageContext

0 commit comments

Comments
 (0)