@dfds-ui/hooks 2.0.7 → 2.0.8-alpha.bbb0ff54
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -2
- package/cjs/index.d.ts +0 -6
- package/cjs/index.js +0 -60
- package/cjs/useDimensions.d.ts +0 -16
- package/cjs/useDimensions.js +0 -76
- package/cjs/useForwardedRef.d.ts +0 -3
- package/cjs/useForwardedRef.js +0 -24
- package/cjs/useGoogleReCaptchaV3.d.ts +0 -18
- package/cjs/useGoogleReCaptchaV3.js +0 -63
- package/cjs/useOffline.d.ts +0 -5
- package/cjs/useOffline.js +0 -36
- package/cjs/useResizeObserver.d.ts +0 -2
- package/cjs/useResizeObserver.js +0 -10
- package/cjs/useScript.d.ts +0 -8
- package/cjs/useScript.js +0 -112
- package/index.d.ts +0 -6
- package/index.js +0 -6
- package/useDimensions.d.ts +0 -16
- package/useDimensions.js +0 -75
- package/useForwardedRef.d.ts +0 -3
- package/useForwardedRef.js +0 -16
- package/useGoogleReCaptchaV3.d.ts +0 -18
- package/useGoogleReCaptchaV3.js +0 -77
- package/useOffline.d.ts +0 -5
- package/useOffline.js +0 -35
- package/useResizeObserver.d.ts +0 -2
- package/useResizeObserver.js +0 -2
- package/useScript.d.ts +0 -8
- package/useScript.js +0 -120
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"description": "React hooks",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"private": false,
|
|
6
|
-
"version": "2.0.
|
|
6
|
+
"version": "2.0.8-alpha.bbb0ff54",
|
|
7
7
|
"sideEffects": false,
|
|
8
8
|
"main": "./cjs/index.js",
|
|
9
9
|
"module": "./index.js",
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
"dependencies": {
|
|
17
17
|
"use-resize-observer": "^9.0.2"
|
|
18
18
|
},
|
|
19
|
-
"gitHead": "
|
|
19
|
+
"gitHead": "bbb0ff543f0741c9ed881747b86e25eba2638d16",
|
|
20
20
|
"publishConfig": {
|
|
21
21
|
"access": "public"
|
|
22
22
|
}
|
package/cjs/index.d.ts
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export { default as useScript } from './useScript';
|
|
2
|
-
export { default as useResizeObserver } from './useResizeObserver';
|
|
3
|
-
export { default as useForwardedRef } from './useForwardedRef';
|
|
4
|
-
export { default as useOffline } from './useOffline';
|
|
5
|
-
export { default as useDimensions } from './useDimensions';
|
|
6
|
-
export * from './useGoogleReCaptchaV3';
|
package/cjs/index.js
DELETED
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
var _exportNames = {
|
|
7
|
-
useScript: true,
|
|
8
|
-
useResizeObserver: true,
|
|
9
|
-
useForwardedRef: true,
|
|
10
|
-
useOffline: true,
|
|
11
|
-
useDimensions: true
|
|
12
|
-
};
|
|
13
|
-
Object.defineProperty(exports, "useDimensions", {
|
|
14
|
-
enumerable: true,
|
|
15
|
-
get: function get() {
|
|
16
|
-
return _useDimensions.default;
|
|
17
|
-
}
|
|
18
|
-
});
|
|
19
|
-
Object.defineProperty(exports, "useForwardedRef", {
|
|
20
|
-
enumerable: true,
|
|
21
|
-
get: function get() {
|
|
22
|
-
return _useForwardedRef.default;
|
|
23
|
-
}
|
|
24
|
-
});
|
|
25
|
-
Object.defineProperty(exports, "useOffline", {
|
|
26
|
-
enumerable: true,
|
|
27
|
-
get: function get() {
|
|
28
|
-
return _useOffline.default;
|
|
29
|
-
}
|
|
30
|
-
});
|
|
31
|
-
Object.defineProperty(exports, "useResizeObserver", {
|
|
32
|
-
enumerable: true,
|
|
33
|
-
get: function get() {
|
|
34
|
-
return _useResizeObserver.default;
|
|
35
|
-
}
|
|
36
|
-
});
|
|
37
|
-
Object.defineProperty(exports, "useScript", {
|
|
38
|
-
enumerable: true,
|
|
39
|
-
get: function get() {
|
|
40
|
-
return _useScript.default;
|
|
41
|
-
}
|
|
42
|
-
});
|
|
43
|
-
var _useScript = _interopRequireDefault(require("./useScript"));
|
|
44
|
-
var _useResizeObserver = _interopRequireDefault(require("./useResizeObserver"));
|
|
45
|
-
var _useForwardedRef = _interopRequireDefault(require("./useForwardedRef"));
|
|
46
|
-
var _useOffline = _interopRequireDefault(require("./useOffline"));
|
|
47
|
-
var _useDimensions = _interopRequireDefault(require("./useDimensions"));
|
|
48
|
-
var _useGoogleReCaptchaV = require("./useGoogleReCaptchaV3");
|
|
49
|
-
Object.keys(_useGoogleReCaptchaV).forEach(function (key) {
|
|
50
|
-
if (key === "default" || key === "__esModule") return;
|
|
51
|
-
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
52
|
-
if (key in exports && exports[key] === _useGoogleReCaptchaV[key]) return;
|
|
53
|
-
Object.defineProperty(exports, key, {
|
|
54
|
-
enumerable: true,
|
|
55
|
-
get: function get() {
|
|
56
|
-
return _useGoogleReCaptchaV[key];
|
|
57
|
-
}
|
|
58
|
-
});
|
|
59
|
-
});
|
|
60
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
package/cjs/useDimensions.d.ts
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
export interface DimensionObject {
|
|
2
|
-
width: number;
|
|
3
|
-
height: number;
|
|
4
|
-
top: number;
|
|
5
|
-
left: number;
|
|
6
|
-
x: number;
|
|
7
|
-
y: number;
|
|
8
|
-
right: number;
|
|
9
|
-
bottom: number;
|
|
10
|
-
}
|
|
11
|
-
export declare type UseDimensionsHook = [(node: HTMLElement | null) => void, DimensionObject, HTMLElement | null];
|
|
12
|
-
export interface UseDimensionsArgs {
|
|
13
|
-
liveMeasure?: boolean;
|
|
14
|
-
}
|
|
15
|
-
declare function useDimensions({ liveMeasure }?: UseDimensionsArgs): UseDimensionsHook;
|
|
16
|
-
export default useDimensions;
|
package/cjs/useDimensions.js
DELETED
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
var _react = require("react");
|
|
8
|
-
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
9
|
-
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
10
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
11
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
12
|
-
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_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; }
|
|
13
|
-
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
14
|
-
const EMPTY_DIMENSION_OBJECT = {
|
|
15
|
-
width: 0,
|
|
16
|
-
height: 0,
|
|
17
|
-
top: 0,
|
|
18
|
-
left: 0,
|
|
19
|
-
x: 0,
|
|
20
|
-
y: 0,
|
|
21
|
-
right: 0,
|
|
22
|
-
bottom: 0
|
|
23
|
-
};
|
|
24
|
-
function getDimensionObject(node) {
|
|
25
|
-
const rect = node.getBoundingClientRect();
|
|
26
|
-
/** @ts-ignore */
|
|
27
|
-
const left = 'x' in rect ? rect.x : rect.left;
|
|
28
|
-
/** @ts-ignore */
|
|
29
|
-
const top = 'y' in rect ? rect.y : rect.top;
|
|
30
|
-
return {
|
|
31
|
-
width: rect.width,
|
|
32
|
-
height: rect.height,
|
|
33
|
-
x: left,
|
|
34
|
-
y: top,
|
|
35
|
-
top: top,
|
|
36
|
-
left: left,
|
|
37
|
-
right: rect.right,
|
|
38
|
-
bottom: rect.bottom
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
function useDimensions({
|
|
42
|
-
liveMeasure = true
|
|
43
|
-
} = {}) {
|
|
44
|
-
const _useState = (0, _react.useState)(EMPTY_DIMENSION_OBJECT),
|
|
45
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
46
|
-
dimensions = _useState2[0],
|
|
47
|
-
setDimensions = _useState2[1];
|
|
48
|
-
const _useState3 = (0, _react.useState)(null),
|
|
49
|
-
_useState4 = _slicedToArray(_useState3, 2),
|
|
50
|
-
node = _useState4[0],
|
|
51
|
-
setNode = _useState4[1];
|
|
52
|
-
const ref = (0, _react.useCallback)(node => {
|
|
53
|
-
setNode(node);
|
|
54
|
-
}, []);
|
|
55
|
-
const useIsomorphicLayoutEffect = typeof window !== 'undefined' ? _react.useLayoutEffect : _react.useEffect;
|
|
56
|
-
useIsomorphicLayoutEffect(() => {
|
|
57
|
-
if (node) {
|
|
58
|
-
const measure = () => window.requestAnimationFrame(() => setDimensions(getDimensionObject(node)));
|
|
59
|
-
measure();
|
|
60
|
-
if (liveMeasure) {
|
|
61
|
-
window.addEventListener('resize', measure);
|
|
62
|
-
window.addEventListener('scroll', measure);
|
|
63
|
-
return () => {
|
|
64
|
-
window.removeEventListener('resize', measure);
|
|
65
|
-
window.removeEventListener('scroll', measure);
|
|
66
|
-
};
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
return () => {
|
|
70
|
-
/* no-op */
|
|
71
|
-
};
|
|
72
|
-
}, [liveMeasure, node]);
|
|
73
|
-
return [ref, dimensions, node];
|
|
74
|
-
}
|
|
75
|
-
var _default = useDimensions;
|
|
76
|
-
exports.default = _default;
|
package/cjs/useForwardedRef.d.ts
DELETED
package/cjs/useForwardedRef.js
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
var _react = _interopRequireDefault(require("react"));
|
|
8
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
9
|
-
function useForwardedRef(forwardedRef) {
|
|
10
|
-
const innerRef = _react.default.useRef(null);
|
|
11
|
-
_react.default.useEffect(() => {
|
|
12
|
-
if (!forwardedRef) {
|
|
13
|
-
return;
|
|
14
|
-
}
|
|
15
|
-
if (typeof forwardedRef === 'function') {
|
|
16
|
-
forwardedRef(innerRef.current);
|
|
17
|
-
} else {
|
|
18
|
-
forwardedRef.current = innerRef.current;
|
|
19
|
-
}
|
|
20
|
-
}, [forwardedRef]);
|
|
21
|
-
return innerRef;
|
|
22
|
-
}
|
|
23
|
-
var _default = useForwardedRef;
|
|
24
|
-
exports.default = _default;
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
declare global {
|
|
2
|
-
interface Window {
|
|
3
|
-
grecaptcha: any;
|
|
4
|
-
}
|
|
5
|
-
}
|
|
6
|
-
export declare type GoogleReCaptchaV3Options = {
|
|
7
|
-
/**
|
|
8
|
-
* The `sitekey` to use with reCAPTCHA v3.
|
|
9
|
-
* https://developers.google.com/recaptcha/docs/v3
|
|
10
|
-
*/
|
|
11
|
-
siteKey: string;
|
|
12
|
-
/**
|
|
13
|
-
* Disable ReCaptcha preventing the script from loading and return undefined from the execute function.
|
|
14
|
-
* This is useful when consumer needs to conditionally enable or disable ReCaptcha
|
|
15
|
-
*/
|
|
16
|
-
disabled?: boolean;
|
|
17
|
-
};
|
|
18
|
-
export declare function useGoogleReCaptchaV3({ siteKey, disabled }: GoogleReCaptchaV3Options): (action?: string) => Promise<string | undefined>;
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.useGoogleReCaptchaV3 = useGoogleReCaptchaV3;
|
|
7
|
-
var _react = require("react");
|
|
8
|
-
var _useScript3 = _interopRequireDefault(require("./useScript"));
|
|
9
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
10
|
-
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
11
|
-
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
12
|
-
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
13
|
-
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
14
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
15
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
16
|
-
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_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; }
|
|
17
|
-
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
18
|
-
function useGoogleReCaptchaV3({
|
|
19
|
-
siteKey,
|
|
20
|
-
disabled = false
|
|
21
|
-
}) {
|
|
22
|
-
// Load ReCaptcha script.
|
|
23
|
-
const _useScript = (0, _useScript3.default)(`https://www.google.com/recaptcha/api.js?render=${siteKey}`, disabled),
|
|
24
|
-
_useScript2 = _slicedToArray(_useScript, 2),
|
|
25
|
-
loaded = _useScript2[0],
|
|
26
|
-
error = _useScript2[1];
|
|
27
|
-
(0, _react.useEffect)(() => {
|
|
28
|
-
if (loaded && !disabled) {
|
|
29
|
-
// eslint-disable-next-line no-console
|
|
30
|
-
console.log('Google ReCaptcha script loaded!');
|
|
31
|
-
}
|
|
32
|
-
if (error) throw new Error('Google ReCaptcha script failed to load');
|
|
33
|
-
}, [loaded, error, disabled]);
|
|
34
|
-
const executeReCaptcha = (0, _react.useCallback)( /*#__PURE__*/function () {
|
|
35
|
-
var _ref = _asyncToGenerator(function* (action) {
|
|
36
|
-
if (!window) {
|
|
37
|
-
throw new Error('ERROR: NOT A WEB BROWSER');
|
|
38
|
-
}
|
|
39
|
-
if (disabled) {
|
|
40
|
-
return Promise.resolve(undefined);
|
|
41
|
-
}
|
|
42
|
-
const _window = window,
|
|
43
|
-
grecaptcha = _window.grecaptcha;
|
|
44
|
-
if (!grecaptcha) {
|
|
45
|
-
throw new Error('ERROR: SCRIPT NOT AVAILABLE');
|
|
46
|
-
}
|
|
47
|
-
return new Promise(resolve => {
|
|
48
|
-
// Invoke the ReCaptcha check.
|
|
49
|
-
grecaptcha.ready(() => {
|
|
50
|
-
grecaptcha.execute(siteKey, {
|
|
51
|
-
action
|
|
52
|
-
}).then(token => {
|
|
53
|
-
resolve(token);
|
|
54
|
-
});
|
|
55
|
-
});
|
|
56
|
-
});
|
|
57
|
-
});
|
|
58
|
-
return function (_x) {
|
|
59
|
-
return _ref.apply(this, arguments);
|
|
60
|
-
};
|
|
61
|
-
}(), [siteKey, disabled]);
|
|
62
|
-
return executeReCaptcha;
|
|
63
|
-
}
|
package/cjs/useOffline.d.ts
DELETED
package/cjs/useOffline.js
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
var _react = require("react");
|
|
8
|
-
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
9
|
-
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
10
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
11
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
12
|
-
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_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; }
|
|
13
|
-
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
14
|
-
const getOnLineStatus = () => typeof window !== 'undefined' && typeof navigator !== 'undefined' && typeof navigator.onLine === 'boolean' ? navigator.onLine : true;
|
|
15
|
-
const useOffline = () => {
|
|
16
|
-
const _useState = (0, _react.useState)(getOnLineStatus()),
|
|
17
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
18
|
-
status = _useState2[0],
|
|
19
|
-
setStatus = _useState2[1];
|
|
20
|
-
const setOnline = () => setStatus(true);
|
|
21
|
-
const setOffline = () => setStatus(false);
|
|
22
|
-
(0, _react.useEffect)(() => {
|
|
23
|
-
window.addEventListener('online', setOnline);
|
|
24
|
-
window.addEventListener('offline', setOffline);
|
|
25
|
-
return () => {
|
|
26
|
-
window.removeEventListener('online', setOnline);
|
|
27
|
-
window.removeEventListener('offline', setOffline);
|
|
28
|
-
};
|
|
29
|
-
}, []);
|
|
30
|
-
return {
|
|
31
|
-
isOnline: status,
|
|
32
|
-
isOffline: !status
|
|
33
|
-
};
|
|
34
|
-
};
|
|
35
|
-
var _default = useOffline;
|
|
36
|
-
exports.default = _default;
|
package/cjs/useResizeObserver.js
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
var _polyfilled = _interopRequireDefault(require("use-resize-observer/polyfilled"));
|
|
8
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
9
|
-
var _default = _polyfilled.default;
|
|
10
|
-
exports.default = _default;
|
package/cjs/useScript.d.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Hook for loading external script
|
|
3
|
-
* @param {string} src - The URL of the script
|
|
4
|
-
* @param {boolean} [doNotLoad=false] - If set to true the script will not be loaded
|
|
5
|
-
* This can be handy because hooks can not be called conditionally by the consumer
|
|
6
|
-
*/
|
|
7
|
-
declare function useScript(src: string, doNotLoad?: boolean): boolean[];
|
|
8
|
-
export default useScript;
|
package/cjs/useScript.js
DELETED
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
var _react = require("react");
|
|
8
|
-
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
9
|
-
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
10
|
-
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_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; }
|
|
11
|
-
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
12
|
-
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
13
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
14
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
15
|
-
class Script {
|
|
16
|
-
constructor(src) {
|
|
17
|
-
this.state = 'PENDING';
|
|
18
|
-
this.listeners = [];
|
|
19
|
-
const script = document.createElement('script');
|
|
20
|
-
script.src = src;
|
|
21
|
-
script.async = true;
|
|
22
|
-
const load = () => {
|
|
23
|
-
this.state = 'LOADED';
|
|
24
|
-
script.removeEventListener('load', load);
|
|
25
|
-
this.emitState();
|
|
26
|
-
};
|
|
27
|
-
const error = () => {
|
|
28
|
-
this.state = 'ERROR';
|
|
29
|
-
script.removeEventListener('error', error);
|
|
30
|
-
this.emitState();
|
|
31
|
-
};
|
|
32
|
-
script.addEventListener('load', load);
|
|
33
|
-
script.addEventListener('error', error);
|
|
34
|
-
document.body.appendChild(script);
|
|
35
|
-
}
|
|
36
|
-
onStateChange(cb) {
|
|
37
|
-
this.listeners.push(cb);
|
|
38
|
-
return () => {
|
|
39
|
-
this.listeners = this.listeners.filter(fn => fn !== cb);
|
|
40
|
-
};
|
|
41
|
-
}
|
|
42
|
-
emitState() {
|
|
43
|
-
var _iterator = _createForOfIteratorHelper(this.listeners),
|
|
44
|
-
_step;
|
|
45
|
-
try {
|
|
46
|
-
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
47
|
-
const cb = _step.value;
|
|
48
|
-
cb(this.state);
|
|
49
|
-
}
|
|
50
|
-
} catch (err) {
|
|
51
|
-
_iterator.e(err);
|
|
52
|
-
} finally {
|
|
53
|
-
_iterator.f();
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
const scripts = new Map();
|
|
58
|
-
|
|
59
|
-
/**
|
|
60
|
-
* Hook for loading external script
|
|
61
|
-
* @param {string} src - The URL of the script
|
|
62
|
-
* @param {boolean} [doNotLoad=false] - If set to true the script will not be loaded
|
|
63
|
-
* This can be handy because hooks can not be called conditionally by the consumer
|
|
64
|
-
*/
|
|
65
|
-
function useScript(src, doNotLoad = false) {
|
|
66
|
-
// Keeping track of script loaded and error state
|
|
67
|
-
const _useState = (0, _react.useState)({
|
|
68
|
-
loaded: false,
|
|
69
|
-
error: false
|
|
70
|
-
}),
|
|
71
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
72
|
-
state = _useState2[0],
|
|
73
|
-
setState = _useState2[1];
|
|
74
|
-
(0, _react.useEffect)(() => {
|
|
75
|
-
// If doNotLoad we return early so the script will not be loaded
|
|
76
|
-
if (doNotLoad) {
|
|
77
|
-
setState({
|
|
78
|
-
loaded: true,
|
|
79
|
-
error: false
|
|
80
|
-
});
|
|
81
|
-
return;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
// If scripts already includes src it means that the script was already
|
|
85
|
-
// loaded by another instance of the hook, so no need to load again
|
|
86
|
-
const script = scripts.get(src) || scripts.set(src, new Script(src)).get(src);
|
|
87
|
-
if (script.state === 'LOADED') {
|
|
88
|
-
setState({
|
|
89
|
-
loaded: true,
|
|
90
|
-
error: false
|
|
91
|
-
});
|
|
92
|
-
return;
|
|
93
|
-
}
|
|
94
|
-
return script.onStateChange(state => {
|
|
95
|
-
if (state === 'ERROR') {
|
|
96
|
-
scripts.delete(src);
|
|
97
|
-
setState({
|
|
98
|
-
loaded: true,
|
|
99
|
-
error: true
|
|
100
|
-
});
|
|
101
|
-
} else {
|
|
102
|
-
setState({
|
|
103
|
-
loaded: true,
|
|
104
|
-
error: false
|
|
105
|
-
});
|
|
106
|
-
}
|
|
107
|
-
});
|
|
108
|
-
}, [src, doNotLoad]);
|
|
109
|
-
return [state.loaded, state.error];
|
|
110
|
-
}
|
|
111
|
-
var _default = useScript;
|
|
112
|
-
exports.default = _default;
|
package/index.d.ts
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export { default as useScript } from './useScript';
|
|
2
|
-
export { default as useResizeObserver } from './useResizeObserver';
|
|
3
|
-
export { default as useForwardedRef } from './useForwardedRef';
|
|
4
|
-
export { default as useOffline } from './useOffline';
|
|
5
|
-
export { default as useDimensions } from './useDimensions';
|
|
6
|
-
export * from './useGoogleReCaptchaV3';
|
package/index.js
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export { default as useScript } from './useScript';
|
|
2
|
-
export { default as useResizeObserver } from './useResizeObserver';
|
|
3
|
-
export { default as useForwardedRef } from './useForwardedRef';
|
|
4
|
-
export { default as useOffline } from './useOffline';
|
|
5
|
-
export { default as useDimensions } from './useDimensions';
|
|
6
|
-
export * from './useGoogleReCaptchaV3';
|
package/useDimensions.d.ts
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
export interface DimensionObject {
|
|
2
|
-
width: number;
|
|
3
|
-
height: number;
|
|
4
|
-
top: number;
|
|
5
|
-
left: number;
|
|
6
|
-
x: number;
|
|
7
|
-
y: number;
|
|
8
|
-
right: number;
|
|
9
|
-
bottom: number;
|
|
10
|
-
}
|
|
11
|
-
export declare type UseDimensionsHook = [(node: HTMLElement | null) => void, DimensionObject, HTMLElement | null];
|
|
12
|
-
export interface UseDimensionsArgs {
|
|
13
|
-
liveMeasure?: boolean;
|
|
14
|
-
}
|
|
15
|
-
declare function useDimensions({ liveMeasure }?: UseDimensionsArgs): UseDimensionsHook;
|
|
16
|
-
export default useDimensions;
|
package/useDimensions.js
DELETED
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
2
|
-
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
3
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
4
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
5
|
-
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_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; }
|
|
6
|
-
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
7
|
-
/* eslint-disable @typescript-eslint/ban-ts-comment */
|
|
8
|
-
import { useState, useCallback, useLayoutEffect, useEffect } from 'react';
|
|
9
|
-
var EMPTY_DIMENSION_OBJECT = {
|
|
10
|
-
width: 0,
|
|
11
|
-
height: 0,
|
|
12
|
-
top: 0,
|
|
13
|
-
left: 0,
|
|
14
|
-
x: 0,
|
|
15
|
-
y: 0,
|
|
16
|
-
right: 0,
|
|
17
|
-
bottom: 0
|
|
18
|
-
};
|
|
19
|
-
function getDimensionObject(node) {
|
|
20
|
-
var rect = node.getBoundingClientRect();
|
|
21
|
-
/** @ts-ignore */
|
|
22
|
-
var left = 'x' in rect ? rect.x : rect.left;
|
|
23
|
-
/** @ts-ignore */
|
|
24
|
-
var top = 'y' in rect ? rect.y : rect.top;
|
|
25
|
-
return {
|
|
26
|
-
width: rect.width,
|
|
27
|
-
height: rect.height,
|
|
28
|
-
x: left,
|
|
29
|
-
y: top,
|
|
30
|
-
top: top,
|
|
31
|
-
left: left,
|
|
32
|
-
right: rect.right,
|
|
33
|
-
bottom: rect.bottom
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
|
-
function useDimensions() {
|
|
37
|
-
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
38
|
-
_ref$liveMeasure = _ref.liveMeasure,
|
|
39
|
-
liveMeasure = _ref$liveMeasure === void 0 ? true : _ref$liveMeasure;
|
|
40
|
-
var _useState = useState(EMPTY_DIMENSION_OBJECT),
|
|
41
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
42
|
-
dimensions = _useState2[0],
|
|
43
|
-
setDimensions = _useState2[1];
|
|
44
|
-
var _useState3 = useState(null),
|
|
45
|
-
_useState4 = _slicedToArray(_useState3, 2),
|
|
46
|
-
node = _useState4[0],
|
|
47
|
-
setNode = _useState4[1];
|
|
48
|
-
var ref = useCallback(function (node) {
|
|
49
|
-
setNode(node);
|
|
50
|
-
}, []);
|
|
51
|
-
var useIsomorphicLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect;
|
|
52
|
-
useIsomorphicLayoutEffect(function () {
|
|
53
|
-
if (node) {
|
|
54
|
-
var measure = function measure() {
|
|
55
|
-
return window.requestAnimationFrame(function () {
|
|
56
|
-
return setDimensions(getDimensionObject(node));
|
|
57
|
-
});
|
|
58
|
-
};
|
|
59
|
-
measure();
|
|
60
|
-
if (liveMeasure) {
|
|
61
|
-
window.addEventListener('resize', measure);
|
|
62
|
-
window.addEventListener('scroll', measure);
|
|
63
|
-
return function () {
|
|
64
|
-
window.removeEventListener('resize', measure);
|
|
65
|
-
window.removeEventListener('scroll', measure);
|
|
66
|
-
};
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
return function () {
|
|
70
|
-
/* no-op */
|
|
71
|
-
};
|
|
72
|
-
}, [liveMeasure, node]);
|
|
73
|
-
return [ref, dimensions, node];
|
|
74
|
-
}
|
|
75
|
-
export default useDimensions;
|
package/useForwardedRef.d.ts
DELETED
package/useForwardedRef.js
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
function useForwardedRef(forwardedRef) {
|
|
3
|
-
var innerRef = React.useRef(null);
|
|
4
|
-
React.useEffect(function () {
|
|
5
|
-
if (!forwardedRef) {
|
|
6
|
-
return;
|
|
7
|
-
}
|
|
8
|
-
if (typeof forwardedRef === 'function') {
|
|
9
|
-
forwardedRef(innerRef.current);
|
|
10
|
-
} else {
|
|
11
|
-
forwardedRef.current = innerRef.current;
|
|
12
|
-
}
|
|
13
|
-
}, [forwardedRef]);
|
|
14
|
-
return innerRef;
|
|
15
|
-
}
|
|
16
|
-
export default useForwardedRef;
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
declare global {
|
|
2
|
-
interface Window {
|
|
3
|
-
grecaptcha: any;
|
|
4
|
-
}
|
|
5
|
-
}
|
|
6
|
-
export declare type GoogleReCaptchaV3Options = {
|
|
7
|
-
/**
|
|
8
|
-
* The `sitekey` to use with reCAPTCHA v3.
|
|
9
|
-
* https://developers.google.com/recaptcha/docs/v3
|
|
10
|
-
*/
|
|
11
|
-
siteKey: string;
|
|
12
|
-
/**
|
|
13
|
-
* Disable ReCaptcha preventing the script from loading and return undefined from the execute function.
|
|
14
|
-
* This is useful when consumer needs to conditionally enable or disable ReCaptcha
|
|
15
|
-
*/
|
|
16
|
-
disabled?: boolean;
|
|
17
|
-
};
|
|
18
|
-
export declare function useGoogleReCaptchaV3({ siteKey, disabled }: GoogleReCaptchaV3Options): (action?: string) => Promise<string | undefined>;
|
package/useGoogleReCaptchaV3.js
DELETED
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
2
|
-
function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return generator._invoke = function (innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; }(innerFn, self, context), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; this._invoke = function (method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); }; } function maybeInvokeDelegate(delegate, context) { var method = delegate.iterator[context.method]; if (undefined === method) { if (context.delegate = null, "throw" === context.method) { if (delegate.iterator["return"] && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method)) return ContinueSentinel; context.method = "throw", context.arg = new TypeError("The iterator does not provide a 'throw' method"); } return ContinueSentinel; } var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) { if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; } return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, define(Gp, "constructor", GeneratorFunctionPrototype), define(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (object) { var keys = []; for (var key in object) { keys.push(key); } return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) { "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); } }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, "catch": function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; }
|
|
3
|
-
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
4
|
-
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
5
|
-
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
6
|
-
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
7
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
8
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
9
|
-
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_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; }
|
|
10
|
-
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
11
|
-
import { useCallback, useEffect } from 'react';
|
|
12
|
-
import useScript from './useScript';
|
|
13
|
-
export function useGoogleReCaptchaV3(_ref) {
|
|
14
|
-
var siteKey = _ref.siteKey,
|
|
15
|
-
_ref$disabled = _ref.disabled,
|
|
16
|
-
disabled = _ref$disabled === void 0 ? false : _ref$disabled;
|
|
17
|
-
// Load ReCaptcha script.
|
|
18
|
-
var _useScript = useScript("https://www.google.com/recaptcha/api.js?render=".concat(siteKey), disabled),
|
|
19
|
-
_useScript2 = _slicedToArray(_useScript, 2),
|
|
20
|
-
loaded = _useScript2[0],
|
|
21
|
-
error = _useScript2[1];
|
|
22
|
-
useEffect(function () {
|
|
23
|
-
if (loaded && !disabled) {
|
|
24
|
-
// eslint-disable-next-line no-console
|
|
25
|
-
console.log('Google ReCaptcha script loaded!');
|
|
26
|
-
}
|
|
27
|
-
if (error) throw new Error('Google ReCaptcha script failed to load');
|
|
28
|
-
}, [loaded, error, disabled]);
|
|
29
|
-
var executeReCaptcha = useCallback( /*#__PURE__*/function () {
|
|
30
|
-
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(action) {
|
|
31
|
-
var _window, grecaptcha;
|
|
32
|
-
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
33
|
-
while (1) {
|
|
34
|
-
switch (_context.prev = _context.next) {
|
|
35
|
-
case 0:
|
|
36
|
-
if (window) {
|
|
37
|
-
_context.next = 2;
|
|
38
|
-
break;
|
|
39
|
-
}
|
|
40
|
-
throw new Error('ERROR: NOT A WEB BROWSER');
|
|
41
|
-
case 2:
|
|
42
|
-
if (!disabled) {
|
|
43
|
-
_context.next = 4;
|
|
44
|
-
break;
|
|
45
|
-
}
|
|
46
|
-
return _context.abrupt("return", Promise.resolve(undefined));
|
|
47
|
-
case 4:
|
|
48
|
-
_window = window, grecaptcha = _window.grecaptcha;
|
|
49
|
-
if (grecaptcha) {
|
|
50
|
-
_context.next = 7;
|
|
51
|
-
break;
|
|
52
|
-
}
|
|
53
|
-
throw new Error('ERROR: SCRIPT NOT AVAILABLE');
|
|
54
|
-
case 7:
|
|
55
|
-
return _context.abrupt("return", new Promise(function (resolve) {
|
|
56
|
-
// Invoke the ReCaptcha check.
|
|
57
|
-
grecaptcha.ready(function () {
|
|
58
|
-
grecaptcha.execute(siteKey, {
|
|
59
|
-
action: action
|
|
60
|
-
}).then(function (token) {
|
|
61
|
-
resolve(token);
|
|
62
|
-
});
|
|
63
|
-
});
|
|
64
|
-
}));
|
|
65
|
-
case 8:
|
|
66
|
-
case "end":
|
|
67
|
-
return _context.stop();
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
}, _callee);
|
|
71
|
-
}));
|
|
72
|
-
return function (_x) {
|
|
73
|
-
return _ref2.apply(this, arguments);
|
|
74
|
-
};
|
|
75
|
-
}(), [siteKey, disabled]);
|
|
76
|
-
return executeReCaptcha;
|
|
77
|
-
}
|
package/useOffline.d.ts
DELETED
package/useOffline.js
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
2
|
-
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
3
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
4
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
5
|
-
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_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; }
|
|
6
|
-
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
7
|
-
import { useEffect, useState } from 'react';
|
|
8
|
-
var getOnLineStatus = function getOnLineStatus() {
|
|
9
|
-
return typeof window !== 'undefined' && typeof navigator !== 'undefined' && typeof navigator.onLine === 'boolean' ? navigator.onLine : true;
|
|
10
|
-
};
|
|
11
|
-
var useOffline = function useOffline() {
|
|
12
|
-
var _useState = useState(getOnLineStatus()),
|
|
13
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
14
|
-
status = _useState2[0],
|
|
15
|
-
setStatus = _useState2[1];
|
|
16
|
-
var setOnline = function setOnline() {
|
|
17
|
-
return setStatus(true);
|
|
18
|
-
};
|
|
19
|
-
var setOffline = function setOffline() {
|
|
20
|
-
return setStatus(false);
|
|
21
|
-
};
|
|
22
|
-
useEffect(function () {
|
|
23
|
-
window.addEventListener('online', setOnline);
|
|
24
|
-
window.addEventListener('offline', setOffline);
|
|
25
|
-
return function () {
|
|
26
|
-
window.removeEventListener('online', setOnline);
|
|
27
|
-
window.removeEventListener('offline', setOffline);
|
|
28
|
-
};
|
|
29
|
-
}, []);
|
|
30
|
-
return {
|
|
31
|
-
isOnline: status,
|
|
32
|
-
isOffline: !status
|
|
33
|
-
};
|
|
34
|
-
};
|
|
35
|
-
export default useOffline;
|
package/useResizeObserver.d.ts
DELETED
package/useResizeObserver.js
DELETED
package/useScript.d.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Hook for loading external script
|
|
3
|
-
* @param {string} src - The URL of the script
|
|
4
|
-
* @param {boolean} [doNotLoad=false] - If set to true the script will not be loaded
|
|
5
|
-
* This can be handy because hooks can not be called conditionally by the consumer
|
|
6
|
-
*/
|
|
7
|
-
declare function useScript(src: string, doNotLoad?: boolean): boolean[];
|
|
8
|
-
export default useScript;
|
package/useScript.js
DELETED
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
2
|
-
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
3
|
-
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_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; }
|
|
4
|
-
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
5
|
-
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
|
6
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
7
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
8
|
-
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
9
|
-
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
10
|
-
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
11
|
-
import { useState, useEffect } from 'react';
|
|
12
|
-
var Script = /*#__PURE__*/function () {
|
|
13
|
-
function Script(src) {
|
|
14
|
-
var _this = this;
|
|
15
|
-
_classCallCheck(this, Script);
|
|
16
|
-
this.state = 'PENDING';
|
|
17
|
-
this.listeners = [];
|
|
18
|
-
var script = document.createElement('script');
|
|
19
|
-
script.src = src;
|
|
20
|
-
script.async = true;
|
|
21
|
-
var load = function load() {
|
|
22
|
-
_this.state = 'LOADED';
|
|
23
|
-
script.removeEventListener('load', load);
|
|
24
|
-
_this.emitState();
|
|
25
|
-
};
|
|
26
|
-
var error = function error() {
|
|
27
|
-
_this.state = 'ERROR';
|
|
28
|
-
script.removeEventListener('error', error);
|
|
29
|
-
_this.emitState();
|
|
30
|
-
};
|
|
31
|
-
script.addEventListener('load', load);
|
|
32
|
-
script.addEventListener('error', error);
|
|
33
|
-
document.body.appendChild(script);
|
|
34
|
-
}
|
|
35
|
-
_createClass(Script, [{
|
|
36
|
-
key: "onStateChange",
|
|
37
|
-
value: function onStateChange(cb) {
|
|
38
|
-
var _this2 = this;
|
|
39
|
-
this.listeners.push(cb);
|
|
40
|
-
return function () {
|
|
41
|
-
_this2.listeners = _this2.listeners.filter(function (fn) {
|
|
42
|
-
return fn !== cb;
|
|
43
|
-
});
|
|
44
|
-
};
|
|
45
|
-
}
|
|
46
|
-
}, {
|
|
47
|
-
key: "emitState",
|
|
48
|
-
value: function emitState() {
|
|
49
|
-
var _iterator = _createForOfIteratorHelper(this.listeners),
|
|
50
|
-
_step;
|
|
51
|
-
try {
|
|
52
|
-
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
53
|
-
var cb = _step.value;
|
|
54
|
-
cb(this.state);
|
|
55
|
-
}
|
|
56
|
-
} catch (err) {
|
|
57
|
-
_iterator.e(err);
|
|
58
|
-
} finally {
|
|
59
|
-
_iterator.f();
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
}]);
|
|
63
|
-
return Script;
|
|
64
|
-
}();
|
|
65
|
-
var scripts = new Map();
|
|
66
|
-
|
|
67
|
-
/**
|
|
68
|
-
* Hook for loading external script
|
|
69
|
-
* @param {string} src - The URL of the script
|
|
70
|
-
* @param {boolean} [doNotLoad=false] - If set to true the script will not be loaded
|
|
71
|
-
* This can be handy because hooks can not be called conditionally by the consumer
|
|
72
|
-
*/
|
|
73
|
-
function useScript(src) {
|
|
74
|
-
var doNotLoad = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
75
|
-
// Keeping track of script loaded and error state
|
|
76
|
-
var _useState = useState({
|
|
77
|
-
loaded: false,
|
|
78
|
-
error: false
|
|
79
|
-
}),
|
|
80
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
81
|
-
state = _useState2[0],
|
|
82
|
-
setState = _useState2[1];
|
|
83
|
-
useEffect(function () {
|
|
84
|
-
// If doNotLoad we return early so the script will not be loaded
|
|
85
|
-
if (doNotLoad) {
|
|
86
|
-
setState({
|
|
87
|
-
loaded: true,
|
|
88
|
-
error: false
|
|
89
|
-
});
|
|
90
|
-
return;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
// If scripts already includes src it means that the script was already
|
|
94
|
-
// loaded by another instance of the hook, so no need to load again
|
|
95
|
-
var script = scripts.get(src) || scripts.set(src, new Script(src)).get(src);
|
|
96
|
-
if (script.state === 'LOADED') {
|
|
97
|
-
setState({
|
|
98
|
-
loaded: true,
|
|
99
|
-
error: false
|
|
100
|
-
});
|
|
101
|
-
return;
|
|
102
|
-
}
|
|
103
|
-
return script.onStateChange(function (state) {
|
|
104
|
-
if (state === 'ERROR') {
|
|
105
|
-
scripts["delete"](src);
|
|
106
|
-
setState({
|
|
107
|
-
loaded: true,
|
|
108
|
-
error: true
|
|
109
|
-
});
|
|
110
|
-
} else {
|
|
111
|
-
setState({
|
|
112
|
-
loaded: true,
|
|
113
|
-
error: false
|
|
114
|
-
});
|
|
115
|
-
}
|
|
116
|
-
});
|
|
117
|
-
}, [src, doNotLoad]);
|
|
118
|
-
return [state.loaded, state.error];
|
|
119
|
-
}
|
|
120
|
-
export default useScript;
|