@andre1502/react-utilities 0.9.7 → 1.0.2
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/dist/Config/Config.js +6 -7
- package/dist/Config/Config.js.map +1 -1
- package/dist/Config/GoogleAuth.js +1 -1
- package/dist/Config/GoogleAuth.js.map +1 -1
- package/dist/Config/Sitemap.js +1 -1
- package/dist/Config/Sitemap.js.map +1 -1
- package/dist/EnvironmentEnum-BjXsfSRZ.js.map +1 -1
- package/dist/EnvironmentEnum-UcQ6Il1O.js.map +1 -1
- package/dist/Format/NumberParser.js.map +1 -1
- package/dist/Hooks/useDevice.d.ts +3 -0
- package/dist/Hooks/useDevice.js +47 -0
- package/dist/Hooks/useDevice.js.map +1 -0
- package/dist/Hooks/useSEStore.d.ts +5 -0
- package/dist/Hooks/useSound.d.ts +9 -0
- package/dist/Hooks/useSound.js +47 -0
- package/dist/Hooks/useSound.js.map +1 -0
- package/dist/Hooks/useWebSocket.d.ts +9 -0
- package/dist/Hooks/useWebSocket.js +120 -0
- package/dist/Hooks/useWebSocket.js.map +1 -0
- package/dist/I18n/I18n.d.ts +1 -1
- package/dist/I18n/I18n.js +9 -5
- package/dist/I18n/I18n.js.map +1 -1
- package/dist/NumberFormat-CvvBWhHc.js.map +1 -1
- package/dist/NumberFormat-glmpbk7E.js.map +1 -1
- package/dist/React-BaJ1KfGF.js.map +1 -1
- package/dist/React-qUl0CBmE.js.map +1 -1
- package/dist/ReactNative-Ckbnh5vm.js +1770 -0
- package/dist/ReactNative-Ckbnh5vm.js.map +1 -0
- package/dist/ReactNative-DLA9Xwp4.js +1792 -0
- package/dist/ReactNative-DLA9Xwp4.js.map +1 -0
- package/dist/Sentry/Build.js +1 -1
- package/dist/Sentry/Build.js.map +1 -1
- package/dist/Sentry/React.js.map +1 -1
- package/dist/Sentry/ReactNative.js +3 -3
- package/dist/Sentry/ReactNative.js.map +1 -1
- package/dist/Utils/Array.d.ts +3 -0
- package/dist/Utils/Array.js +26 -0
- package/dist/Utils/Array.js.map +1 -0
- package/dist/Utils/Files.js +2 -2
- package/dist/Utils/Files.js.map +1 -1
- package/dist/Utils/Pagination.d.ts +3 -0
- package/dist/Utils/Pagination.js +32 -0
- package/dist/Utils/Pagination.js.map +1 -0
- package/dist/Utils/Utils.d.ts +11 -0
- package/dist/Utils/Utils.js +101 -0
- package/dist/Utils/Utils.js.map +1 -0
- package/dist/Utils-BC1fDy39.js +74 -0
- package/dist/Utils-BC1fDy39.js.map +1 -0
- package/dist/Utils-Cq948gfa.js.map +1 -1
- package/dist/Utils-D7KRF8VU.js +64 -0
- package/dist/Utils-D7KRF8VU.js.map +1 -0
- package/dist/Utils-Dilye04y.js.map +1 -1
- package/dist/config-cli.cjs +6 -6
- package/dist/config-cli.cjs.map +1 -1
- package/dist/config-cli.js +3 -3
- package/dist/config-cli.js.map +1 -1
- package/dist/config-cli.mjs +6 -5
- package/dist/config-cli.mjs.map +1 -1
- package/dist/enums/CurrencySymbolEnum.js +4 -2
- package/dist/enums/CurrencySymbolEnum.js.map +1 -1
- package/dist/enums/DeviceEnum.d.ts +4 -0
- package/dist/enums/DeviceEnum.js +12 -0
- package/dist/enums/DeviceEnum.js.map +1 -0
- package/dist/hooks.cjs +13 -0
- package/dist/hooks.cjs.map +1 -0
- package/dist/hooks.d.ts +9 -0
- package/dist/hooks.js +87 -0
- package/dist/hooks.js.map +1 -0
- package/dist/hooks.mjs +4 -0
- package/dist/hooks.mjs.map +1 -0
- package/dist/i18n.cjs +3104 -6
- package/dist/i18n.cjs.map +1 -1
- package/dist/i18n.mjs +3104 -2
- package/dist/i18n.mjs.map +1 -1
- package/dist/index-cli.cjs +2 -1
- package/dist/index-cli.cjs.map +1 -1
- package/dist/index-cli.mjs +2 -1
- package/dist/index-cli.mjs.map +1 -1
- package/dist/index-rn.cjs +5 -5
- package/dist/index-rn.mjs +3 -3
- package/dist/index.cjs +26 -4
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.js +22 -0
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +6 -2
- package/dist/index.mjs.map +1 -1
- package/dist/sentry-cli.cjs.map +1 -1
- package/dist/sentry-cli.js +1 -1
- package/dist/sentry-cli.js.map +1 -1
- package/dist/sentry-cli.mjs.map +1 -1
- package/dist/sentry-rn.cjs +1 -1
- package/dist/sentry-rn.mjs +1 -1
- package/dist/useWebSocket-GlUpioz3.js +168 -0
- package/dist/useWebSocket-GlUpioz3.js.map +1 -0
- package/dist/useWebSocket-vgu8TAsa.js +163 -0
- package/dist/useWebSocket-vgu8TAsa.js.map +1 -0
- package/dist/utils.cjs +59 -0
- package/dist/utils.cjs.map +1 -0
- package/dist/utils.d.ts +3 -0
- package/dist/utils.js +39 -0
- package/dist/utils.js.map +1 -0
- package/dist/utils.mjs +43 -0
- package/dist/utils.mjs.map +1 -0
- package/package.json +52 -41
- package/src/Config/Config.ts +7 -5
- package/src/Hooks/useDevice.ts +34 -0
- package/src/Hooks/useSEStore.tsx +29 -0
- package/src/Hooks/useSound.ts +44 -0
- package/src/Hooks/useWebSocket.ts +115 -0
- package/src/I18n/I18n.ts +1 -4
- package/src/Sentry/ReactNative.ts +2 -5
- package/src/Utils/Array.ts +23 -0
- package/src/Utils/Pagination.ts +42 -0
- package/src/Utils/Utils.ts +79 -0
- package/src/enums/DeviceEnum.ts +4 -0
- package/src/hooks.ts +11 -0
- package/src/index.ts +2 -0
- package/src/utils.ts +3 -0
- package/dist/I18n-BIBLVzaQ.js +0 -3313
- package/dist/I18n-BIBLVzaQ.js.map +0 -1
- package/dist/I18n-tdxuTc45.js +0 -3316
- package/dist/I18n-tdxuTc45.js.map +0 -1
- package/dist/ReactNative-CqUrY2ZJ.js +0 -3856
- package/dist/ReactNative-CqUrY2ZJ.js.map +0 -1
- package/dist/ReactNative-mNnws-b5.js +0 -3834
- package/dist/ReactNative-mNnws-b5.js.map +0 -1
@@ -0,0 +1,163 @@
|
|
1
|
+
import { useState, useEffect, useSyncExternalStore, useRef } from 'react';
|
2
|
+
import { Howl } from 'howler';
|
3
|
+
|
4
|
+
var DeviceEnum;
|
5
|
+
(function (DeviceEnum) {
|
6
|
+
DeviceEnum["PC"] = "pc";
|
7
|
+
DeviceEnum["MOBILE"] = "mobile";
|
8
|
+
})(DeviceEnum || (DeviceEnum = {}));
|
9
|
+
|
10
|
+
const useDevice = () => {
|
11
|
+
const [deviceType, setDevice] = useState(DeviceEnum.PC);
|
12
|
+
useEffect(() => {
|
13
|
+
const isTouchDevice = () => 'ontouchstart' in window || navigator.maxTouchPoints > 0;
|
14
|
+
const isPortrait = () => window.screen.orientation?.type.includes('portrait') || window.innerHeight > window.innerWidth;
|
15
|
+
const hasMouse = () => 'onmousemove' in window;
|
16
|
+
const detectDevice = () => {
|
17
|
+
if (isTouchDevice() && isPortrait() && !hasMouse()) {
|
18
|
+
setDevice(DeviceEnum.MOBILE);
|
19
|
+
} else {
|
20
|
+
setDevice(DeviceEnum.PC);
|
21
|
+
}
|
22
|
+
};
|
23
|
+
detectDevice();
|
24
|
+
window.addEventListener('resize', detectDevice);
|
25
|
+
return () => {
|
26
|
+
window.removeEventListener('resize', detectDevice);
|
27
|
+
};
|
28
|
+
}, []);
|
29
|
+
return deviceType;
|
30
|
+
};
|
31
|
+
|
32
|
+
const getDataSEStoreFromLocalStorage = (key) => {
|
33
|
+
return window.localStorage.getItem(key) || '';
|
34
|
+
};
|
35
|
+
const subscribe = (key, callback) => {
|
36
|
+
window.addEventListener(key, callback);
|
37
|
+
return () => {
|
38
|
+
window.removeEventListener(key, callback);
|
39
|
+
};
|
40
|
+
};
|
41
|
+
const useSEStore = (key) => {
|
42
|
+
const dataSEStore = useSyncExternalStore((callback) => subscribe(key, callback), () => getDataSEStoreFromLocalStorage(key));
|
43
|
+
const setDataSEStore = (key, value) => {
|
44
|
+
window.localStorage.setItem(key, value);
|
45
|
+
window.dispatchEvent(new Event(key));
|
46
|
+
};
|
47
|
+
return { dataSEStore, setDataSEStore };
|
48
|
+
};
|
49
|
+
|
50
|
+
const useSound = _ref => {
|
51
|
+
let {
|
52
|
+
src,
|
53
|
+
volume,
|
54
|
+
autoplay = false,
|
55
|
+
loop = false
|
56
|
+
} = _ref;
|
57
|
+
const [audio, setAudio] = useState(null);
|
58
|
+
useEffect(() => {
|
59
|
+
const howl = new Howl({
|
60
|
+
src: src,
|
61
|
+
onplayerror: (e, d) => {
|
62
|
+
console.log('onplayerror', e, d);
|
63
|
+
howl.once('unlock', () => {
|
64
|
+
// howl.play();
|
65
|
+
});
|
66
|
+
},
|
67
|
+
loop: loop ? true : false,
|
68
|
+
volume: volume,
|
69
|
+
autoplay: autoplay
|
70
|
+
});
|
71
|
+
setAudio(howl);
|
72
|
+
return () => {
|
73
|
+
howl.unload();
|
74
|
+
};
|
75
|
+
}, []);
|
76
|
+
return [audio];
|
77
|
+
};
|
78
|
+
|
79
|
+
const useWebSocket = () => {
|
80
|
+
const pingInterval = 30000; // Default ping every 30 seconds
|
81
|
+
const [url, setUrl] = useState('');
|
82
|
+
const [isConnected, setIsConnected] = useState(false);
|
83
|
+
const [isError, setIsError] = useState(false);
|
84
|
+
const [messages, setMessages] = useState([]);
|
85
|
+
const socketRef = useRef(null);
|
86
|
+
const heartbeatIntervalRef = useRef(undefined);
|
87
|
+
const connect = newUrl => {
|
88
|
+
if (newUrl && url !== newUrl) {
|
89
|
+
setUrl(newUrl);
|
90
|
+
}
|
91
|
+
};
|
92
|
+
const clearMessages = () => {
|
93
|
+
setMessages([]);
|
94
|
+
};
|
95
|
+
// Connect WebSocket after login
|
96
|
+
useEffect(() => {
|
97
|
+
if (url) {
|
98
|
+
// Open WebSocket connection
|
99
|
+
if (socketRef.current === null) {
|
100
|
+
socketRef.current = new WebSocket(url);
|
101
|
+
} else if (socketRef.current.url !== url) {
|
102
|
+
socketRef.current.close();
|
103
|
+
socketRef.current = new WebSocket(url);
|
104
|
+
}
|
105
|
+
socketRef.current.onopen = event => {
|
106
|
+
// console.log('WebSocket onopen', 'event', event);
|
107
|
+
setIsError(false);
|
108
|
+
setIsConnected(true);
|
109
|
+
heartbeatIntervalRef.current = window.setInterval(() => {
|
110
|
+
if (socketRef.current?.readyState === WebSocket.OPEN) {
|
111
|
+
socketRef.current?.send('ping');
|
112
|
+
}
|
113
|
+
}, pingInterval);
|
114
|
+
};
|
115
|
+
socketRef.current.onmessage = event => {
|
116
|
+
console.log('WebSocket onmessage', 'event.data', event.data);
|
117
|
+
if (event.data === 'ping') {
|
118
|
+
socketRef.current?.send('pong');
|
119
|
+
return;
|
120
|
+
}
|
121
|
+
setTimeout(() => {
|
122
|
+
setMessages(prev => {
|
123
|
+
if (!prev.includes(event.data)) {
|
124
|
+
prev.push(event.data);
|
125
|
+
}
|
126
|
+
return prev;
|
127
|
+
});
|
128
|
+
}, 1000);
|
129
|
+
};
|
130
|
+
socketRef.current.onerror = error => {
|
131
|
+
console.error('WebSocket onerror:', 'error', error);
|
132
|
+
setIsError(true);
|
133
|
+
setIsConnected(false);
|
134
|
+
};
|
135
|
+
socketRef.current.onclose = event => {
|
136
|
+
// console.log('WebSocket onclose', 'event', event);
|
137
|
+
if (event.wasClean) ; else {
|
138
|
+
// e.g. server process killed or network down, event.code is usually 1006 in this case
|
139
|
+
console.warn(`[close] Connection died, code=${event.code} reason=${event.reason}`);
|
140
|
+
setIsError(true);
|
141
|
+
}
|
142
|
+
setIsConnected(false);
|
143
|
+
};
|
144
|
+
}
|
145
|
+
// Cleanup on unmount or logout
|
146
|
+
return () => {
|
147
|
+
if (socketRef.current) {
|
148
|
+
socketRef.current.close();
|
149
|
+
}
|
150
|
+
clearInterval(heartbeatIntervalRef.current);
|
151
|
+
};
|
152
|
+
}, [url]);
|
153
|
+
return {
|
154
|
+
isConnected,
|
155
|
+
isError,
|
156
|
+
connect,
|
157
|
+
messages,
|
158
|
+
clearMessages
|
159
|
+
};
|
160
|
+
};
|
161
|
+
|
162
|
+
export { useSEStore as a, useSound as b, useWebSocket as c, useDevice as u };
|
163
|
+
//# sourceMappingURL=useWebSocket-vgu8TAsa.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"useWebSocket-vgu8TAsa.js","sources":["../src/enums/DeviceEnum.ts","../src/Hooks/useDevice.ts","../src/Hooks/useSEStore.tsx","../src/Hooks/useSound.ts","../src/Hooks/useWebSocket.ts"],"sourcesContent":[null,null,null,null,null],"names":["DeviceEnum","useDevice","deviceType","setDevice","useState","PC","useEffect","isTouchDevice","window","navigator","maxTouchPoints","isPortrait","screen","orientation","type","includes","innerHeight","innerWidth","hasMouse","detectDevice","MOBILE","addEventListener","removeEventListener","useSound","_ref","src","volume","autoplay","loop","audio","setAudio","howl","Howl","onplayerror","e","d","console","log","once","unload","useWebSocket","pingInterval","url","setUrl","isConnected","setIsConnected","isError","setIsError","messages","setMessages","socketRef","useRef","heartbeatIntervalRef","undefined","connect","newUrl","clearMessages","current","WebSocket","close","onopen","event","setInterval","readyState","OPEN","send","onmessage","data","setTimeout","prev","push","onerror","error","onclose","wasClean","warn","code","reason","clearInterval"],"mappings":"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"}
|
package/dist/utils.cjs
ADDED
@@ -0,0 +1,59 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
var Utils = require('./Utils-BC1fDy39.js');
|
4
|
+
|
5
|
+
const padArrayStart = (array, targetLength, padValue) => {
|
6
|
+
const padding = Array(Math.max(targetLength - array.length, 0)).fill(padValue);
|
7
|
+
return [...padding, ...array];
|
8
|
+
};
|
9
|
+
const sliceFromEnd = (array, positionFromEnd) => {
|
10
|
+
if (positionFromEnd <= 0) return []; // If position is 0 or negative, return an empty array
|
11
|
+
return array.slice(-positionFromEnd);
|
12
|
+
};
|
13
|
+
const joinWithoutFalsy = function (array) {
|
14
|
+
let separator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ',';
|
15
|
+
return array.filter(Boolean).join(separator);
|
16
|
+
};
|
17
|
+
|
18
|
+
const getItemRow = (index, page, pageSize) => {
|
19
|
+
page = page ?? 0;
|
20
|
+
if (page > 0) {
|
21
|
+
page = page - 1;
|
22
|
+
}
|
23
|
+
return (pageSize ?? 0) * page + index + 1;
|
24
|
+
};
|
25
|
+
const getNextPage = (page, pageSize, totalRecords) => {
|
26
|
+
let totalPage = 0;
|
27
|
+
page = (page ?? 0) + 1;
|
28
|
+
if (pageSize && totalRecords) {
|
29
|
+
totalPage = Math.ceil(totalRecords / pageSize);
|
30
|
+
}
|
31
|
+
if (page > totalPage) {
|
32
|
+
page = undefined;
|
33
|
+
}
|
34
|
+
return page;
|
35
|
+
};
|
36
|
+
const getTotalPages = (pageSize, totalRecords) => {
|
37
|
+
let totalPage = 0;
|
38
|
+
if (pageSize && totalRecords) {
|
39
|
+
totalPage = Math.ceil(totalRecords / pageSize);
|
40
|
+
}
|
41
|
+
return totalPage || 1;
|
42
|
+
};
|
43
|
+
|
44
|
+
exports.autoBlur = Utils.autoBlur;
|
45
|
+
exports.getKeyByValue = Utils.getKeyByValue;
|
46
|
+
exports.getLastPathName = Utils.getLastPathName;
|
47
|
+
exports.getUniquePermutations = Utils.getUniquePermutations;
|
48
|
+
exports.getV = Utils.getV;
|
49
|
+
exports.isHiddenKey = Utils.isHiddenKey;
|
50
|
+
exports.isValidHttpUrl = Utils.isValidHttpUrl;
|
51
|
+
exports.padNumber = Utils.padNumber;
|
52
|
+
exports.parseQueryString = Utils.parseQueryString;
|
53
|
+
exports.getItemRow = getItemRow;
|
54
|
+
exports.getNextPage = getNextPage;
|
55
|
+
exports.getTotalPages = getTotalPages;
|
56
|
+
exports.joinWithoutFalsy = joinWithoutFalsy;
|
57
|
+
exports.padArrayStart = padArrayStart;
|
58
|
+
exports.sliceFromEnd = sliceFromEnd;
|
59
|
+
//# sourceMappingURL=utils.cjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"utils.cjs","sources":["../src/Utils/Array.ts","../src/Utils/Pagination.ts"],"sourcesContent":[null,null],"names":["padArrayStart","array","targetLength","padValue","padding","Array","Math","max","length","fill","sliceFromEnd","positionFromEnd","slice","joinWithoutFalsy","separator","arguments","undefined","filter","Boolean","join","getItemRow","index","page","pageSize","getNextPage","totalRecords","totalPage","ceil","getTotalPages"],"mappings":";;;;AAAO,MAAMA,aAAa,GAAGA,CAC3BC,KAAe,EACfC,YAAoB,EACpBC,QAAgB,KACJ;EACZ,MAAMC,OAAO,GAAGC,KAAK,CAACC,IAAI,CAACC,GAAG,CAACL,YAAY,GAAGD,KAAK,CAACO,MAAM,EAAE,CAAC,CAAC,CAAC,CAACC,IAAI,CAClEN,QAAQ,CACT;AACD,EAAA,OAAO,CAAC,GAAGC,OAAO,EAAE,GAAGH,KAAK,CAAC;AAC/B;MAEaS,YAAY,GAAGA,CAC1BT,KAAe,EACfU,eAAuB,KACX;AACZ,EAAA,IAAIA,eAAe,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;AAEpC,EAAA,OAAOV,KAAK,CAACW,KAAK,CAAC,CAACD,eAAe,CAAC;AACtC;MAEaE,gBAAgB,GAAG,UAACZ,KAAe,EAA6B;AAAA,EAAA,IAA3Ba,SAAS,GAAAC,SAAA,CAAAP,MAAA,GAAA,CAAA,IAAAO,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAAG,GAAG;EAC/D,OAAOd,KAAK,CAACgB,MAAM,CAACC,OAAO,CAAC,CAACC,IAAI,CAACL,SAAS,CAAC;AAC9C;;ACtBO,MAAMM,UAAU,GAAGA,CAACC,KAAa,EAAEC,IAAa,EAAEC,QAAiB,KAAI;EAC5ED,IAAI,GAAGA,IAAI,IAAI,CAAC;EAEhB,IAAIA,IAAI,GAAG,CAAC,EAAE;IACZA,IAAI,GAAGA,IAAI,GAAG,CAAC;AACjB;EAEA,OAAO,CAACC,QAAQ,IAAI,CAAC,IAAID,IAAI,GAAGD,KAAK,GAAG,CAAC;AAC3C;AAEO,MAAMG,WAAW,GAAGA,CACzBF,IAAa,EACbC,QAAiB,EACjBE,YAAqB,KACC;EACtB,IAAIC,SAAS,GAAG,CAAC;AAEjBJ,EAAAA,IAAI,GAAG,CAACA,IAAI,IAAI,CAAC,IAAI,CAAC;EAEtB,IAAIC,QAAQ,IAAIE,YAAY,EAAE;IAC5BC,SAAS,GAAGpB,IAAI,CAACqB,IAAI,CAACF,YAAY,GAAGF,QAAQ,CAAC;AAChD;EAEA,IAAID,IAAI,GAAGI,SAAS,EAAE;AACpBJ,IAAAA,IAAI,GAAGN,SAAS;AAClB;AAEA,EAAA,OAAOM,IAAI;AACb;MAEaM,aAAa,GAAGA,CAC3BL,QAAiB,EACjBE,YAAqB,KACX;EACV,IAAIC,SAAS,GAAG,CAAC;EAEjB,IAAIH,QAAQ,IAAIE,YAAY,EAAE;IAC5BC,SAAS,GAAGpB,IAAI,CAACqB,IAAI,CAACF,YAAY,GAAGF,QAAQ,CAAC;AAChD;EAEA,OAAOG,SAAS,IAAI,CAAC;AACvB;;;;;;;;;;;;;;;;;;"}
|
package/dist/utils.d.ts
ADDED
package/dist/utils.js
ADDED
@@ -0,0 +1,39 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
var _Array = require("./Utils/Array");
|
7
|
+
Object.keys(_Array).forEach(function (key) {
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
9
|
+
if (key in exports && exports[key] === _Array[key]) return;
|
10
|
+
Object.defineProperty(exports, key, {
|
11
|
+
enumerable: true,
|
12
|
+
get: function get() {
|
13
|
+
return _Array[key];
|
14
|
+
}
|
15
|
+
});
|
16
|
+
});
|
17
|
+
var _Pagination = require("./Utils/Pagination");
|
18
|
+
Object.keys(_Pagination).forEach(function (key) {
|
19
|
+
if (key === "default" || key === "__esModule") return;
|
20
|
+
if (key in exports && exports[key] === _Pagination[key]) return;
|
21
|
+
Object.defineProperty(exports, key, {
|
22
|
+
enumerable: true,
|
23
|
+
get: function get() {
|
24
|
+
return _Pagination[key];
|
25
|
+
}
|
26
|
+
});
|
27
|
+
});
|
28
|
+
var _Utils = require("./Utils/Utils");
|
29
|
+
Object.keys(_Utils).forEach(function (key) {
|
30
|
+
if (key === "default" || key === "__esModule") return;
|
31
|
+
if (key in exports && exports[key] === _Utils[key]) return;
|
32
|
+
Object.defineProperty(exports, key, {
|
33
|
+
enumerable: true,
|
34
|
+
get: function get() {
|
35
|
+
return _Utils[key];
|
36
|
+
}
|
37
|
+
});
|
38
|
+
});
|
39
|
+
//# sourceMappingURL=utils.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"utils.js","names":["_Array","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_Pagination","_Utils"],"sources":["../src/utils.ts"],"sourcesContent":["export * from './Utils/Array';\nexport * from './Utils/Pagination';\nexport * from './Utils/Utils';\n"],"mappings":";;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,MAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,MAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAT,MAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,WAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,WAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,WAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAC,WAAA,CAAAL,GAAA;IAAA;EAAA;AAAA;AACA,IAAAM,MAAA,GAAAV,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAQ,MAAA,EAAAP,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAM,MAAA,CAAAN,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAE,MAAA,CAAAN,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
|
package/dist/utils.mjs
ADDED
@@ -0,0 +1,43 @@
|
|
1
|
+
export { e as autoBlur, d as getKeyByValue, a as getLastPathName, c as getUniquePermutations, g as getV, f as isHiddenKey, i as isValidHttpUrl, p as padNumber, b as parseQueryString } from './Utils-D7KRF8VU.js';
|
2
|
+
|
3
|
+
const padArrayStart = (array, targetLength, padValue) => {
|
4
|
+
const padding = Array(Math.max(targetLength - array.length, 0)).fill(padValue);
|
5
|
+
return [...padding, ...array];
|
6
|
+
};
|
7
|
+
const sliceFromEnd = (array, positionFromEnd) => {
|
8
|
+
if (positionFromEnd <= 0) return []; // If position is 0 or negative, return an empty array
|
9
|
+
return array.slice(-positionFromEnd);
|
10
|
+
};
|
11
|
+
const joinWithoutFalsy = function (array) {
|
12
|
+
let separator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ',';
|
13
|
+
return array.filter(Boolean).join(separator);
|
14
|
+
};
|
15
|
+
|
16
|
+
const getItemRow = (index, page, pageSize) => {
|
17
|
+
page = page ?? 0;
|
18
|
+
if (page > 0) {
|
19
|
+
page = page - 1;
|
20
|
+
}
|
21
|
+
return (pageSize ?? 0) * page + index + 1;
|
22
|
+
};
|
23
|
+
const getNextPage = (page, pageSize, totalRecords) => {
|
24
|
+
let totalPage = 0;
|
25
|
+
page = (page ?? 0) + 1;
|
26
|
+
if (pageSize && totalRecords) {
|
27
|
+
totalPage = Math.ceil(totalRecords / pageSize);
|
28
|
+
}
|
29
|
+
if (page > totalPage) {
|
30
|
+
page = undefined;
|
31
|
+
}
|
32
|
+
return page;
|
33
|
+
};
|
34
|
+
const getTotalPages = (pageSize, totalRecords) => {
|
35
|
+
let totalPage = 0;
|
36
|
+
if (pageSize && totalRecords) {
|
37
|
+
totalPage = Math.ceil(totalRecords / pageSize);
|
38
|
+
}
|
39
|
+
return totalPage || 1;
|
40
|
+
};
|
41
|
+
|
42
|
+
export { getItemRow, getNextPage, getTotalPages, joinWithoutFalsy, padArrayStart, sliceFromEnd };
|
43
|
+
//# sourceMappingURL=utils.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"utils.mjs","sources":["../src/Utils/Array.ts","../src/Utils/Pagination.ts"],"sourcesContent":[null,null],"names":["padArrayStart","array","targetLength","padValue","padding","Array","Math","max","length","fill","sliceFromEnd","positionFromEnd","slice","joinWithoutFalsy","separator","arguments","undefined","filter","Boolean","join","getItemRow","index","page","pageSize","getNextPage","totalRecords","totalPage","ceil","getTotalPages"],"mappings":";;AAAO,MAAMA,aAAa,GAAGA,CAC3BC,KAAe,EACfC,YAAoB,EACpBC,QAAgB,KACJ;EACZ,MAAMC,OAAO,GAAGC,KAAK,CAACC,IAAI,CAACC,GAAG,CAACL,YAAY,GAAGD,KAAK,CAACO,MAAM,EAAE,CAAC,CAAC,CAAC,CAACC,IAAI,CAClEN,QAAQ,CACT;AACD,EAAA,OAAO,CAAC,GAAGC,OAAO,EAAE,GAAGH,KAAK,CAAC;AAC/B;MAEaS,YAAY,GAAGA,CAC1BT,KAAe,EACfU,eAAuB,KACX;AACZ,EAAA,IAAIA,eAAe,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;AAEpC,EAAA,OAAOV,KAAK,CAACW,KAAK,CAAC,CAACD,eAAe,CAAC;AACtC;MAEaE,gBAAgB,GAAG,UAACZ,KAAe,EAA6B;AAAA,EAAA,IAA3Ba,SAAS,GAAAC,SAAA,CAAAP,MAAA,GAAA,CAAA,IAAAO,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAAG,GAAG;EAC/D,OAAOd,KAAK,CAACgB,MAAM,CAACC,OAAO,CAAC,CAACC,IAAI,CAACL,SAAS,CAAC;AAC9C;;ACtBO,MAAMM,UAAU,GAAGA,CAACC,KAAa,EAAEC,IAAa,EAAEC,QAAiB,KAAI;EAC5ED,IAAI,GAAGA,IAAI,IAAI,CAAC;EAEhB,IAAIA,IAAI,GAAG,CAAC,EAAE;IACZA,IAAI,GAAGA,IAAI,GAAG,CAAC;AACjB;EAEA,OAAO,CAACC,QAAQ,IAAI,CAAC,IAAID,IAAI,GAAGD,KAAK,GAAG,CAAC;AAC3C;AAEO,MAAMG,WAAW,GAAGA,CACzBF,IAAa,EACbC,QAAiB,EACjBE,YAAqB,KACC;EACtB,IAAIC,SAAS,GAAG,CAAC;AAEjBJ,EAAAA,IAAI,GAAG,CAACA,IAAI,IAAI,CAAC,IAAI,CAAC;EAEtB,IAAIC,QAAQ,IAAIE,YAAY,EAAE;IAC5BC,SAAS,GAAGpB,IAAI,CAACqB,IAAI,CAACF,YAAY,GAAGF,QAAQ,CAAC;AAChD;EAEA,IAAID,IAAI,GAAGI,SAAS,EAAE;AACpBJ,IAAAA,IAAI,GAAGN,SAAS;AAClB;AAEA,EAAA,OAAOM,IAAI;AACb;MAEaM,aAAa,GAAGA,CAC3BL,QAAiB,EACjBE,YAAqB,KACX;EACV,IAAIC,SAAS,GAAG,CAAC;EAEjB,IAAIH,QAAQ,IAAIE,YAAY,EAAE;IAC5BC,SAAS,GAAGpB,IAAI,CAACqB,IAAI,CAACF,YAAY,GAAGF,QAAQ,CAAC;AAChD;EAEA,OAAOG,SAAS,IAAI,CAAC;AACvB;;;;"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@andre1502/react-utilities",
|
3
|
-
"version": "0.
|
3
|
+
"version": "1.0.2",
|
4
4
|
"description": "module to combine common functions",
|
5
5
|
"repository": {
|
6
6
|
"type": "git",
|
@@ -30,6 +30,11 @@
|
|
30
30
|
"require": "./dist/format.cjs",
|
31
31
|
"import": "./dist/format.mjs"
|
32
32
|
},
|
33
|
+
"./hooks": {
|
34
|
+
"types": "./dist/hooks.d.ts",
|
35
|
+
"require": "./dist/hooks.cjs",
|
36
|
+
"import": "./dist/hooks.mjs"
|
37
|
+
},
|
33
38
|
"./i18n": {
|
34
39
|
"types": "./dist/i18n.d.ts",
|
35
40
|
"require": "./dist/i18n.cjs",
|
@@ -45,6 +50,11 @@
|
|
45
50
|
"require": "./dist/sentry-rn.cjs",
|
46
51
|
"import": "./dist/sentry-rn.mjs"
|
47
52
|
},
|
53
|
+
"./utils": {
|
54
|
+
"types": "./dist/utils.d.ts",
|
55
|
+
"require": "./dist/utils.cjs",
|
56
|
+
"import": "./dist/utils.mjs"
|
57
|
+
},
|
48
58
|
"./sentry-cli": {
|
49
59
|
"types": "./dist/sentry-cli.d.ts",
|
50
60
|
"require": "./dist/sentry-cli.cjs",
|
@@ -77,56 +87,57 @@
|
|
77
87
|
"test": "echo \"Warn: no test specified, ignore it\" && exit 0"
|
78
88
|
},
|
79
89
|
"dependencies": {
|
80
|
-
"@formatjs/intl-datetimeformat": "^6.
|
81
|
-
"@formatjs/intl-displaynames": "^6.
|
82
|
-
"@formatjs/intl-getcanonicallocales": "^2.
|
83
|
-
"@formatjs/intl-listformat": "^7.
|
84
|
-
"@formatjs/intl-locale": "^4.
|
85
|
-
"@formatjs/intl-numberformat": "^8.
|
86
|
-
"@formatjs/intl-pluralrules": "^5.
|
87
|
-
"@formatjs/intl-relativetimeformat": "^11.
|
88
|
-
"@sentry/react-native": "^
|
89
|
-
"@types/
|
90
|
+
"@formatjs/intl-datetimeformat": "^6.17.4",
|
91
|
+
"@formatjs/intl-displaynames": "^6.8.11",
|
92
|
+
"@formatjs/intl-getcanonicallocales": "^2.5.5",
|
93
|
+
"@formatjs/intl-listformat": "^7.7.11",
|
94
|
+
"@formatjs/intl-locale": "^4.2.11",
|
95
|
+
"@formatjs/intl-numberformat": "^8.15.4",
|
96
|
+
"@formatjs/intl-pluralrules": "^5.4.4",
|
97
|
+
"@formatjs/intl-relativetimeformat": "^11.4.11",
|
98
|
+
"@sentry/react-native": "^6.9.1",
|
99
|
+
"@types/howler": "^2.2.12",
|
100
|
+
"@types/lodash-es": "^4.17.12",
|
90
101
|
"google-auth-library": "^9.11.0",
|
91
102
|
"googleapis": "^140.0.1",
|
92
|
-
"
|
103
|
+
"howler": "^2.2.4",
|
104
|
+
"i18next": "^24.2.3",
|
93
105
|
"i18next-chained-backend": "^4.6.2",
|
94
|
-
"i18next-http-backend": "^
|
106
|
+
"i18next-http-backend": "^3.0.2",
|
95
107
|
"i18next-localstorage-backend": "^4.2.0",
|
96
108
|
"i18next-resources-to-backend": "^1.2.1",
|
97
|
-
"lodash": "^4.17.21",
|
109
|
+
"lodash-es": "^4.17.21",
|
98
110
|
"sitemap": "^8.0.0"
|
99
111
|
},
|
100
112
|
"devDependencies": {
|
101
|
-
"@babel/cli": "^7.
|
102
|
-
"@babel/core": "^7.
|
103
|
-
"@babel/preset-env": "^7.
|
104
|
-
"@babel/preset-react": "^7.
|
105
|
-
"@babel/preset-typescript": "^7.
|
113
|
+
"@babel/cli": "^7.26.4",
|
114
|
+
"@babel/core": "^7.26.10",
|
115
|
+
"@babel/preset-env": "^7.26.9",
|
116
|
+
"@babel/preset-react": "^7.26.3",
|
117
|
+
"@babel/preset-typescript": "^7.26.0",
|
106
118
|
"@rollup/plugin-babel": "^6.0.4",
|
107
|
-
"@rollup/plugin-commonjs": "^
|
119
|
+
"@rollup/plugin-commonjs": "^28.0.3",
|
108
120
|
"@rollup/plugin-json": "^6.1.0",
|
109
|
-
"@rollup/plugin-node-resolve": "^
|
110
|
-
"@rollup/plugin-typescript": "^
|
111
|
-
"@types/node": "^
|
112
|
-
"@types/react": "^
|
113
|
-
"@typescript-eslint/eslint-plugin": "^
|
114
|
-
"@typescript-eslint/parser": "^
|
121
|
+
"@rollup/plugin-node-resolve": "^16.0.1",
|
122
|
+
"@rollup/plugin-typescript": "^12.1.2",
|
123
|
+
"@types/node": "^22.13.11",
|
124
|
+
"@types/react": "^19.0.12",
|
125
|
+
"@typescript-eslint/eslint-plugin": "^8.27.0",
|
126
|
+
"@typescript-eslint/parser": "^8.27.0",
|
115
127
|
"cross-env": "^7.0.3",
|
116
|
-
"eslint": "^9.
|
117
|
-
"eslint-config-prettier": "^
|
118
|
-
"eslint-plugin-prettier": "^5.
|
119
|
-
"eslint-plugin-react": "^7.
|
120
|
-
"eslint-plugin-react-hooks": "^
|
121
|
-
"eslint-plugin-storybook": "^0.
|
122
|
-
"prettier": "^3.
|
123
|
-
"prettier-plugin-organize-imports": "^4.
|
124
|
-
"prettier-plugin-packagejson": "^2.5.
|
125
|
-
"rollup": "^4.
|
128
|
+
"eslint": "^9.23.0",
|
129
|
+
"eslint-config-prettier": "^10.1.1",
|
130
|
+
"eslint-plugin-prettier": "^5.2.3",
|
131
|
+
"eslint-plugin-react": "^7.37.4",
|
132
|
+
"eslint-plugin-react-hooks": "^5.2.0",
|
133
|
+
"eslint-plugin-storybook": "^0.11.6",
|
134
|
+
"prettier": "^3.5.3",
|
135
|
+
"prettier-plugin-organize-imports": "^4.1.0",
|
136
|
+
"prettier-plugin-packagejson": "^2.5.10",
|
137
|
+
"rollup": "^4.37.0",
|
126
138
|
"rollup-plugin-peer-deps-external": "^2.2.4",
|
127
|
-
"tslib": "^2.
|
128
|
-
"typescript": "^5.
|
129
|
-
"yarn-upgrade-all": "^0.7.2"
|
139
|
+
"tslib": "^2.8.1",
|
140
|
+
"typescript": "^5.8.2"
|
130
141
|
},
|
131
142
|
"peerDependencies": {
|
132
143
|
"react": "*",
|
@@ -135,9 +146,9 @@
|
|
135
146
|
"tslib": "*"
|
136
147
|
},
|
137
148
|
"optionalDependencies": {
|
138
|
-
"@rollup/rollup-linux-x64-gnu": "^4.
|
149
|
+
"@rollup/rollup-linux-x64-gnu": "^4.37.0"
|
139
150
|
},
|
140
|
-
"packageManager": "yarn@4.
|
151
|
+
"packageManager": "yarn@4.8.1",
|
141
152
|
"publishConfig": {
|
142
153
|
"@andre1502:registry": "https://registry.npmjs.org/"
|
143
154
|
}
|
package/src/Config/Config.ts
CHANGED
@@ -1,7 +1,8 @@
|
|
1
|
-
import
|
1
|
+
import { isNull } from 'lodash-es';
|
2
2
|
import { EnvironmentEnum } from '../enums/EnvironmentEnum';
|
3
3
|
import { OutputMap } from '../interfaces/Config/OutputMap';
|
4
4
|
import { OutputOptions } from '../interfaces/Config/OutputOptions';
|
5
|
+
import { isHiddenKey } from '../utils';
|
5
6
|
import { outputToFile } from './Output';
|
6
7
|
|
7
8
|
/**
|
@@ -170,7 +171,7 @@ const contentMap = (key: string, value: any, exportAs: string): string => {
|
|
170
171
|
|
171
172
|
switch (exportAs) {
|
172
173
|
case 'ts':
|
173
|
-
if (
|
174
|
+
if (isNull(value)) {
|
174
175
|
content += `export const ${key}: string | null = ${value};\n`;
|
175
176
|
} else if (typeof value === 'boolean') {
|
176
177
|
content += `export const ${key}: boolean = ${value};\n`;
|
@@ -211,9 +212,10 @@ const transformConfig = (
|
|
211
212
|
let content = contentMap(envKey, envMap(env), options.exportAs!);
|
212
213
|
|
213
214
|
Object.keys(data).forEach((key) => {
|
214
|
-
const newConfigKey =
|
215
|
+
const newConfigKey =
|
216
|
+
configKeyPrefix && !isHiddenKey(key) ? `${configKeyPrefix}${key}` : key;
|
215
217
|
|
216
|
-
if (key === 'BASE_PROJECT') {
|
218
|
+
if (key === 'BASE_PROJECT' || key === '__BASE_PROJECT') {
|
217
219
|
const extensionFile = [
|
218
220
|
`.${data[key]}.js`,
|
219
221
|
`.${data[key]}.jsx`,
|
@@ -233,7 +235,7 @@ const transformConfig = (
|
|
233
235
|
return;
|
234
236
|
}
|
235
237
|
|
236
|
-
if (key === 'SITEMAP') {
|
238
|
+
if (key === 'SITEMAP' || key === '__SITEMAP') {
|
237
239
|
content += contentMap(
|
238
240
|
newConfigKey,
|
239
241
|
JSON.stringify(data[key]),
|
@@ -0,0 +1,34 @@
|
|
1
|
+
import { useEffect, useState } from 'react';
|
2
|
+
import { DeviceEnum } from '../enums/DeviceEnum';
|
3
|
+
|
4
|
+
const useDevice = (): DeviceEnum => {
|
5
|
+
const [deviceType, setDevice] = useState<DeviceEnum>(DeviceEnum.PC);
|
6
|
+
|
7
|
+
useEffect(() => {
|
8
|
+
const isTouchDevice = () =>
|
9
|
+
'ontouchstart' in window || navigator.maxTouchPoints > 0;
|
10
|
+
const isPortrait = () =>
|
11
|
+
window.screen.orientation?.type.includes('portrait') ||
|
12
|
+
window.innerHeight > window.innerWidth;
|
13
|
+
const hasMouse = () => 'onmousemove' in window;
|
14
|
+
|
15
|
+
const detectDevice = () => {
|
16
|
+
if (isTouchDevice() && isPortrait() && !hasMouse()) {
|
17
|
+
setDevice(DeviceEnum.MOBILE);
|
18
|
+
} else {
|
19
|
+
setDevice(DeviceEnum.PC);
|
20
|
+
}
|
21
|
+
};
|
22
|
+
|
23
|
+
detectDevice();
|
24
|
+
window.addEventListener('resize', detectDevice);
|
25
|
+
|
26
|
+
return () => {
|
27
|
+
window.removeEventListener('resize', detectDevice);
|
28
|
+
};
|
29
|
+
}, []);
|
30
|
+
|
31
|
+
return deviceType;
|
32
|
+
};
|
33
|
+
|
34
|
+
export default useDevice;
|
@@ -0,0 +1,29 @@
|
|
1
|
+
import { useSyncExternalStore } from 'react';
|
2
|
+
|
3
|
+
const getDataSEStoreFromLocalStorage = (key: string): string => {
|
4
|
+
return window.localStorage.getItem(key) || '';
|
5
|
+
};
|
6
|
+
|
7
|
+
const subscribe = (key: string, callback: () => void): (() => void) => {
|
8
|
+
window.addEventListener(key, callback);
|
9
|
+
|
10
|
+
return () => {
|
11
|
+
window.removeEventListener(key, callback);
|
12
|
+
};
|
13
|
+
};
|
14
|
+
|
15
|
+
const useSEStore = (key: string) => {
|
16
|
+
const dataSEStore = useSyncExternalStore(
|
17
|
+
(callback: () => void) => subscribe(key, callback),
|
18
|
+
() => getDataSEStoreFromLocalStorage(key),
|
19
|
+
);
|
20
|
+
|
21
|
+
const setDataSEStore = (key: string, value: string) => {
|
22
|
+
window.localStorage.setItem(key, value);
|
23
|
+
window.dispatchEvent(new Event(key));
|
24
|
+
};
|
25
|
+
|
26
|
+
return { dataSEStore, setDataSEStore };
|
27
|
+
};
|
28
|
+
|
29
|
+
export default useSEStore;
|
@@ -0,0 +1,44 @@
|
|
1
|
+
import { Howl } from 'howler';
|
2
|
+
import { useEffect, useState } from 'react';
|
3
|
+
|
4
|
+
export interface UseSoundProps {
|
5
|
+
src: string;
|
6
|
+
volume?: number;
|
7
|
+
autoplay?: boolean;
|
8
|
+
loop?: boolean;
|
9
|
+
}
|
10
|
+
|
11
|
+
const useSound = ({
|
12
|
+
src,
|
13
|
+
volume,
|
14
|
+
autoplay = false,
|
15
|
+
loop = false,
|
16
|
+
}: UseSoundProps) => {
|
17
|
+
const [audio, setAudio] = useState<Howl | null>(null);
|
18
|
+
|
19
|
+
useEffect(() => {
|
20
|
+
const howl = new Howl({
|
21
|
+
src: src,
|
22
|
+
onplayerror: (e, d) => {
|
23
|
+
console.log('onplayerror', e, d);
|
24
|
+
|
25
|
+
howl.once('unlock', () => {
|
26
|
+
// howl.play();
|
27
|
+
});
|
28
|
+
},
|
29
|
+
loop: loop ? true : false,
|
30
|
+
volume: volume,
|
31
|
+
autoplay: autoplay,
|
32
|
+
});
|
33
|
+
|
34
|
+
setAudio(howl);
|
35
|
+
|
36
|
+
return () => {
|
37
|
+
howl.unload();
|
38
|
+
};
|
39
|
+
}, []);
|
40
|
+
|
41
|
+
return [audio] as const;
|
42
|
+
};
|
43
|
+
|
44
|
+
export default useSound;
|