@andre1502/react-utilities 1.0.5 → 1.0.7
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/README.md +35 -51
- package/dist/Config/Config.d.ts +12 -1
- package/dist/EnvironmentEnum-CXTWJxNo.js +10 -0
- package/dist/EnvironmentEnum-CXTWJxNo.js.map +1 -0
- package/dist/Utils-CJ7ureSW.js +14 -0
- package/dist/Utils-CJ7ureSW.js.map +1 -0
- package/dist/browser-ponyfill-C-HVh7ck.js +321 -0
- package/dist/browser-ponyfill-C-HVh7ck.js.map +1 -0
- package/dist/chunk-vKJrgz-R.js +16 -0
- package/dist/config-cli-BIF4xuoO.js +1491 -0
- package/dist/config-cli-BIF4xuoO.js.map +1 -0
- package/dist/config-cli.d.ts +1 -1
- package/dist/config-cli.js +3 -222
- package/dist/enums/CurrencySymbolEnum.d.ts +6 -5
- package/dist/enums/DeviceEnum.d.ts +5 -4
- package/dist/enums/EnvironmentEnum.d.ts +6 -5
- package/dist/format-BgweN3o5.js +65549 -0
- package/dist/format-BgweN3o5.js.map +1 -0
- package/dist/format.d.ts +26 -26
- package/dist/format.js +2 -55
- package/dist/hooks-oAipbPQ2.js +78 -0
- package/dist/hooks-oAipbPQ2.js.map +1 -0
- package/dist/hooks.js +2 -86
- package/dist/i18n-D1jKJPI0.js +1941 -0
- package/dist/i18n-D1jKJPI0.js.map +1 -0
- package/dist/i18n.js +4 -28
- package/dist/index-cli.d.ts +0 -1
- package/dist/index-cli.js +3 -28
- package/dist/index-rn.js +6 -39
- package/dist/index.js +7 -61
- package/dist/interfaces/Config/EntryOptions.d.ts +4 -0
- package/dist/sentry-rn-DZwIel7y.js +743 -0
- package/dist/sentry-rn-DZwIel7y.js.map +1 -0
- package/dist/sentry-rn.js +2 -28
- package/dist/sentry.js +39 -26
- package/dist/sentry.js.map +1 -1
- package/dist/utils.js +45 -37
- package/dist/utils.js.map +1 -1
- package/package.json +56 -86
- package/src/Config/Config.ts +48 -1
- package/src/Config/GoogleAuth.ts +1 -1
- package/src/Sentry/React.ts +2 -4
- package/src/Sentry/ReactNative.ts +2 -4
- package/src/config-cli.ts +1 -1
- package/src/enums/CurrencySymbolEnum.ts +8 -5
- package/src/enums/DeviceEnum.ts +6 -4
- package/src/enums/EnvironmentEnum.ts +8 -5
- package/src/format.ts +32 -32
- package/src/index-cli.ts +0 -1
- package/src/interfaces/Config/EntryOptions.ts +4 -0
- package/dist/Config/Config.js +0 -216
- package/dist/Config/Config.js.map +0 -1
- package/dist/Config/GoogleAuth.js +0 -68
- package/dist/Config/GoogleAuth.js.map +0 -1
- package/dist/Config/Locales.js +0 -62
- package/dist/Config/Locales.js.map +0 -1
- package/dist/Config/Output.js +0 -36
- package/dist/Config/Output.js.map +0 -1
- package/dist/Config/Sitemap.js +0 -72
- package/dist/Config/Sitemap.js.map +0 -1
- package/dist/EnvironmentEnum-BjXsfSRZ.js +0 -9
- package/dist/EnvironmentEnum-BjXsfSRZ.js.map +0 -1
- package/dist/EnvironmentEnum-UcQ6Il1O.js +0 -9
- package/dist/EnvironmentEnum-UcQ6Il1O.js.map +0 -1
- package/dist/Format/NumberFormat.js +0 -77
- package/dist/Format/NumberFormat.js.map +0 -1
- package/dist/Format/NumberParser.js +0 -51
- package/dist/Format/NumberParser.js.map +0 -1
- package/dist/Hooks/useDevice.js +0 -47
- package/dist/Hooks/useDevice.js.map +0 -1
- package/dist/Hooks/useSound.js +0 -47
- package/dist/Hooks/useSound.js.map +0 -1
- package/dist/Hooks/useWebSocket.js +0 -120
- package/dist/Hooks/useWebSocket.js.map +0 -1
- package/dist/I18n/I18n.js +0 -134
- package/dist/I18n/I18n.js.map +0 -1
- package/dist/NumberFormat-CvvBWhHc.js +0 -89
- package/dist/NumberFormat-CvvBWhHc.js.map +0 -1
- package/dist/NumberFormat-glmpbk7E.js +0 -94
- package/dist/NumberFormat-glmpbk7E.js.map +0 -1
- package/dist/React-BaJ1KfGF.js +0 -87
- package/dist/React-BaJ1KfGF.js.map +0 -1
- package/dist/React-qUl0CBmE.js +0 -109
- package/dist/React-qUl0CBmE.js.map +0 -1
- package/dist/ReactNative-B4gt8nBr.js +0 -1790
- package/dist/ReactNative-B4gt8nBr.js.map +0 -1
- package/dist/ReactNative-CDMfQFfN.js +0 -1812
- package/dist/ReactNative-CDMfQFfN.js.map +0 -1
- package/dist/Sentry/Build.d.ts +0 -9
- package/dist/Sentry/Build.js +0 -87
- package/dist/Sentry/Build.js.map +0 -1
- package/dist/Sentry/React.js +0 -103
- package/dist/Sentry/React.js.map +0 -1
- package/dist/Sentry/ReactNative.js +0 -113
- package/dist/Sentry/ReactNative.js.map +0 -1
- package/dist/Sentry/Utils.js +0 -24
- package/dist/Sentry/Utils.js.map +0 -1
- package/dist/Utils/Array.js +0 -26
- package/dist/Utils/Array.js.map +0 -1
- package/dist/Utils/Files.js +0 -51
- package/dist/Utils/Files.js.map +0 -1
- package/dist/Utils/Pagination.js +0 -32
- package/dist/Utils/Pagination.js.map +0 -1
- package/dist/Utils/Utils.js +0 -101
- package/dist/Utils/Utils.js.map +0 -1
- package/dist/Utils-BC1fDy39.js +0 -74
- package/dist/Utils-BC1fDy39.js.map +0 -1
- package/dist/Utils-Cq948gfa.js +0 -20
- package/dist/Utils-Cq948gfa.js.map +0 -1
- package/dist/Utils-D7KRF8VU.js +0 -64
- package/dist/Utils-D7KRF8VU.js.map +0 -1
- package/dist/Utils-Dilye04y.js +0 -22
- package/dist/Utils-Dilye04y.js.map +0 -1
- package/dist/config-cli.cjs +0 -500
- package/dist/config-cli.cjs.map +0 -1
- package/dist/config-cli.js.map +0 -1
- package/dist/config-cli.mjs +0 -469
- package/dist/config-cli.mjs.map +0 -1
- package/dist/enums/CurrencySymbolEnum.js +0 -15
- package/dist/enums/CurrencySymbolEnum.js.map +0 -1
- package/dist/enums/DeviceEnum.js +0 -12
- package/dist/enums/DeviceEnum.js.map +0 -1
- package/dist/enums/EnvironmentEnum.js +0 -13
- package/dist/enums/EnvironmentEnum.js.map +0 -1
- package/dist/format.cjs +0 -43
- package/dist/format.cjs.map +0 -1
- package/dist/format.js.map +0 -1
- package/dist/format.mjs +0 -30
- package/dist/format.mjs.map +0 -1
- package/dist/hooks.cjs +0 -13
- package/dist/hooks.cjs.map +0 -1
- package/dist/hooks.js.map +0 -1
- package/dist/hooks.mjs +0 -4
- package/dist/hooks.mjs.map +0 -1
- package/dist/i18n.cjs +0 -3039
- package/dist/i18n.cjs.map +0 -1
- package/dist/i18n.js.map +0 -1
- package/dist/i18n.mjs +0 -3032
- package/dist/i18n.mjs.map +0 -1
- package/dist/index-cli.cjs +0 -30
- package/dist/index-cli.cjs.map +0 -1
- package/dist/index-cli.js.map +0 -1
- package/dist/index-cli.mjs +0 -14
- package/dist/index-cli.mjs.map +0 -1
- package/dist/index-rn.cjs +0 -57
- package/dist/index-rn.cjs.map +0 -1
- package/dist/index-rn.js.map +0 -1
- package/dist/index-rn.mjs +0 -36
- package/dist/index-rn.mjs.map +0 -1
- package/dist/index.cjs +0 -79
- package/dist/index.cjs.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/index.mjs +0 -40
- package/dist/index.mjs.map +0 -1
- package/dist/interfaces/Config/ConfigOptions.js +0 -6
- package/dist/interfaces/Config/ConfigOptions.js.map +0 -1
- package/dist/interfaces/Config/OutputMap.js +0 -6
- package/dist/interfaces/Config/OutputMap.js.map +0 -1
- package/dist/interfaces/Config/OutputOptions.js +0 -6
- package/dist/interfaces/Config/OutputOptions.js.map +0 -1
- package/dist/interfaces/Config/SitemapMap.js +0 -6
- package/dist/interfaces/Config/SitemapMap.js.map +0 -1
- package/dist/interfaces/Config/StringMap.js +0 -6
- package/dist/interfaces/Config/StringMap.js.map +0 -1
- package/dist/interfaces/Format/FormatOptions.js +0 -6
- package/dist/interfaces/Format/FormatOptions.js.map +0 -1
- package/dist/interfaces/Sentry/InitOptions.js +0 -6
- package/dist/interfaces/Sentry/InitOptions.js.map +0 -1
- package/dist/interfaces/Sentry/InitOptionsRN.js +0 -6
- package/dist/interfaces/Sentry/InitOptionsRN.js.map +0 -1
- package/dist/interfaces/Sentry/SourceMapOptions.d.ts +0 -7
- package/dist/interfaces/Sentry/SourceMapOptions.js +0 -6
- package/dist/interfaces/Sentry/SourceMapOptions.js.map +0 -1
- package/dist/sentry-cli.cjs +0 -119
- package/dist/sentry-cli.cjs.map +0 -1
- package/dist/sentry-cli.d.ts +0 -9
- package/dist/sentry-cli.js +0 -49
- package/dist/sentry-cli.js.map +0 -1
- package/dist/sentry-cli.mjs +0 -98
- package/dist/sentry-cli.mjs.map +0 -1
- package/dist/sentry-rn.cjs +0 -11
- package/dist/sentry-rn.cjs.map +0 -1
- package/dist/sentry-rn.js.map +0 -1
- package/dist/sentry-rn.mjs +0 -4
- package/dist/sentry-rn.mjs.map +0 -1
- package/dist/sentry.cjs +0 -11
- package/dist/sentry.cjs.map +0 -1
- package/dist/sentry.mjs +0 -4
- package/dist/sentry.mjs.map +0 -1
- package/dist/types/Config/OptionType.js +0 -6
- package/dist/types/Config/OptionType.js.map +0 -1
- package/dist/types/Format/OptionType.js +0 -6
- package/dist/types/Format/OptionType.js.map +0 -1
- package/dist/types/Sentry/OptionType.js +0 -6
- package/dist/types/Sentry/OptionType.js.map +0 -1
- package/dist/useWebSocket-B_B6kWXM.js +0 -167
- package/dist/useWebSocket-B_B6kWXM.js.map +0 -1
- package/dist/useWebSocket-YQWaiBz9.js +0 -172
- package/dist/useWebSocket-YQWaiBz9.js.map +0 -1
- package/dist/utils.cjs +0 -59
- package/dist/utils.cjs.map +0 -1
- package/dist/utils.mjs +0 -43
- package/dist/utils.mjs.map +0 -1
- package/src/Sentry/Build.ts +0 -67
- package/src/interfaces/Sentry/SourceMapOptions.ts +0 -7
- package/src/sentry-cli.ts +0 -16
package/dist/format.d.ts
CHANGED
|
@@ -1,30 +1,30 @@
|
|
|
1
1
|
import { CurrencySymbolEnum } from './enums/CurrencySymbolEnum';
|
|
2
|
-
import '@formatjs/intl-getcanonicallocales/polyfill';
|
|
3
|
-
import '@formatjs/intl-locale/polyfill';
|
|
4
|
-
import '@formatjs/intl-pluralrules/locale-data/en';
|
|
5
|
-
import '@formatjs/intl-pluralrules/locale-data/vi';
|
|
6
|
-
import '@formatjs/intl-pluralrules/locale-data/zh';
|
|
7
|
-
import '@formatjs/intl-pluralrules/polyfill';
|
|
8
|
-
import '@formatjs/intl-displaynames/locale-data/en';
|
|
9
|
-
import '@formatjs/intl-displaynames/locale-data/vi';
|
|
10
|
-
import '@formatjs/intl-displaynames/locale-data/zh';
|
|
11
|
-
import '@formatjs/intl-displaynames/polyfill';
|
|
12
|
-
import '@formatjs/intl-listformat/locale-data/en';
|
|
13
|
-
import '@formatjs/intl-listformat/locale-data/vi';
|
|
14
|
-
import '@formatjs/intl-listformat/locale-data/zh';
|
|
15
|
-
import '@formatjs/intl-listformat/polyfill';
|
|
16
|
-
import '@formatjs/intl-numberformat/locale-data/en';
|
|
17
|
-
import '@formatjs/intl-numberformat/locale-data/vi';
|
|
18
|
-
import '@formatjs/intl-numberformat/locale-data/zh';
|
|
19
|
-
import '@formatjs/intl-numberformat/polyfill';
|
|
20
|
-
import '@formatjs/intl-relativetimeformat/locale-data/en';
|
|
21
|
-
import '@formatjs/intl-relativetimeformat/locale-data/vi';
|
|
22
|
-
import '@formatjs/intl-relativetimeformat/locale-data/zh';
|
|
23
|
-
import '@formatjs/intl-relativetimeformat/polyfill';
|
|
24
|
-
import '@formatjs/intl-datetimeformat/locale-data/en';
|
|
25
|
-
import '@formatjs/intl-datetimeformat/locale-data/vi';
|
|
26
|
-
import '@formatjs/intl-datetimeformat/locale-data/zh';
|
|
27
|
-
import '@formatjs/intl-datetimeformat/polyfill';
|
|
2
|
+
import '@formatjs/intl-getcanonicallocales/polyfill.js';
|
|
3
|
+
import '@formatjs/intl-locale/polyfill.js';
|
|
4
|
+
import '@formatjs/intl-pluralrules/locale-data/en.js';
|
|
5
|
+
import '@formatjs/intl-pluralrules/locale-data/vi.js';
|
|
6
|
+
import '@formatjs/intl-pluralrules/locale-data/zh.js';
|
|
7
|
+
import '@formatjs/intl-pluralrules/polyfill.js';
|
|
8
|
+
import '@formatjs/intl-displaynames/locale-data/en.js';
|
|
9
|
+
import '@formatjs/intl-displaynames/locale-data/vi.js';
|
|
10
|
+
import '@formatjs/intl-displaynames/locale-data/zh.js';
|
|
11
|
+
import '@formatjs/intl-displaynames/polyfill.js';
|
|
12
|
+
import '@formatjs/intl-listformat/locale-data/en.js';
|
|
13
|
+
import '@formatjs/intl-listformat/locale-data/vi.js';
|
|
14
|
+
import '@formatjs/intl-listformat/locale-data/zh.js';
|
|
15
|
+
import '@formatjs/intl-listformat/polyfill.js';
|
|
16
|
+
import '@formatjs/intl-numberformat/locale-data/en.js';
|
|
17
|
+
import '@formatjs/intl-numberformat/locale-data/vi.js';
|
|
18
|
+
import '@formatjs/intl-numberformat/locale-data/zh.js';
|
|
19
|
+
import '@formatjs/intl-numberformat/polyfill.js';
|
|
20
|
+
import '@formatjs/intl-relativetimeformat/locale-data/en.js';
|
|
21
|
+
import '@formatjs/intl-relativetimeformat/locale-data/vi.js';
|
|
22
|
+
import '@formatjs/intl-relativetimeformat/locale-data/zh.js';
|
|
23
|
+
import '@formatjs/intl-relativetimeformat/polyfill.js';
|
|
24
|
+
import '@formatjs/intl-datetimeformat/locale-data/en.js';
|
|
25
|
+
import '@formatjs/intl-datetimeformat/locale-data/vi.js';
|
|
26
|
+
import '@formatjs/intl-datetimeformat/locale-data/zh.js';
|
|
27
|
+
import '@formatjs/intl-datetimeformat/polyfill.js';
|
|
28
28
|
import '@formatjs/intl-datetimeformat/add-golden-tz.js';
|
|
29
29
|
export * from './Format/NumberFormat';
|
|
30
30
|
export { CurrencySymbolEnum };
|
package/dist/format.js
CHANGED
|
@@ -1,55 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
var _exportNames = {
|
|
7
|
-
CurrencySymbolEnum: true
|
|
8
|
-
};
|
|
9
|
-
Object.defineProperty(exports, "CurrencySymbolEnum", {
|
|
10
|
-
enumerable: true,
|
|
11
|
-
get: function get() {
|
|
12
|
-
return _CurrencySymbolEnum.CurrencySymbolEnum;
|
|
13
|
-
}
|
|
14
|
-
});
|
|
15
|
-
var _CurrencySymbolEnum = require("./enums/CurrencySymbolEnum");
|
|
16
|
-
require("@formatjs/intl-getcanonicallocales/polyfill");
|
|
17
|
-
require("@formatjs/intl-locale/polyfill");
|
|
18
|
-
require("@formatjs/intl-pluralrules/locale-data/en");
|
|
19
|
-
require("@formatjs/intl-pluralrules/locale-data/vi");
|
|
20
|
-
require("@formatjs/intl-pluralrules/locale-data/zh");
|
|
21
|
-
require("@formatjs/intl-pluralrules/polyfill");
|
|
22
|
-
require("@formatjs/intl-displaynames/locale-data/en");
|
|
23
|
-
require("@formatjs/intl-displaynames/locale-data/vi");
|
|
24
|
-
require("@formatjs/intl-displaynames/locale-data/zh");
|
|
25
|
-
require("@formatjs/intl-displaynames/polyfill");
|
|
26
|
-
require("@formatjs/intl-listformat/locale-data/en");
|
|
27
|
-
require("@formatjs/intl-listformat/locale-data/vi");
|
|
28
|
-
require("@formatjs/intl-listformat/locale-data/zh");
|
|
29
|
-
require("@formatjs/intl-listformat/polyfill");
|
|
30
|
-
require("@formatjs/intl-numberformat/locale-data/en");
|
|
31
|
-
require("@formatjs/intl-numberformat/locale-data/vi");
|
|
32
|
-
require("@formatjs/intl-numberformat/locale-data/zh");
|
|
33
|
-
require("@formatjs/intl-numberformat/polyfill");
|
|
34
|
-
require("@formatjs/intl-relativetimeformat/locale-data/en");
|
|
35
|
-
require("@formatjs/intl-relativetimeformat/locale-data/vi");
|
|
36
|
-
require("@formatjs/intl-relativetimeformat/locale-data/zh");
|
|
37
|
-
require("@formatjs/intl-relativetimeformat/polyfill");
|
|
38
|
-
require("@formatjs/intl-datetimeformat/locale-data/en");
|
|
39
|
-
require("@formatjs/intl-datetimeformat/locale-data/vi");
|
|
40
|
-
require("@formatjs/intl-datetimeformat/locale-data/zh");
|
|
41
|
-
require("@formatjs/intl-datetimeformat/polyfill");
|
|
42
|
-
require("@formatjs/intl-datetimeformat/add-golden-tz.js");
|
|
43
|
-
var _NumberFormat = require("./Format/NumberFormat");
|
|
44
|
-
Object.keys(_NumberFormat).forEach(function (key) {
|
|
45
|
-
if (key === "default" || key === "__esModule") return;
|
|
46
|
-
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
47
|
-
if (key in exports && exports[key] === _NumberFormat[key]) return;
|
|
48
|
-
Object.defineProperty(exports, key, {
|
|
49
|
-
enumerable: true,
|
|
50
|
-
get: function get() {
|
|
51
|
-
return _NumberFormat[key];
|
|
52
|
-
}
|
|
53
|
-
});
|
|
54
|
-
});
|
|
55
|
-
//# sourceMappingURL=format.js.map
|
|
1
|
+
import { a as e, i as t, n, r, t as i } from "./format-BgweN3o5.js";
|
|
2
|
+
export { e as CurrencySymbolEnum, i as formatAccountNumber, n as formatNumber, r as getCurrencySymbol, t as parseFormatNumber };
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { useEffect as e, useRef as t, useState as n, useSyncExternalStore as r } from "react";
|
|
2
|
+
import { Howl as i } from "howler";
|
|
3
|
+
//#region src/enums/DeviceEnum.ts
|
|
4
|
+
var a = {
|
|
5
|
+
PC: "pc",
|
|
6
|
+
MOBILE: "mobile"
|
|
7
|
+
}, o = () => {
|
|
8
|
+
let [t, r] = n(a.PC);
|
|
9
|
+
return e(() => {
|
|
10
|
+
let e = () => "ontouchstart" in window || navigator.maxTouchPoints > 0, t = () => window.screen.orientation?.type.includes("portrait") || window.innerHeight > window.innerWidth, n = () => "onmousemove" in window, i = () => {
|
|
11
|
+
e() && t() && !n() ? r(a.MOBILE) : r(a.PC);
|
|
12
|
+
};
|
|
13
|
+
return i(), window.addEventListener("resize", i), () => {
|
|
14
|
+
window.removeEventListener("resize", i);
|
|
15
|
+
};
|
|
16
|
+
}, []), t;
|
|
17
|
+
}, s = (e) => window.localStorage.getItem(e) || "", c = (e, t) => (window.addEventListener(e, t), () => {
|
|
18
|
+
window.removeEventListener(e, t);
|
|
19
|
+
}), l = (e) => ({
|
|
20
|
+
dataSEStore: r((t) => c(e, t), () => s(e)),
|
|
21
|
+
setDataSEStore: (e, t) => {
|
|
22
|
+
window.localStorage.setItem(e, t), window.dispatchEvent(new Event(e));
|
|
23
|
+
},
|
|
24
|
+
removeDataSEStore: (e) => {
|
|
25
|
+
window.localStorage.removeItem(e), window.dispatchEvent(new Event(e));
|
|
26
|
+
}
|
|
27
|
+
}), u = ({ src: t, volume: r, autoplay: a = !1, loop: o = !1 }) => {
|
|
28
|
+
let [s, c] = n(null);
|
|
29
|
+
return e(() => {
|
|
30
|
+
let e = new i({
|
|
31
|
+
src: t,
|
|
32
|
+
onplayerror: (t, n) => {
|
|
33
|
+
console.log("onplayerror", t, n), e.once("unlock", () => {});
|
|
34
|
+
},
|
|
35
|
+
loop: !!o,
|
|
36
|
+
volume: r,
|
|
37
|
+
autoplay: a
|
|
38
|
+
});
|
|
39
|
+
return c(e), () => {
|
|
40
|
+
e.unload();
|
|
41
|
+
};
|
|
42
|
+
}, []), [s];
|
|
43
|
+
}, d = () => {
|
|
44
|
+
let [r, i] = n(""), [a, o] = n(!1), [s, c] = n(!1), [l, u] = n([]), d = t(null), f = t(void 0);
|
|
45
|
+
return e(() => (r && (d.current === null ? d.current = new WebSocket(r) : d.current.url !== r && (d.current.close(), d.current = new WebSocket(r)), d.current.onopen = (e) => {
|
|
46
|
+
c(!1), o(!0), f.current = window.setInterval(() => {
|
|
47
|
+
d.current?.readyState === WebSocket.OPEN && d.current?.send("ping");
|
|
48
|
+
}, 3e4);
|
|
49
|
+
}, d.current.onmessage = (e) => {
|
|
50
|
+
if (console.log("WebSocket onmessage", "event.data", e.data), e.data === "ping") {
|
|
51
|
+
d.current?.send("pong");
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
setTimeout(() => {
|
|
55
|
+
u((t) => (t.includes(e.data) || t.push(e.data), t));
|
|
56
|
+
}, 1e3);
|
|
57
|
+
}, d.current.onerror = (e) => {
|
|
58
|
+
console.error("WebSocket onerror:", "error", e), c(!0), o(!1);
|
|
59
|
+
}, d.current.onclose = (e) => {
|
|
60
|
+
e.wasClean || (console.warn(`[close] Connection died, code=${e.code} reason=${e.reason}`), c(!0)), o(!1);
|
|
61
|
+
}), () => {
|
|
62
|
+
d.current && d.current.close(), clearInterval(f.current);
|
|
63
|
+
}), [r]), {
|
|
64
|
+
isConnected: a,
|
|
65
|
+
isError: s,
|
|
66
|
+
connect: (e) => {
|
|
67
|
+
e && r !== e && i(e);
|
|
68
|
+
},
|
|
69
|
+
messages: l,
|
|
70
|
+
clearMessages: () => {
|
|
71
|
+
u([]);
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
};
|
|
75
|
+
//#endregion
|
|
76
|
+
export { o as i, u as n, l as r, d as t };
|
|
77
|
+
|
|
78
|
+
//# sourceMappingURL=hooks-oAipbPQ2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks-oAipbPQ2.js","names":[],"sources":["../src/enums/DeviceEnum.ts","../src/Hooks/useDevice.ts","../src/Hooks/useSEStore.tsx","../src/Hooks/useSound.ts","../src/Hooks/useWebSocket.ts"],"sourcesContent":["export const DeviceEnum = {\n PC: 'pc',\n MOBILE: 'mobile',\n} as const;\n\nexport type DeviceEnum = (typeof DeviceEnum)[keyof typeof DeviceEnum];\n","import { useEffect, useState } from 'react';\nimport { DeviceEnum } from '../enums/DeviceEnum';\n\nconst useDevice = (): DeviceEnum => {\n const [deviceType, setDevice] = useState<DeviceEnum>(DeviceEnum.PC);\n\n useEffect(() => {\n const isTouchDevice = () =>\n 'ontouchstart' in window || navigator.maxTouchPoints > 0;\n const isPortrait = () =>\n window.screen.orientation?.type.includes('portrait') ||\n window.innerHeight > window.innerWidth;\n const hasMouse = () => 'onmousemove' in window;\n\n const detectDevice = () => {\n if (isTouchDevice() && isPortrait() && !hasMouse()) {\n setDevice(DeviceEnum.MOBILE);\n } else {\n setDevice(DeviceEnum.PC);\n }\n };\n\n detectDevice();\n window.addEventListener('resize', detectDevice);\n\n return () => {\n window.removeEventListener('resize', detectDevice);\n };\n }, []);\n\n return deviceType;\n};\n\nexport default useDevice;\n","import { useSyncExternalStore } from 'react';\n\nconst getDataSEStoreFromLocalStorage = (key: string): string => {\n return window.localStorage.getItem(key) || '';\n};\n\nconst subscribe = (key: string, callback: () => void): (() => void) => {\n window.addEventListener(key, callback);\n\n return () => {\n window.removeEventListener(key, callback);\n };\n};\n\nconst useSEStore = (key: string) => {\n const dataSEStore = useSyncExternalStore(\n (callback: () => void) => subscribe(key, callback),\n () => getDataSEStoreFromLocalStorage(key),\n );\n\n const setDataSEStore = (key: string, value: string) => {\n window.localStorage.setItem(key, value);\n window.dispatchEvent(new Event(key));\n };\n\n const removeDataSEStore = (key: string) => {\n window.localStorage.removeItem(key);\n window.dispatchEvent(new Event(key));\n };\n\n return { dataSEStore, setDataSEStore, removeDataSEStore };\n};\n\nexport default useSEStore;\n","import { Howl } from 'howler';\nimport { useEffect, useState } from 'react';\n\nexport interface UseSoundProps {\n src: string;\n volume?: number;\n autoplay?: boolean;\n loop?: boolean;\n}\n\nconst useSound = ({\n src,\n volume,\n autoplay = false,\n loop = false,\n}: UseSoundProps) => {\n const [audio, setAudio] = useState<Howl | null>(null);\n\n useEffect(() => {\n const howl = new Howl({\n src: src,\n onplayerror: (e, d) => {\n console.log('onplayerror', e, d);\n\n howl.once('unlock', () => {\n // howl.play();\n });\n },\n loop: loop ? true : false,\n volume: volume,\n autoplay: autoplay,\n });\n\n setAudio(howl);\n\n return () => {\n howl.unload();\n };\n }, []);\n\n return [audio] as const;\n};\n\nexport default useSound;\n","import { useEffect, useRef, useState } from 'react';\n\ntype WebSocketRef = WebSocket | null;\n\ninterface WebSocketOutput {\n isConnected: boolean;\n isError: boolean;\n connect: (url: string) => void;\n messages: string[];\n clearMessages: () => void;\n}\n\nconst useWebSocket = (): WebSocketOutput => {\n const pingInterval = 30000; // Default ping every 30 seconds\n const [url, setUrl] = useState('');\n const [isConnected, setIsConnected] = useState<boolean>(false);\n const [isError, setIsError] = useState<boolean>(false);\n const [messages, setMessages] = useState<string[]>([]);\n const socketRef = useRef<WebSocketRef>(null);\n const heartbeatIntervalRef = useRef<number>(undefined);\n\n const connect = (newUrl: string) => {\n if (newUrl && url !== newUrl) {\n setUrl(newUrl);\n }\n };\n\n const clearMessages = () => {\n setMessages([]);\n };\n\n // Connect WebSocket after login\n useEffect(() => {\n if (url) {\n // Open WebSocket connection\n if (socketRef.current === null) {\n socketRef.current = new WebSocket(url);\n } else if (socketRef.current.url !== url) {\n socketRef.current.close();\n socketRef.current = new WebSocket(url);\n }\n\n socketRef.current.onopen = (event: Event) => {\n // console.log('WebSocket onopen', 'event', event);\n\n setIsError(false);\n setIsConnected(true);\n\n heartbeatIntervalRef.current = window.setInterval(() => {\n if (socketRef.current?.readyState === WebSocket.OPEN) {\n socketRef.current?.send('ping');\n }\n }, pingInterval);\n };\n\n socketRef.current.onmessage = (event: MessageEvent) => {\n console.log('WebSocket onmessage', 'event.data', event.data);\n\n if (event.data === 'ping') {\n socketRef.current?.send('pong');\n return;\n }\n\n setTimeout(() => {\n setMessages((prev) => {\n if (!prev.includes(event.data)) {\n prev.push(event.data);\n }\n\n return prev;\n });\n }, 1000);\n };\n\n socketRef.current.onerror = (error: Event) => {\n console.error('WebSocket onerror:', 'error', error);\n\n setIsError(true);\n setIsConnected(false);\n };\n\n socketRef.current.onclose = (event: CloseEvent) => {\n // console.log('WebSocket onclose', 'event', event);\n\n if (event.wasClean) {\n // console.log(\n // `[close] Connection closed cleanly, code=${event.code} reason=${event.reason}`,\n // );\n } else {\n // e.g. server process killed or network down, event.code is usually 1006 in this case\n console.warn(\n `[close] Connection died, code=${event.code} reason=${event.reason}`,\n );\n\n setIsError(true);\n }\n\n setIsConnected(false);\n };\n }\n\n // Cleanup on unmount or logout\n return () => {\n if (socketRef.current) {\n socketRef.current.close();\n }\n\n clearInterval(heartbeatIntervalRef.current);\n };\n }, [url]);\n\n return { isConnected, isError, connect, messages, clearMessages };\n};\n\nexport default useWebSocket;\n"],"mappings":"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"}
|
package/dist/hooks.js
CHANGED
|
@@ -1,86 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
var _exportNames = {
|
|
8
|
-
useDevice: true,
|
|
9
|
-
useSEStore: true,
|
|
10
|
-
useSound: true,
|
|
11
|
-
useWebSocket: true
|
|
12
|
-
};
|
|
13
|
-
Object.defineProperty(exports, "useDevice", {
|
|
14
|
-
enumerable: true,
|
|
15
|
-
get: function get() {
|
|
16
|
-
return _useDevice["default"];
|
|
17
|
-
}
|
|
18
|
-
});
|
|
19
|
-
Object.defineProperty(exports, "useSEStore", {
|
|
20
|
-
enumerable: true,
|
|
21
|
-
get: function get() {
|
|
22
|
-
return _useSEStore["default"];
|
|
23
|
-
}
|
|
24
|
-
});
|
|
25
|
-
Object.defineProperty(exports, "useSound", {
|
|
26
|
-
enumerable: true,
|
|
27
|
-
get: function get() {
|
|
28
|
-
return _useSound["default"];
|
|
29
|
-
}
|
|
30
|
-
});
|
|
31
|
-
Object.defineProperty(exports, "useWebSocket", {
|
|
32
|
-
enumerable: true,
|
|
33
|
-
get: function get() {
|
|
34
|
-
return _useWebSocket["default"];
|
|
35
|
-
}
|
|
36
|
-
});
|
|
37
|
-
var _useDevice = _interopRequireWildcard(require("./Hooks/useDevice"));
|
|
38
|
-
Object.keys(_useDevice).forEach(function (key) {
|
|
39
|
-
if (key === "default" || key === "__esModule") return;
|
|
40
|
-
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
41
|
-
if (key in exports && exports[key] === _useDevice[key]) return;
|
|
42
|
-
Object.defineProperty(exports, key, {
|
|
43
|
-
enumerable: true,
|
|
44
|
-
get: function get() {
|
|
45
|
-
return _useDevice[key];
|
|
46
|
-
}
|
|
47
|
-
});
|
|
48
|
-
});
|
|
49
|
-
var _useSEStore = _interopRequireWildcard(require("./Hooks/useSEStore"));
|
|
50
|
-
Object.keys(_useSEStore).forEach(function (key) {
|
|
51
|
-
if (key === "default" || key === "__esModule") return;
|
|
52
|
-
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
53
|
-
if (key in exports && exports[key] === _useSEStore[key]) return;
|
|
54
|
-
Object.defineProperty(exports, key, {
|
|
55
|
-
enumerable: true,
|
|
56
|
-
get: function get() {
|
|
57
|
-
return _useSEStore[key];
|
|
58
|
-
}
|
|
59
|
-
});
|
|
60
|
-
});
|
|
61
|
-
var _useSound = _interopRequireWildcard(require("./Hooks/useSound"));
|
|
62
|
-
Object.keys(_useSound).forEach(function (key) {
|
|
63
|
-
if (key === "default" || key === "__esModule") return;
|
|
64
|
-
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
65
|
-
if (key in exports && exports[key] === _useSound[key]) return;
|
|
66
|
-
Object.defineProperty(exports, key, {
|
|
67
|
-
enumerable: true,
|
|
68
|
-
get: function get() {
|
|
69
|
-
return _useSound[key];
|
|
70
|
-
}
|
|
71
|
-
});
|
|
72
|
-
});
|
|
73
|
-
var _useWebSocket = _interopRequireWildcard(require("./Hooks/useWebSocket"));
|
|
74
|
-
Object.keys(_useWebSocket).forEach(function (key) {
|
|
75
|
-
if (key === "default" || key === "__esModule") return;
|
|
76
|
-
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
77
|
-
if (key in exports && exports[key] === _useWebSocket[key]) return;
|
|
78
|
-
Object.defineProperty(exports, key, {
|
|
79
|
-
enumerable: true,
|
|
80
|
-
get: function get() {
|
|
81
|
-
return _useWebSocket[key];
|
|
82
|
-
}
|
|
83
|
-
});
|
|
84
|
-
});
|
|
85
|
-
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
86
|
-
//# sourceMappingURL=hooks.js.map
|
|
1
|
+
import { i as e, n as t, r as n, t as r } from "./hooks-oAipbPQ2.js";
|
|
2
|
+
export { e as useDevice, n as useSEStore, t as useSound, r as useWebSocket };
|