@mantine/hooks 3.0.0 → 3.0.4
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.
|
@@ -21,6 +21,27 @@ async function exitFullscreen() {
|
|
|
21
21
|
return _document.mozCancelFullScreen();
|
|
22
22
|
return null;
|
|
23
23
|
}
|
|
24
|
+
async function enterFullScreen(element) {
|
|
25
|
+
var _a, _b, _c, _d;
|
|
26
|
+
const _element = element;
|
|
27
|
+
return ((_a = _element.requestFullscreen) == null ? void 0 : _a.call(_element)) || ((_b = _element.msRequestFullscreen) == null ? void 0 : _b.call(_element)) || ((_c = _element.webkitRequestFullscreen) == null ? void 0 : _c.call(_element)) || ((_d = _element.mozRequestFullscreen) == null ? void 0 : _d.call(_element));
|
|
28
|
+
}
|
|
29
|
+
const prefixes = ["", "webkit", "moz", "ms"];
|
|
30
|
+
function addEvents(element, {
|
|
31
|
+
onFullScreen,
|
|
32
|
+
onError
|
|
33
|
+
}) {
|
|
34
|
+
prefixes.forEach((prefix) => {
|
|
35
|
+
element.addEventListener(`${prefix}fullscreenchange`, onFullScreen);
|
|
36
|
+
element.addEventListener(`${prefix}fullscreenerror`, onError);
|
|
37
|
+
});
|
|
38
|
+
return () => {
|
|
39
|
+
prefixes.forEach((prefix) => {
|
|
40
|
+
element.removeEventListener(`${prefix}fullscreenchange`, onFullScreen);
|
|
41
|
+
element.removeEventListener(`${prefix}fullscreenerror`, onError);
|
|
42
|
+
});
|
|
43
|
+
};
|
|
44
|
+
}
|
|
24
45
|
function useFullscreen() {
|
|
25
46
|
const [fullscreen, setFullscreen] = react.useState(false);
|
|
26
47
|
const _ref = react.useRef();
|
|
@@ -33,31 +54,27 @@ function useFullscreen() {
|
|
|
33
54
|
}, [setFullscreen]);
|
|
34
55
|
const toggle = react.useCallback(async () => {
|
|
35
56
|
if (!getFullscreenElement()) {
|
|
36
|
-
await _ref.current
|
|
57
|
+
await enterFullScreen(_ref.current);
|
|
37
58
|
} else {
|
|
38
59
|
await exitFullscreen();
|
|
39
60
|
}
|
|
40
61
|
}, []);
|
|
41
|
-
const ref =
|
|
42
|
-
if (_ref.current) {
|
|
43
|
-
_ref.current.removeEventListener("fullscreenchange", handleFullscreenChange);
|
|
44
|
-
_ref.current.removeEventListener("fullscreenerror", handleFullscreenError);
|
|
45
|
-
_ref.current = null;
|
|
46
|
-
}
|
|
62
|
+
const ref = (element) => {
|
|
47
63
|
if (element === null) {
|
|
48
64
|
_ref.current = window.document.documentElement;
|
|
49
65
|
} else {
|
|
50
66
|
_ref.current = element;
|
|
51
67
|
}
|
|
52
|
-
|
|
53
|
-
_ref.current.addEventListener("fullscreenerror", handleFullscreenError);
|
|
54
|
-
}, []);
|
|
68
|
+
};
|
|
55
69
|
react.useEffect(() => {
|
|
56
70
|
if (!_ref.current && window.document) {
|
|
57
71
|
_ref.current = window.document.documentElement;
|
|
58
|
-
_ref.current
|
|
59
|
-
|
|
72
|
+
return addEvents(_ref.current, {
|
|
73
|
+
onFullScreen: handleFullscreenChange,
|
|
74
|
+
onError: handleFullscreenError
|
|
75
|
+
});
|
|
60
76
|
}
|
|
77
|
+
return void 0;
|
|
61
78
|
}, []);
|
|
62
79
|
return { ref, toggle, fullscreen };
|
|
63
80
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-fullscreen.js","sources":["../../src/use-fullscreen/use-fullscreen.ts"],"sourcesContent":["import { useCallback, useRef, useState, useEffect } from 'react';\n\nfunction getFullscreenElement(): HTMLElement | null {\n const _document = window.document as any;\n\n const fullscreenElement =\n _document.fullscreenElement ||\n _document.webkitFullscreenElement ||\n _document.mozFullScreenElement ||\n _document.msFullscreenElement;\n\n return fullscreenElement;\n}\n\nasync function exitFullscreen() {\n const _document = window.document as any;\n\n if (typeof _document.exitFullscreen === 'function') return _document.exitFullscreen();\n if (typeof _document.msExitFullscreen === 'function') return _document.msExitFullscreen();\n if (typeof _document.webkitExitFullscreen === 'function') return _document.webkitExitFullscreen();\n if (typeof _document.mozCancelFullScreen === 'function') return _document.mozCancelFullScreen();\n\n return null;\n}\n\nexport function useFullscreen<T extends HTMLElement = any>() {\n const [fullscreen, setFullscreen] = useState<boolean>(false);\n\n const _ref = useRef<T>();\n\n const handleFullscreenChange = useCallback(\n (event: Event) => {\n setFullscreen(event.target === getFullscreenElement());\n },\n [setFullscreen]\n );\n\n const handleFullscreenError = useCallback(\n (event: Event) => {\n setFullscreen(false);\n // eslint-disable-next-line no-console\n console.error(\n `[@mantine/hooks] use-fullscreen: Error attempting full-screen mode method: ${event} (${event.target})`\n );\n },\n [setFullscreen]\n );\n\n const toggle = useCallback(async () => {\n if (!getFullscreenElement()) {\n await _ref.current
|
|
1
|
+
{"version":3,"file":"use-fullscreen.js","sources":["../../src/use-fullscreen/use-fullscreen.ts"],"sourcesContent":["import { useCallback, useRef, useState, useEffect } from 'react';\n\nfunction getFullscreenElement(): HTMLElement | null {\n const _document = window.document as any;\n\n const fullscreenElement =\n _document.fullscreenElement ||\n _document.webkitFullscreenElement ||\n _document.mozFullScreenElement ||\n _document.msFullscreenElement;\n\n return fullscreenElement;\n}\n\nasync function exitFullscreen() {\n const _document = window.document as any;\n\n if (typeof _document.exitFullscreen === 'function') return _document.exitFullscreen();\n if (typeof _document.msExitFullscreen === 'function') return _document.msExitFullscreen();\n if (typeof _document.webkitExitFullscreen === 'function') return _document.webkitExitFullscreen();\n if (typeof _document.mozCancelFullScreen === 'function') return _document.mozCancelFullScreen();\n\n return null;\n}\n\nasync function enterFullScreen(element: HTMLElement) {\n const _element = element as any;\n\n return (\n _element.requestFullscreen?.() ||\n _element.msRequestFullscreen?.() ||\n _element.webkitRequestFullscreen?.() ||\n _element.mozRequestFullscreen?.()\n );\n}\n\nconst prefixes = ['', 'webkit', 'moz', 'ms'];\n\nfunction addEvents(\n element: HTMLElement,\n {\n onFullScreen,\n onError,\n }: { onFullScreen: (event: Event) => void; onError: (event: Event) => void }\n) {\n prefixes.forEach((prefix) => {\n element.addEventListener(`${prefix}fullscreenchange`, onFullScreen);\n element.addEventListener(`${prefix}fullscreenerror`, onError);\n });\n\n return () => {\n prefixes.forEach((prefix) => {\n element.removeEventListener(`${prefix}fullscreenchange`, onFullScreen);\n element.removeEventListener(`${prefix}fullscreenerror`, onError);\n });\n };\n}\n\nexport function useFullscreen<T extends HTMLElement = any>() {\n const [fullscreen, setFullscreen] = useState<boolean>(false);\n\n const _ref = useRef<T>();\n\n const handleFullscreenChange = useCallback(\n (event: Event) => {\n setFullscreen(event.target === getFullscreenElement());\n },\n [setFullscreen]\n );\n\n const handleFullscreenError = useCallback(\n (event: Event) => {\n setFullscreen(false);\n // eslint-disable-next-line no-console\n console.error(\n `[@mantine/hooks] use-fullscreen: Error attempting full-screen mode method: ${event} (${event.target})`\n );\n },\n [setFullscreen]\n );\n\n const toggle = useCallback(async () => {\n if (!getFullscreenElement()) {\n await enterFullScreen(_ref.current);\n } else {\n await exitFullscreen();\n }\n }, []);\n\n const ref = (element: T | null) => {\n if (element === null) {\n _ref.current = window.document.documentElement as T;\n } else {\n _ref.current = element;\n }\n };\n\n useEffect(() => {\n if (!_ref.current && window.document) {\n _ref.current = window.document.documentElement as T;\n return addEvents(_ref.current, {\n onFullScreen: handleFullscreenChange,\n onError: handleFullscreenError,\n });\n }\n\n return undefined;\n }, []);\n\n return { ref, toggle, fullscreen } as const;\n}\n"],"names":["useState","useRef","useCallback","useEffect"],"mappings":"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"}
|
|
@@ -17,6 +17,27 @@ async function exitFullscreen() {
|
|
|
17
17
|
return _document.mozCancelFullScreen();
|
|
18
18
|
return null;
|
|
19
19
|
}
|
|
20
|
+
async function enterFullScreen(element) {
|
|
21
|
+
var _a, _b, _c, _d;
|
|
22
|
+
const _element = element;
|
|
23
|
+
return ((_a = _element.requestFullscreen) == null ? void 0 : _a.call(_element)) || ((_b = _element.msRequestFullscreen) == null ? void 0 : _b.call(_element)) || ((_c = _element.webkitRequestFullscreen) == null ? void 0 : _c.call(_element)) || ((_d = _element.mozRequestFullscreen) == null ? void 0 : _d.call(_element));
|
|
24
|
+
}
|
|
25
|
+
const prefixes = ["", "webkit", "moz", "ms"];
|
|
26
|
+
function addEvents(element, {
|
|
27
|
+
onFullScreen,
|
|
28
|
+
onError
|
|
29
|
+
}) {
|
|
30
|
+
prefixes.forEach((prefix) => {
|
|
31
|
+
element.addEventListener(`${prefix}fullscreenchange`, onFullScreen);
|
|
32
|
+
element.addEventListener(`${prefix}fullscreenerror`, onError);
|
|
33
|
+
});
|
|
34
|
+
return () => {
|
|
35
|
+
prefixes.forEach((prefix) => {
|
|
36
|
+
element.removeEventListener(`${prefix}fullscreenchange`, onFullScreen);
|
|
37
|
+
element.removeEventListener(`${prefix}fullscreenerror`, onError);
|
|
38
|
+
});
|
|
39
|
+
};
|
|
40
|
+
}
|
|
20
41
|
function useFullscreen() {
|
|
21
42
|
const [fullscreen, setFullscreen] = useState(false);
|
|
22
43
|
const _ref = useRef();
|
|
@@ -29,31 +50,27 @@ function useFullscreen() {
|
|
|
29
50
|
}, [setFullscreen]);
|
|
30
51
|
const toggle = useCallback(async () => {
|
|
31
52
|
if (!getFullscreenElement()) {
|
|
32
|
-
await _ref.current
|
|
53
|
+
await enterFullScreen(_ref.current);
|
|
33
54
|
} else {
|
|
34
55
|
await exitFullscreen();
|
|
35
56
|
}
|
|
36
57
|
}, []);
|
|
37
|
-
const ref =
|
|
38
|
-
if (_ref.current) {
|
|
39
|
-
_ref.current.removeEventListener("fullscreenchange", handleFullscreenChange);
|
|
40
|
-
_ref.current.removeEventListener("fullscreenerror", handleFullscreenError);
|
|
41
|
-
_ref.current = null;
|
|
42
|
-
}
|
|
58
|
+
const ref = (element) => {
|
|
43
59
|
if (element === null) {
|
|
44
60
|
_ref.current = window.document.documentElement;
|
|
45
61
|
} else {
|
|
46
62
|
_ref.current = element;
|
|
47
63
|
}
|
|
48
|
-
|
|
49
|
-
_ref.current.addEventListener("fullscreenerror", handleFullscreenError);
|
|
50
|
-
}, []);
|
|
64
|
+
};
|
|
51
65
|
useEffect(() => {
|
|
52
66
|
if (!_ref.current && window.document) {
|
|
53
67
|
_ref.current = window.document.documentElement;
|
|
54
|
-
_ref.current
|
|
55
|
-
|
|
68
|
+
return addEvents(_ref.current, {
|
|
69
|
+
onFullScreen: handleFullscreenChange,
|
|
70
|
+
onError: handleFullscreenError
|
|
71
|
+
});
|
|
56
72
|
}
|
|
73
|
+
return void 0;
|
|
57
74
|
}, []);
|
|
58
75
|
return { ref, toggle, fullscreen };
|
|
59
76
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-fullscreen.js","sources":["../../src/use-fullscreen/use-fullscreen.ts"],"sourcesContent":["import { useCallback, useRef, useState, useEffect } from 'react';\n\nfunction getFullscreenElement(): HTMLElement | null {\n const _document = window.document as any;\n\n const fullscreenElement =\n _document.fullscreenElement ||\n _document.webkitFullscreenElement ||\n _document.mozFullScreenElement ||\n _document.msFullscreenElement;\n\n return fullscreenElement;\n}\n\nasync function exitFullscreen() {\n const _document = window.document as any;\n\n if (typeof _document.exitFullscreen === 'function') return _document.exitFullscreen();\n if (typeof _document.msExitFullscreen === 'function') return _document.msExitFullscreen();\n if (typeof _document.webkitExitFullscreen === 'function') return _document.webkitExitFullscreen();\n if (typeof _document.mozCancelFullScreen === 'function') return _document.mozCancelFullScreen();\n\n return null;\n}\n\nexport function useFullscreen<T extends HTMLElement = any>() {\n const [fullscreen, setFullscreen] = useState<boolean>(false);\n\n const _ref = useRef<T>();\n\n const handleFullscreenChange = useCallback(\n (event: Event) => {\n setFullscreen(event.target === getFullscreenElement());\n },\n [setFullscreen]\n );\n\n const handleFullscreenError = useCallback(\n (event: Event) => {\n setFullscreen(false);\n // eslint-disable-next-line no-console\n console.error(\n `[@mantine/hooks] use-fullscreen: Error attempting full-screen mode method: ${event} (${event.target})`\n );\n },\n [setFullscreen]\n );\n\n const toggle = useCallback(async () => {\n if (!getFullscreenElement()) {\n await _ref.current
|
|
1
|
+
{"version":3,"file":"use-fullscreen.js","sources":["../../src/use-fullscreen/use-fullscreen.ts"],"sourcesContent":["import { useCallback, useRef, useState, useEffect } from 'react';\n\nfunction getFullscreenElement(): HTMLElement | null {\n const _document = window.document as any;\n\n const fullscreenElement =\n _document.fullscreenElement ||\n _document.webkitFullscreenElement ||\n _document.mozFullScreenElement ||\n _document.msFullscreenElement;\n\n return fullscreenElement;\n}\n\nasync function exitFullscreen() {\n const _document = window.document as any;\n\n if (typeof _document.exitFullscreen === 'function') return _document.exitFullscreen();\n if (typeof _document.msExitFullscreen === 'function') return _document.msExitFullscreen();\n if (typeof _document.webkitExitFullscreen === 'function') return _document.webkitExitFullscreen();\n if (typeof _document.mozCancelFullScreen === 'function') return _document.mozCancelFullScreen();\n\n return null;\n}\n\nasync function enterFullScreen(element: HTMLElement) {\n const _element = element as any;\n\n return (\n _element.requestFullscreen?.() ||\n _element.msRequestFullscreen?.() ||\n _element.webkitRequestFullscreen?.() ||\n _element.mozRequestFullscreen?.()\n );\n}\n\nconst prefixes = ['', 'webkit', 'moz', 'ms'];\n\nfunction addEvents(\n element: HTMLElement,\n {\n onFullScreen,\n onError,\n }: { onFullScreen: (event: Event) => void; onError: (event: Event) => void }\n) {\n prefixes.forEach((prefix) => {\n element.addEventListener(`${prefix}fullscreenchange`, onFullScreen);\n element.addEventListener(`${prefix}fullscreenerror`, onError);\n });\n\n return () => {\n prefixes.forEach((prefix) => {\n element.removeEventListener(`${prefix}fullscreenchange`, onFullScreen);\n element.removeEventListener(`${prefix}fullscreenerror`, onError);\n });\n };\n}\n\nexport function useFullscreen<T extends HTMLElement = any>() {\n const [fullscreen, setFullscreen] = useState<boolean>(false);\n\n const _ref = useRef<T>();\n\n const handleFullscreenChange = useCallback(\n (event: Event) => {\n setFullscreen(event.target === getFullscreenElement());\n },\n [setFullscreen]\n );\n\n const handleFullscreenError = useCallback(\n (event: Event) => {\n setFullscreen(false);\n // eslint-disable-next-line no-console\n console.error(\n `[@mantine/hooks] use-fullscreen: Error attempting full-screen mode method: ${event} (${event.target})`\n );\n },\n [setFullscreen]\n );\n\n const toggle = useCallback(async () => {\n if (!getFullscreenElement()) {\n await enterFullScreen(_ref.current);\n } else {\n await exitFullscreen();\n }\n }, []);\n\n const ref = (element: T | null) => {\n if (element === null) {\n _ref.current = window.document.documentElement as T;\n } else {\n _ref.current = element;\n }\n };\n\n useEffect(() => {\n if (!_ref.current && window.document) {\n _ref.current = window.document.documentElement as T;\n return addEvents(_ref.current, {\n onFullScreen: handleFullscreenChange,\n onError: handleFullscreenError,\n });\n }\n\n return undefined;\n }, []);\n\n return { ref, toggle, fullscreen } as const;\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-fullscreen.d.ts","sourceRoot":"","sources":["../../src/use-fullscreen/use-fullscreen.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"use-fullscreen.d.ts","sourceRoot":"","sources":["../../src/use-fullscreen/use-fullscreen.ts"],"names":[],"mappings":"AA0DA,wBAAgB,aAAa,CAAC,CAAC,SAAS,WAAW,GAAG,GAAG;4BA+BjC,CAAC,GAAG,IAAI;;;EAqB/B"}
|