src/ui/Header/Header.jsx (47 lines of code) (raw):

/* * Copyright 2022 EPAM Systems, Inc. (https://www.epam.com/) * SPDX-License-Identifier: Apache-2.0 */ import { useState } from 'react'; import { useDispatch, useSelector } from 'react-redux'; import { UIButton } from '../Button/Button'; import { useOnEvent } from '../hooks/useOnEvent'; import { ModalSelectFile } from '../Modals/ModalSelectFile'; import { OpenFromURLComponent, OpenDemoComponent } from '../FileReaders'; import { Tooltip } from '../Tooltip/Tooltip'; import { UiSaveMenu } from '../OpenFile/UiSaveMenu'; import { UiReportMenu } from '../OpenFile/UiReportMenu'; import { MriEvents } from '../../engine/lib/enums'; import css from './Header.module.css'; import StoreActionType from '../../store/ActionTypes'; export function Header() { const [showOpenFromDeviceModal, setShowOpenFromDeviceModal] = useState(false); const { showModalSelectFiles } = useSelector((state) => state); const dispatch = useDispatch(); const onButtonOpenLocalFileClick = () => { setShowOpenFromDeviceModal(true); dispatch({ type: StoreActionType.SET_SHOW_MODAL_SELECT_FILES, showModalSelectFiles: true }); dispatch({ type: StoreActionType.SET_SHOW_WINDOW_RANGE, showWindowRangeSlider: false }); dispatch({ type: StoreActionType.SET_SHOW_WINDOW_RANGE, showWindowRangeSlider: false }); }; const onHide = () => { setShowOpenFromDeviceModal(false); }; useOnEvent(MriEvents.VOLUME_LOAD_SUCCESS, onHide); return ( <header className={css.header}> <UiSaveMenu /> <UiReportMenu /> <Tooltip content="Open file or folder"> <UIButton icon="folder" handler={onButtonOpenLocalFileClick} cx={css.header_button} /> </Tooltip> <Tooltip content="Open external URL"> <OpenFromURLComponent cx={css.header_button} /> </Tooltip> <Tooltip content="Open demo data"> <OpenDemoComponent cx={css.header_button} /> </Tooltip> {showOpenFromDeviceModal && <ModalSelectFile stateVis={showModalSelectFiles} onHide={onHide} />} </header> ); }