UNPKG

mirador

Version:

An open-source, web-based 'multi-up' viewer that supports zoom-pan-rotate functionality, ability to display/compare simple images, and images with annotations.

37 lines (30 loc) 933 B
import { useRef, useEffect } from 'react'; import PropTypes from 'prop-types'; /** */ export function NewBrowserWindow({ depWindow = undefined, features = undefined, name = undefined, onClose, url, }) { const released = useRef(false); useEffect(() => { const newWindow = (depWindow || window).open(url, name, features); const checkIfWindowClosed = setInterval(() => { if (!released.current && (!newWindow || newWindow.closed)) { released.current = true; clearInterval(checkIfWindowClosed); onClose(url); } }, 250); return () => { clearInterval(checkIfWindowClosed); newWindow.close(); }; }); return null; } NewBrowserWindow.propTypes = { depWindow: PropTypes.object, // eslint-disable-line react/forbid-prop-types features: PropTypes.string, name: PropTypes.string, onClose: PropTypes.func.isRequired, url: PropTypes.string.isRequired, };