itk-viewer-bootstrap-ui
Version:
[](https://badge.fury.io/js/itk-viewer-bootstrap-ui)  [ • 1.18 kB
JSX
import React, { useEffect, useRef } from 'react'
import { useSelector } from '@xstate/react'
import Container from 'react-bootstrap/Container'
import Nav from 'react-bootstrap/Nav'
import Row from 'react-bootstrap/Row'
import { Collapse } from 'react-bootstrap'
function Panel(props) {
const { children, service } = props
const uiPanel = useRef(null)
const uiDrawer = useRef(null)
const uiCollapsed = useSelector(service, (state) => state.context.uiCollapsed)
useEffect(() => {
service.state.context.uiPanel = uiPanel.current
service.state.context.uiDrawer = uiDrawer.current
}, [uiPanel, uiDrawer, service.state.context])
return (
<div ref={uiPanel}>
<Collapse in={!uiCollapsed}>
<Container fluid>
<Row>
<Nav onSelect={(selectedKey) => alert(`selected ${selectedKey}`)}>
<Nav.Item ref={uiDrawer} className="uiDrawer">
{React.Children.map(children, (child) => {
return React.cloneElement(child, { service })
})}
</Nav.Item>
</Nav>
</Row>
</Container>
</Collapse>
</div>
)
}
export default Panel