ohif-viewer/extensions/default/src/ViewerLayout/NestedToolbar.jsx

42 lines
909 B
React
Raw Normal View History

import React, { useEffect, useState } from 'react';
import PropTypes from 'prop-types';
import { ToolbarButton } from '@ohif/ui';
function NestedToolbar({ children }) {
const [isOpen, setIsOpen] = useState(false);
useEffect(() => {
function closeNestedToolbar() {
if (isOpen) {
setIsOpen(false);
}
}
window.addEventListener('click', closeNestedToolbar);
return () => {
window.removeEventListener('click', closeNestedToolbar);
};
}, [isOpen]);
const dropdownContent = isOpen ? children : undefined;
return (
<ToolbarButton
id="More"
label="More"
icon="tool-more-menu"
onClick={() => {
setIsOpen(!isOpen);
}}
dropdownContent={dropdownContent}
isActive={isOpen}
type="primary"
/>
);
}
NestedToolbar.propTypes = {
children: PropTypes.any.isRequired,
};
export default NestedToolbar;