itk-viewer-material-ui
Version:
[](https://badge.fury.io/js/itk-viewer-material-ui)
45 lines (40 loc) • 1.3 kB
JSX
import React, { useEffect, useRef } from 'react'
import { useActor } from '@xstate/react'
import BlendModeSelector from './BlendModeSelector'
import GradientOpacitySlider from './GradientOpacitySlider'
import SampleDistanceSlider from './SampleDistanceSlider'
import ShadowToggle from './ShadowToggle'
import '../style.css'
function VolumeRenderingInputs(props) {
const { service } = props
const [state] = useActor(service)
const volumeRow1 = useRef(null)
const volumeRow2 = useRef(null)
const name = state.context.images.selectedName
const actorContext = state.context.images.actorContext.get(name)
useEffect(() => {
state.context.images.volumeRow1 = volumeRow1.current
state.context.images.volumeRow2 = volumeRow2.current
}, [])
return !state.context.use2D ? (
<div>
<div
ref={volumeRow1}
className={`uiRow ${
actorContext.blendMode !== 'Composite' && 'hidden'
}`}
style={{ whiteSpace: 'nowrap' }}
>
<ShadowToggle {...props} />
<GradientOpacitySlider {...props} />
</div>
<div ref={volumeRow2} className="uiRow">
<SampleDistanceSlider {...props} />
<BlendModeSelector {...props} />
</div>
</div>
) : (
<div />
)
}
export default VolumeRenderingInputs