UNPKG

3.07 kBJavaScriptView Raw
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports["default"] = void 0;
7
8var _react = require("react");
9
10var _createHandlerSetter5 = _interopRequireDefault(require("./utils/createHandlerSetter"));
11
12var _createCbSetterErrorProxy = _interopRequireDefault(require("./utils/createCbSetterErrorProxy"));
13
14var _geolocationStandardOptions = _interopRequireDefault(require("./utils/geolocationStandardOptions"));
15
16function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
17
18function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
19
20function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
21
22function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
23
24function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
25
26var useGeolocationEvents = function useGeolocationEvents() {
27 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _geolocationStandardOptions["default"];
28 var watchId = (0, _react.useRef)();
29
30 var _createHandlerSetter = (0, _createHandlerSetter5["default"])(),
31 _createHandlerSetter2 = _slicedToArray(_createHandlerSetter, 2),
32 onChangeRef = _createHandlerSetter2[0],
33 setOnChangeRef = _createHandlerSetter2[1];
34
35 var _createHandlerSetter3 = (0, _createHandlerSetter5["default"])(),
36 _createHandlerSetter4 = _slicedToArray(_createHandlerSetter3, 2),
37 onErrorRef = _createHandlerSetter4[0],
38 setOnErrorRef = _createHandlerSetter4[1];
39
40 var isSupported = typeof window !== 'undefined' && 'geolocation' in window.navigator;
41 (0, _react.useEffect)(function () {
42 var onSuccess = function onSuccess(successEvent) {
43 if (onChangeRef.current) {
44 onChangeRef.current(successEvent);
45 }
46 };
47
48 var onError = function onError(err) {
49 if (onErrorRef.current) {
50 onErrorRef.current(err);
51 }
52 };
53
54 if (isSupported) {
55 watchId.current = window.navigator.geolocation.watchPosition(onSuccess, onError, options);
56 }
57
58 return function () {
59 if (isSupported) {
60 window.navigator.geolocation.clearWatch(watchId.current);
61 }
62 };
63 }, []);
64 return !isSupported ? (0, _createCbSetterErrorProxy["default"])('The Geolocation API is not supported') : Object.freeze({
65 isSupported: isSupported,
66 onChange: setOnChangeRef,
67 onError: setOnErrorRef
68 });
69};
70
71var _default = useGeolocationEvents;
72exports["default"] = _default;
73//# sourceMappingURL=useGeolocationEvents.js.map