UNPKG

react-use-navigator-permissions

Version:

[![Build Status](https://github.com/JamesIves/react-use-navigator-permissions/workflows/unit-tests/badge.svg)](https://github.com/JamesIves/react-use-navigator-permissions/actions) [![Codecov Coverage](https://codecov.io/gh/JamesIves/react-use-navigator-p

57 lines (47 loc) 1.4 kB
import { useState, useEffect } from 'react'; function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } var useNavigatorPermissions = function useNavigatorPermissions( /** The name of the API you'd like to query. */ name, /** Reference: https://developer.mozilla.org/en-US/docs/Web/API/Permissions/query */ configuration) { var _useState = useState(false), error = _useState[0], setError = _useState[1]; var _useState2 = useState(''), permitted = _useState2[0], setPermitted = _useState2[1]; useEffect(function () { if (typeof window === 'undefined') { return; } if (window.navigator && window.navigator.permissions) { window.navigator.permissions.query(_extends({ name: name }, configuration)).then(function (status) { setPermitted(status.state); }); } else { setError(true); } }, [name, configuration]); return { status: permitted, error: error }; }; export default useNavigatorPermissions; //# sourceMappingURL=react-use-navigator-permissions.esm.js.map