import { useEffect, useState } from 'react'; import { off, on } from './util'; var noop = function () { }; var usePermission = function (permissionDesc) { var mounted = true; var permissionStatus = null; var _a = useState(''), state = _a[0], setState = _a[1]; var onChange = function () { if (mounted && permissionStatus) { setState(permissionStatus.state); } }; var changeState = function () { onChange(); on(permissionStatus, 'change', onChange); }; useEffect(function () { navigator.permissions .query(permissionDesc) .then(function (status) { permissionStatus = status; changeState(); }) .catch(noop); return function () { mounted = false; permissionStatus && off(permissionStatus, 'change', onChange); }; }, []); return state; }; export default usePermission;