UNPKG

itk-viewer-bootstrap-ui

Version:

[![npm version](https://badge.fury.io/js/itk-viewer-bootstrap-ui.svg)](https://badge.fury.io/js/itk-viewer-bootstrap-ui) ![react-bootstrap version](https://img.shields.io/badge/React%20Bootstap-%3E=1.6.1-brightgreen.svg) [![Documentation Status](https://r

39 lines (34 loc) 1.18 kB
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