react-kanca 1.3.2 → 1.6.0
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 +111 -84
- package/dist/index.cjs.js +6 -0
- package/dist/index.esm.js +6 -0
- package/dist/index.js +1071 -1
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +843 -1
- package/dist/index.modern.js.map +1 -1
- package/package.json +57 -57
- package/dist/index.css +0 -1
package/dist/index.js
CHANGED
|
@@ -1,2 +1,1072 @@
|
|
|
1
|
-
var e,n=require("react"),t=(e=require("js-cookie"))&&"object"==typeof e&&"default"in e?e.default:e,r=function(){};function u(e){if(e&&e.addEventListener){for(var n=arguments.length,t=new Array(n>1?n-1:0),r=1;r<n;r++)t[r-1]=arguments[r];e.addEventListener.apply(e,t)}}function o(e){if(e&&e.removeEventListener){for(var n=arguments.length,t=new Array(n>1?n-1:0),r=1;r<n;r++)t[r-1]=arguments[r];e.removeEventListener.apply(e,t)}}var i="undefined"!=typeof window,c=function(e,n){if(e===n)return!0;if("object"!=typeof e||"object"!=typeof n||null===e||null===n)return!1;var t=Object.keys(e),r=Object.keys(n);if(t.length!==r.length)return!1;for(var u=0,o=t;u<o.length;u++){var i=o[u];if(!r.includes(i)||!c(e[i],n[i]))return!1}return!0};function a(){return(a=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var r in t)({}).hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e}).apply(null,arguments)}"undefined"!=typeof Symbol&&(Symbol.iterator||(Symbol.iterator=Symbol("Symbol.iterator"))),"undefined"!=typeof Symbol&&(Symbol.asyncIterator||(Symbol.asyncIterator=Symbol("Symbol.asyncIterator"))),exports.useBatteryInfo=function(){var e=n.useState(null),t=e[0],r=e[1],u=n.useState(null),o=u[0],i=u[1],c=n.useState(null),a=c[0],s=c[1];return n.useEffect(function(){return function(){try{Promise.resolve(function(e,n){try{var t=Promise.resolve(navigator.getBattery()).then(function(e){var n=function(){r(Math.round(100*e.level)),i(e.charging),s(e.dischargingTime)};return n(),e.addEventListener("chargingchange",n),e.addEventListener("levelchange",n),e.addEventListener("chargingtimechange",n),e.addEventListener("dischargingtimechange",n),function(){e.removeEventListener("chargingchange",n),e.removeEventListener("levelchange",n),e.removeEventListener("chargingtimechange",n),e.removeEventListener("dischargingtimechange",n)}})}catch(e){return n(e)}return t&&t.then?t.then(void 0,n):t}(0,function(e){console.error("Batarya bilgisi alınamadı: "+e.message)}))}catch(e){return Promise.reject(e)}}(),function(){}},[]),{batteryLevel:t,isCharging:o,dischargingTime:a}},exports.useBeforeUnload=function(e,t){void 0===e&&(e=!0);var r=n.useCallback(function(n){if("function"!=typeof e||e())return n.preventDefault(),t&&(n.returnValue=t),t},[e,t]);n.useEffect(function(){if(e)return u(window,"beforeunload",r),function(){return o(window,"beforeunload",r)}},[e,r])},exports.useClickOutside=function(e,t){var r=function(n){e.current&&!e.current.contains(n.target)&&t()};n.useEffect(function(){return document.addEventListener("click",r),function(){document.removeEventListener("click",r)}})},exports.useColorScheme=function(){var e=n.useState(window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),t=e[0],r=e[1];return n.useEffect(function(){var e=window.matchMedia("(prefers-color-scheme: dark)"),n=function(e){r(e.matches?"dark":"light")};return e.addEventListener("change",n),function(){e.removeEventListener("change",n)}},[]),t},exports.useConnection=function(){var e=n.useState(!0),t=e[0],r=e[1];return n.useEffect(function(){var e=["online","offline"],n=function(){return r(navigator.online)};return e.forEach(function(e){return window.addEventListener(e,n)}),function(){e.forEach(function(e){return window.removeEventListener(e,n)})}},[]),{status:t}},exports.useCookie=function(e){var r=n.useState(function(){return t.get(e)||null}),u=r[1];return[r[0],n.useCallback(function(n,r){t.set(e,n,r),u(n)},[e]),n.useCallback(function(){t.remove(e),u(null)},[e])]},exports.useCopyToClipboard=function(){var e=n.useState(!1),t=e[0],r=e[1],u=n.useState(!1),o=u[1];return{copied:t,error:u[0],copyToClipboard:function(e){navigator.clipboard.writeText(e).then(function(){r(!0)}).catch(function(e){o(e)})}}},exports.useDebounce=function(){var e=n.useState(null),t=e[1];return[e[0],function(e,n){var r=setTimeout(function(){"function"==typeof e?e():t(e)},n);return function(){clearTimeout(r)}}]},exports.useEqualObject=c,exports.useForceUpdate=function(){var e=n.useState(0)[1];return n.useCallback(function(){e(function(e){return e+1})},[])},exports.useFullScreen=function(){var e=n.useState(!1),t=e[1];return{isFullScreen:e[0],enterFullScreen:function(){document.documentElement.requestFullscreen?document.documentElement.requestFullscreen():document.documentElement.mozRequestFullScreen?document.documentElement.mozRequestFullScreen():document.documentElement.webkitRequestFullscreen?document.documentElement.webkitRequestFullscreen():document.documentElement.msRequestFullscreen&&document.documentElement.msRequestFullscreen(),t(!0)},exitFullScreen:function(){document.exitFullscreen?document.exitFullscreen():document.mozCancelFullScreen?document.mozCancelFullScreen():document.webkitExitFullscreen?document.webkitExitFullscreen():document.msExitFullscreen&&document.msExitFullscreen(),t(!1)}}},exports.useGeolocation=function(e){var t,r=n.useState({loading:!0,accuracy:null,altitude:null,altitudeAccuracy:null,heading:null,latitude:null,longitude:null,speed:null,timestamp:Date.now()}),u=r[0],o=r[1],i=!0,c=function(e){i&&o({loading:!1,accuracy:e.coords.accuracy,altitude:e.coords.altitude,altitudeAccuracy:e.coords.altitudeAccuracy,heading:e.coords.heading,latitude:e.coords.latitude,longitude:e.coords.longitude,speed:e.coords.speed,timestamp:e.timestamp})},s=function(e){return i&&o(function(n){return a({},n,{loading:!1,error:e})})};return n.useEffect(function(){return navigator.geolocation.getCurrentPosition(c,s,e),t=navigator.geolocation.watchPosition(c,s,e),function(){i=!1,navigator.geolocation.clearWatch(t)}},[]),u},exports.useHover=function(e){var t=n.useState(!1),r=t[0],u=t[1];return"function"==typeof e&&(e=e(r)),[n.cloneElement(e,{onMouseEnter:function(e){u(!0)},onMouseLeave:function(e){u(!1)}}),r]},exports.useIntersectionObserver=function(e,t){var r=n.useState(!1),u=r[0],o=r[1];return n.useEffect(function(){var n=new IntersectionObserver(function(e){o(e[0].isIntersecting)},t);return e.current&&n.observe(e.current),function(){e.current&&n.unobserve(e.current)}},[e,t]),u},exports.useInterval=function(e,t){var r=n.useRef(function(){});n.useEffect(function(){r.current=e}),n.useEffect(function(){if(null!==t){var e=setInterval(function(){return r.current()},t||0);return function(){return clearInterval(e)}}},[t])},exports.useIsFirstRender=function(){var e=n.useRef(!0);return n.useEffect(function(){e.current=!1},[]),e.current},exports.useLocalStorage=function(e,t,u){if(!i)return[t,r,r];if(!e)throw new Error("useLocalStorage key may not be falsy");var o=u?u.raw?function(e){return e}:u.deserializer:JSON.parse,c=n.useRef(function(e){try{var n=u?u.raw?String:u.serializer:JSON.stringify,r=localStorage.getItem(e);return null!==r?o(r):(t&&localStorage.setItem(e,n(t)),t)}catch(e){return t}}),a=n.useState(function(){return c.current(e)}),s=a[0],f=a[1];n.useLayoutEffect(function(){return f(c.current(e))},[e]);var l=n.useCallback(function(n){try{var t,r="function"==typeof n?n(s):n;if(void 0===r)return;t=u?u.raw?"string"==typeof r?r:JSON.stringify(r):u.serializer?u.serializer(r):JSON.stringify(r):JSON.stringify(r),localStorage.setItem(e,t),f(o(t))}catch(e){}},[e,f]),d=n.useCallback(function(){try{localStorage.removeItem(e),f(void 0)}catch(e){}},[e,f]);return[s,l,d]},exports.useMedia=function(e){void 0===e&&(e=1024);var t=n.useState(window.matchMedia("(max-width: "+e+"px)").matches),r=t[0],u=t[1];return n.useEffect(function(){window.matchMedia("(max-width: "+e+"px)").addEventListener("change",function(e){console.log(e.matches),u(e.matches)})}),r},exports.useMobileLandscape=function(){var e=n.useState(!1),t=e[0],r=e[1],u=n.useState(!1),o=u[0],i=u[1],c=n.useState(!1),a=c[0],s=c[1],f=function(){var e=window.innerWidth>window.innerHeight,n=window.innerWidth<=996;r(e),i(n),s(e&&n)};return n.useEffect(function(){return f(),window.addEventListener("resize",f),function(){window.removeEventListener("resize",f)}},[]),{isMobileLandscape:a,isLandscape:t,isMobile:o}},exports.useMousePageLeave=function(e){n.useEffect(function(){return document.documentElement.addEventListener("mouseleave",e),function(){return document.documentElement.removeEventListener("mouseleave",e)}},[])},exports.useMultiStateValidator=function(e,t,r){if(void 0===r&&(r=[void 0]),"object"!=typeof e)throw new Error("state'in bir nesne ya da dizi olması beklenirken -> "+typeof e);var u=n.useRef(t),o=n.useRef(e);u.current=t,o.current=e;var i=n.useState(r),c=i[0],a=i[1],s=n.useCallback(function(){u.current.length>=2?u.current(o.current,a):a(u.current(o.current))},[a]);return n.useEffect(function(){s()},Object.values(e)),[c,s]},exports.useOnlineStatus=function(){var e=n.useState(navigator.onLine),t=e[0],r=e[1];return n.useEffect(function(){var e=function(){return r(!0)},n=function(){return r(!1)};return window.addEventListener("online",e),window.addEventListener("offline",n),function(){window.removeEventListener("online",e),window.removeEventListener("offline",n)}},[]),t},exports.usePageLeave=function(e){n.useEffect(function(){var n=function(n){var t=e();if(t)return n.preventDefault(),n.returnValue=t,t};return window.addEventListener("beforeunload",n),function(){window.removeEventListener("beforeunload",n)}},[e])},exports.usePageVisible=function(){var e=n.useState(!0),t=e[0],r=e[1],u=function(){r("visible"===document.visibilityState)};return n.useEffect(function(){return document.addEventListener("visibilitychange",u),function(){document.removeEventListener("visibilitychange",u)}},[]),t},exports.usePreferredLanguage=function(){var e=n.useState(""),t=e[0],r=e[1];return n.useEffect(function(){var e=navigator.language||navigator.userLanguage;r(e)},[]),t},exports.usePrevious=function(e){var t=n.useRef();return n.useEffect(function(){t.current=e}),t.current},exports.useScrollLock=function(e){n.useEffect(function(){return document.body.style.overflow=e?"hidden":"unset",function(){document.body.style.overflow="unset"}},[e])},exports.useScrollToElement=function(){return n.useCallback(function(e,n){var t;void 0===n&&(n={}),"string"==typeof e?t=document.querySelector(e):e.current&&(t=e.current),t&&t.scrollIntoView(a({behavior:"smooth"},n))},[])},exports.useScrolling=function(e){var t=n.useState(!1),r=t[0],i=t[1];return n.useEffect(function(){if(e.current){var n,t=function(){i(!0),clearTimeout(n),n=setTimeout(function(){i(!1)},150)};return u(e.current,"scroll",t,!1),function(){e.current&&o(e.current,"scroll",t,!1)}}return function(){}},[e]),r},exports.useSessionStorage=function(e,t){var r=n.useState(function(){try{var n=window.sessionStorage.getItem(e);return n?JSON.parse(n):t}catch(e){return console.error(e),t}}),u=r[1];return[r[0],function(n){try{u(n),window.sessionStorage.setItem(e,JSON.stringify(n))}catch(e){console.error(e)}}]},exports.useStateValidator=function(e,t,r){void 0===r&&(r=[void 0]);var u=n.useRef(t),o=n.useRef(e);u.current=t,o.current=e;var i=n.useState(r),c=i[0],a=i[1],s=n.useCallback(function(){u.current.length>=2?u.current(o.current,a):a(u.current(o.current))},[a]);return n.useEffect(function(){s()},[e]),[c,s]},exports.useThrottle=function(e,t){void 0===t&&(t=200);var r,u,o=n.useState(e),i=o[0],c=o[1],a=n.useRef(),s=n.useRef(null),f=n.useRef(0);return n.useEffect(function(){if(a.current)s.current=e,f.current=!0;else{c(e);var n=function(){f.current?(f.current=!1,c(s.current),a.current=setTimeout(n,t)):a.current=void 0};a.current=setTimeout(n,t)}},[e]),(u=n.useRef(r=function(){a.current&&clearTimeout(a.current)})).current=r,n.useEffect(function(){return function(){return u.current()}},[]),i},exports.useWindowScroll=function(){var e=n.useState(function(){return{x:i?window.pageXOffset:0,y:i?window.pageYOffset:0}}),t=e[0],r=e[1];return n.useEffect(function(){var e=function(){r(function(e){var n=window,t=n.pageXOffset,r=n.pageYOffset;return e.x!==t||e.y!==r?{x:t,y:r}:e})};return e(),u(window,"scroll",e,{capture:!1,passive:!0}),function(){o(window,"scroll",e)}},[]),t},exports.useWindowSize=function(){var e=n.useState({width:"",height:""}),t=e[0],r=e[1];return n.useEffect(function(){var e=function(){r({width:window.innerWidth,height:window.innerHeight})};return window.addEventListener("resize",e),e(),function(){window.removeEventListener("resize",e)}},[]),t};
|
|
1
|
+
function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
|
|
2
|
+
|
|
3
|
+
var React = require('react');
|
|
4
|
+
var React__default = _interopDefault(React);
|
|
5
|
+
var Cookies = _interopDefault(require('js-cookie'));
|
|
6
|
+
|
|
7
|
+
var usePageVisible = function usePageVisible() {
|
|
8
|
+
var _useState = React.useState(true),
|
|
9
|
+
isVisible = _useState[0],
|
|
10
|
+
setIsVisible = _useState[1];
|
|
11
|
+
var handleVisibilityChange = function handleVisibilityChange() {
|
|
12
|
+
setIsVisible(document.visibilityState === 'visible');
|
|
13
|
+
};
|
|
14
|
+
React.useEffect(function () {
|
|
15
|
+
document.addEventListener('visibilitychange', handleVisibilityChange);
|
|
16
|
+
return function () {
|
|
17
|
+
document.removeEventListener('visibilitychange', handleVisibilityChange);
|
|
18
|
+
};
|
|
19
|
+
}, []);
|
|
20
|
+
return isVisible;
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
var useWindowSize = function useWindowSize() {
|
|
24
|
+
var _useState = React.useState({
|
|
25
|
+
width: '',
|
|
26
|
+
height: ''
|
|
27
|
+
}),
|
|
28
|
+
size = _useState[0],
|
|
29
|
+
setSize = _useState[1];
|
|
30
|
+
React.useEffect(function () {
|
|
31
|
+
var handleResize = function handleResize() {
|
|
32
|
+
setSize({
|
|
33
|
+
width: window.innerWidth,
|
|
34
|
+
height: window.innerHeight
|
|
35
|
+
});
|
|
36
|
+
};
|
|
37
|
+
window.addEventListener('resize', handleResize);
|
|
38
|
+
handleResize();
|
|
39
|
+
return function () {
|
|
40
|
+
window.removeEventListener('resize', handleResize);
|
|
41
|
+
};
|
|
42
|
+
}, []);
|
|
43
|
+
return size;
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
var useDebounce = function useDebounce() {
|
|
47
|
+
var _useState = React.useState(null),
|
|
48
|
+
debouncedValue = _useState[0],
|
|
49
|
+
setDebouncedValue = _useState[1];
|
|
50
|
+
var debounce = function debounce(value, delay) {
|
|
51
|
+
var handler = setTimeout(function () {
|
|
52
|
+
if (typeof value === 'function') {
|
|
53
|
+
value();
|
|
54
|
+
} else {
|
|
55
|
+
setDebouncedValue(value);
|
|
56
|
+
}
|
|
57
|
+
}, delay);
|
|
58
|
+
return function () {
|
|
59
|
+
clearTimeout(handler);
|
|
60
|
+
};
|
|
61
|
+
};
|
|
62
|
+
return [debouncedValue, debounce];
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
var usePrevious = function usePrevious(value) {
|
|
66
|
+
var ref = React.useRef();
|
|
67
|
+
React.useEffect(function () {
|
|
68
|
+
ref.current = value;
|
|
69
|
+
});
|
|
70
|
+
return ref.current;
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
var noop = function noop() {};
|
|
74
|
+
function on(obj) {
|
|
75
|
+
if (obj && obj.addEventListener) {
|
|
76
|
+
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
|
77
|
+
args[_key - 1] = arguments[_key];
|
|
78
|
+
}
|
|
79
|
+
obj.addEventListener.apply(obj, args);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
function off(obj) {
|
|
83
|
+
if (obj && obj.removeEventListener) {
|
|
84
|
+
for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
|
|
85
|
+
args[_key2 - 1] = arguments[_key2];
|
|
86
|
+
}
|
|
87
|
+
obj.removeEventListener.apply(obj, args);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
var isBrowser = typeof window !== 'undefined';
|
|
91
|
+
|
|
92
|
+
var useHover = function useHover(element) {
|
|
93
|
+
var _useState = React.useState(false),
|
|
94
|
+
state = _useState[0],
|
|
95
|
+
setState = _useState[1];
|
|
96
|
+
var onMouseEnter = function onMouseEnter(originalOnMouseEnter) {
|
|
97
|
+
return function (event) {
|
|
98
|
+
setState(true);
|
|
99
|
+
};
|
|
100
|
+
};
|
|
101
|
+
var onMouseLeave = function onMouseLeave(originalOnMouseLeave) {
|
|
102
|
+
return function (event) {
|
|
103
|
+
setState(false);
|
|
104
|
+
};
|
|
105
|
+
};
|
|
106
|
+
if (typeof element === 'function') {
|
|
107
|
+
element = element(state);
|
|
108
|
+
}
|
|
109
|
+
var el = React.cloneElement(element, {
|
|
110
|
+
onMouseEnter: onMouseEnter(),
|
|
111
|
+
onMouseLeave: onMouseLeave()
|
|
112
|
+
});
|
|
113
|
+
return [el, state];
|
|
114
|
+
};
|
|
115
|
+
|
|
116
|
+
var useScrolling = function useScrolling(ref) {
|
|
117
|
+
var _useState = React.useState(false),
|
|
118
|
+
scrolling = _useState[0],
|
|
119
|
+
setScrolling = _useState[1];
|
|
120
|
+
React.useEffect(function () {
|
|
121
|
+
if (ref.current) {
|
|
122
|
+
var scrollingTimeout;
|
|
123
|
+
var handleScrollEnd = function handleScrollEnd() {
|
|
124
|
+
setScrolling(false);
|
|
125
|
+
};
|
|
126
|
+
var handleScroll = function handleScroll() {
|
|
127
|
+
setScrolling(true);
|
|
128
|
+
clearTimeout(scrollingTimeout);
|
|
129
|
+
scrollingTimeout = setTimeout(function () {
|
|
130
|
+
return handleScrollEnd();
|
|
131
|
+
}, 150);
|
|
132
|
+
};
|
|
133
|
+
on(ref.current, 'scroll', handleScroll, false);
|
|
134
|
+
return function () {
|
|
135
|
+
if (ref.current) {
|
|
136
|
+
off(ref.current, 'scroll', handleScroll, false);
|
|
137
|
+
}
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
return function () {};
|
|
141
|
+
}, [ref]);
|
|
142
|
+
return scrolling;
|
|
143
|
+
};
|
|
144
|
+
|
|
145
|
+
var useBeforeUnload = function useBeforeUnload(enabled, message) {
|
|
146
|
+
if (enabled === void 0) {
|
|
147
|
+
enabled = true;
|
|
148
|
+
}
|
|
149
|
+
var handler = React.useCallback(function (event) {
|
|
150
|
+
var finalEnabled = typeof enabled === 'function' ? enabled() : true;
|
|
151
|
+
if (!finalEnabled) {
|
|
152
|
+
return;
|
|
153
|
+
}
|
|
154
|
+
event.preventDefault();
|
|
155
|
+
if (message) {
|
|
156
|
+
event.returnValue = message;
|
|
157
|
+
}
|
|
158
|
+
return message;
|
|
159
|
+
}, [enabled, message]);
|
|
160
|
+
React.useEffect(function () {
|
|
161
|
+
if (!enabled) {
|
|
162
|
+
return;
|
|
163
|
+
}
|
|
164
|
+
on(window, 'beforeunload', handler);
|
|
165
|
+
return function () {
|
|
166
|
+
return off(window, 'beforeunload', handler);
|
|
167
|
+
};
|
|
168
|
+
}, [enabled, handler]);
|
|
169
|
+
};
|
|
170
|
+
|
|
171
|
+
var useEffectOnce = function useEffectOnce(effect) {
|
|
172
|
+
React.useEffect(effect, []);
|
|
173
|
+
};
|
|
174
|
+
var useUnmount = function useUnmount(fn) {
|
|
175
|
+
var fnRef = React.useRef(fn);
|
|
176
|
+
fnRef.current = fn;
|
|
177
|
+
useEffectOnce(function () {
|
|
178
|
+
return function () {
|
|
179
|
+
return fnRef.current();
|
|
180
|
+
};
|
|
181
|
+
});
|
|
182
|
+
};
|
|
183
|
+
var useThrottle = function useThrottle(value, ms) {
|
|
184
|
+
if (ms === void 0) {
|
|
185
|
+
ms = 200;
|
|
186
|
+
}
|
|
187
|
+
var _useState = React.useState(value),
|
|
188
|
+
state = _useState[0],
|
|
189
|
+
setState = _useState[1];
|
|
190
|
+
var timeout = React.useRef();
|
|
191
|
+
var nextValue = React.useRef(null);
|
|
192
|
+
var hasNextValue = React.useRef(0);
|
|
193
|
+
React.useEffect(function () {
|
|
194
|
+
if (!timeout.current) {
|
|
195
|
+
setState(value);
|
|
196
|
+
var _timeoutCallback = function timeoutCallback() {
|
|
197
|
+
if (hasNextValue.current) {
|
|
198
|
+
hasNextValue.current = false;
|
|
199
|
+
setState(nextValue.current);
|
|
200
|
+
timeout.current = setTimeout(_timeoutCallback, ms);
|
|
201
|
+
} else {
|
|
202
|
+
timeout.current = undefined;
|
|
203
|
+
}
|
|
204
|
+
};
|
|
205
|
+
timeout.current = setTimeout(_timeoutCallback, ms);
|
|
206
|
+
} else {
|
|
207
|
+
nextValue.current = value;
|
|
208
|
+
hasNextValue.current = true;
|
|
209
|
+
}
|
|
210
|
+
}, [value]);
|
|
211
|
+
useUnmount(function () {
|
|
212
|
+
timeout.current && clearTimeout(timeout.current);
|
|
213
|
+
});
|
|
214
|
+
return state;
|
|
215
|
+
};
|
|
216
|
+
|
|
217
|
+
var useLocalStorage = function useLocalStorage(key, initialValue, options) {
|
|
218
|
+
if (!isBrowser) {
|
|
219
|
+
return [initialValue, noop, noop];
|
|
220
|
+
}
|
|
221
|
+
if (!key) {
|
|
222
|
+
throw new Error('useLocalStorage key may not be falsy');
|
|
223
|
+
}
|
|
224
|
+
var deserializer = options ? options.raw ? function (value) {
|
|
225
|
+
return value;
|
|
226
|
+
} : options.deserializer : JSON.parse;
|
|
227
|
+
var initializer = React.useRef(function (key) {
|
|
228
|
+
try {
|
|
229
|
+
var serializer = options ? options.raw ? String : options.serializer : JSON.stringify;
|
|
230
|
+
var localStorageValue = localStorage.getItem(key);
|
|
231
|
+
if (localStorageValue !== null) {
|
|
232
|
+
return deserializer(localStorageValue);
|
|
233
|
+
} else {
|
|
234
|
+
initialValue && localStorage.setItem(key, serializer(initialValue));
|
|
235
|
+
return initialValue;
|
|
236
|
+
}
|
|
237
|
+
} catch (_unused) {
|
|
238
|
+
return initialValue;
|
|
239
|
+
}
|
|
240
|
+
});
|
|
241
|
+
var _useState = React.useState(function () {
|
|
242
|
+
return initializer.current(key);
|
|
243
|
+
}),
|
|
244
|
+
state = _useState[0],
|
|
245
|
+
setState = _useState[1];
|
|
246
|
+
React.useLayoutEffect(function () {
|
|
247
|
+
return setState(initializer.current(key));
|
|
248
|
+
}, [key]);
|
|
249
|
+
var set = React.useCallback(function (valOrFunc) {
|
|
250
|
+
try {
|
|
251
|
+
var newState = typeof valOrFunc === 'function' ? valOrFunc(state) : valOrFunc;
|
|
252
|
+
if (typeof newState === 'undefined') return;
|
|
253
|
+
var value;
|
|
254
|
+
if (options) {
|
|
255
|
+
if (options.raw) {
|
|
256
|
+
if (typeof newState === 'string') value = newState;else value = JSON.stringify(newState);
|
|
257
|
+
} else if (options.serializer) value = options.serializer(newState);else value = JSON.stringify(newState);
|
|
258
|
+
} else value = JSON.stringify(newState);
|
|
259
|
+
localStorage.setItem(key, value);
|
|
260
|
+
setState(deserializer(value));
|
|
261
|
+
} catch (_unused2) {}
|
|
262
|
+
}, [key, setState]);
|
|
263
|
+
var remove = React.useCallback(function () {
|
|
264
|
+
try {
|
|
265
|
+
localStorage.removeItem(key);
|
|
266
|
+
setState(undefined);
|
|
267
|
+
} catch (_unused3) {}
|
|
268
|
+
}, [key, setState]);
|
|
269
|
+
return [state, set, remove];
|
|
270
|
+
};
|
|
271
|
+
|
|
272
|
+
var _useEqualObject = function useEqualObject(obj1, obj2) {
|
|
273
|
+
if (obj1 === obj2) return true;
|
|
274
|
+
if (typeof obj1 !== 'object' || typeof obj2 !== 'object' || obj1 === null || obj2 === null) return false;
|
|
275
|
+
var keys1 = Object.keys(obj1);
|
|
276
|
+
var keys2 = Object.keys(obj2);
|
|
277
|
+
if (keys1.length !== keys2.length) return false;
|
|
278
|
+
for (var _i = 0, _keys = keys1; _i < _keys.length; _i++) {
|
|
279
|
+
var key = _keys[_i];
|
|
280
|
+
if (!keys2.includes(key) || !_useEqualObject(obj1[key], obj2[key])) return false;
|
|
281
|
+
}
|
|
282
|
+
return true;
|
|
283
|
+
};
|
|
284
|
+
|
|
285
|
+
var useCookie = function useCookie(cookieName) {
|
|
286
|
+
var _useState = React.useState(function () {
|
|
287
|
+
return Cookies.get(cookieName) || null;
|
|
288
|
+
}),
|
|
289
|
+
value = _useState[0],
|
|
290
|
+
setValue = _useState[1];
|
|
291
|
+
var updateCookie = React.useCallback(function (newValue, options) {
|
|
292
|
+
Cookies.set(cookieName, newValue, options);
|
|
293
|
+
setValue(newValue);
|
|
294
|
+
}, [cookieName]);
|
|
295
|
+
var deleteCookie = React.useCallback(function () {
|
|
296
|
+
Cookies.remove(cookieName);
|
|
297
|
+
setValue(null);
|
|
298
|
+
}, [cookieName]);
|
|
299
|
+
return [value, updateCookie, deleteCookie];
|
|
300
|
+
};
|
|
301
|
+
|
|
302
|
+
function _extends() {
|
|
303
|
+
return _extends = Object.assign ? Object.assign.bind() : function (n) {
|
|
304
|
+
for (var e = 1; e < arguments.length; e++) {
|
|
305
|
+
var t = arguments[e];
|
|
306
|
+
for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
|
|
307
|
+
}
|
|
308
|
+
return n;
|
|
309
|
+
}, _extends.apply(null, arguments);
|
|
310
|
+
}
|
|
311
|
+
function _inheritsLoose(t, o) {
|
|
312
|
+
t.prototype = Object.create(o.prototype), t.prototype.constructor = t, _setPrototypeOf(t, o);
|
|
313
|
+
}
|
|
314
|
+
function _setPrototypeOf(t, e) {
|
|
315
|
+
return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {
|
|
316
|
+
return t.__proto__ = e, t;
|
|
317
|
+
}, _setPrototypeOf(t, e);
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
var useGeolocation = function useGeolocation(options) {
|
|
321
|
+
var _useState = React.useState({
|
|
322
|
+
loading: true,
|
|
323
|
+
accuracy: null,
|
|
324
|
+
altitude: null,
|
|
325
|
+
altitudeAccuracy: null,
|
|
326
|
+
heading: null,
|
|
327
|
+
latitude: null,
|
|
328
|
+
longitude: null,
|
|
329
|
+
speed: null,
|
|
330
|
+
timestamp: Date.now()
|
|
331
|
+
}),
|
|
332
|
+
state = _useState[0],
|
|
333
|
+
setState = _useState[1];
|
|
334
|
+
var mounted = true;
|
|
335
|
+
var watchId;
|
|
336
|
+
var onEvent = function onEvent(event) {
|
|
337
|
+
if (mounted) {
|
|
338
|
+
setState({
|
|
339
|
+
loading: false,
|
|
340
|
+
accuracy: event.coords.accuracy,
|
|
341
|
+
altitude: event.coords.altitude,
|
|
342
|
+
altitudeAccuracy: event.coords.altitudeAccuracy,
|
|
343
|
+
heading: event.coords.heading,
|
|
344
|
+
latitude: event.coords.latitude,
|
|
345
|
+
longitude: event.coords.longitude,
|
|
346
|
+
speed: event.coords.speed,
|
|
347
|
+
timestamp: event.timestamp
|
|
348
|
+
});
|
|
349
|
+
}
|
|
350
|
+
};
|
|
351
|
+
var onEventError = function onEventError(error) {
|
|
352
|
+
return mounted && setState(function (oldState) {
|
|
353
|
+
return _extends({}, oldState, {
|
|
354
|
+
loading: false,
|
|
355
|
+
error: error
|
|
356
|
+
});
|
|
357
|
+
});
|
|
358
|
+
};
|
|
359
|
+
React.useEffect(function () {
|
|
360
|
+
navigator.geolocation.getCurrentPosition(onEvent, onEventError, options);
|
|
361
|
+
watchId = navigator.geolocation.watchPosition(onEvent, onEventError, options);
|
|
362
|
+
return function () {
|
|
363
|
+
mounted = false;
|
|
364
|
+
navigator.geolocation.clearWatch(watchId);
|
|
365
|
+
};
|
|
366
|
+
}, []);
|
|
367
|
+
return state;
|
|
368
|
+
};
|
|
369
|
+
|
|
370
|
+
var useIsFirstRender = function useIsFirstRender() {
|
|
371
|
+
var isFirstRender = React.useRef(true);
|
|
372
|
+
React.useEffect(function () {
|
|
373
|
+
isFirstRender.current = false;
|
|
374
|
+
}, []);
|
|
375
|
+
return isFirstRender.current;
|
|
376
|
+
};
|
|
377
|
+
|
|
378
|
+
var useConnection = function useConnection() {
|
|
379
|
+
var _useState = React.useState(true),
|
|
380
|
+
status = _useState[0],
|
|
381
|
+
setStatus = _useState[1];
|
|
382
|
+
React.useEffect(function () {
|
|
383
|
+
var events = ['online', 'offline'];
|
|
384
|
+
var eventHandle = function eventHandle() {
|
|
385
|
+
return setStatus(navigator.online);
|
|
386
|
+
};
|
|
387
|
+
events.forEach(function (event) {
|
|
388
|
+
return window.addEventListener(event, eventHandle);
|
|
389
|
+
});
|
|
390
|
+
return function () {
|
|
391
|
+
events.forEach(function (event) {
|
|
392
|
+
return window.removeEventListener(event, eventHandle);
|
|
393
|
+
});
|
|
394
|
+
};
|
|
395
|
+
}, []);
|
|
396
|
+
return {
|
|
397
|
+
status: status
|
|
398
|
+
};
|
|
399
|
+
};
|
|
400
|
+
|
|
401
|
+
// A type of promise-like that resolves synchronously and supports only one observer
|
|
402
|
+
|
|
403
|
+
const _iteratorSymbol = /*#__PURE__*/ typeof Symbol !== "undefined" ? (Symbol.iterator || (Symbol.iterator = Symbol("Symbol.iterator"))) : "@@iterator";
|
|
404
|
+
|
|
405
|
+
const _asyncIteratorSymbol = /*#__PURE__*/ typeof Symbol !== "undefined" ? (Symbol.asyncIterator || (Symbol.asyncIterator = Symbol("Symbol.asyncIterator"))) : "@@asyncIterator";
|
|
406
|
+
|
|
407
|
+
// Asynchronously call a function and send errors to recovery continuation
|
|
408
|
+
function _catch(body, recover) {
|
|
409
|
+
try {
|
|
410
|
+
var result = body();
|
|
411
|
+
} catch(e) {
|
|
412
|
+
return recover(e);
|
|
413
|
+
}
|
|
414
|
+
if (result && result.then) {
|
|
415
|
+
return result.then(void 0, recover);
|
|
416
|
+
}
|
|
417
|
+
return result;
|
|
418
|
+
}
|
|
419
|
+
|
|
420
|
+
var useBatteryInfo = function useBatteryInfo() {
|
|
421
|
+
var _useState = React.useState(null),
|
|
422
|
+
batteryLevel = _useState[0],
|
|
423
|
+
setBatteryLevel = _useState[1];
|
|
424
|
+
var _useState2 = React.useState(null),
|
|
425
|
+
isCharging = _useState2[0],
|
|
426
|
+
setIsCharging = _useState2[1];
|
|
427
|
+
var _useState3 = React.useState(null),
|
|
428
|
+
dischargingTime = _useState3[0],
|
|
429
|
+
setDischargingTime = _useState3[1];
|
|
430
|
+
React.useEffect(function () {
|
|
431
|
+
var getBatteryInfo = function getBatteryInfo() {
|
|
432
|
+
try {
|
|
433
|
+
return Promise.resolve(_catch(function () {
|
|
434
|
+
return Promise.resolve(navigator.getBattery()).then(function (battery) {
|
|
435
|
+
var updateBatteryInfo = function updateBatteryInfo() {
|
|
436
|
+
setBatteryLevel(Math.round(battery.level * 100));
|
|
437
|
+
setIsCharging(battery.charging);
|
|
438
|
+
setDischargingTime(battery.dischargingTime);
|
|
439
|
+
};
|
|
440
|
+
updateBatteryInfo();
|
|
441
|
+
battery.addEventListener('chargingchange', updateBatteryInfo);
|
|
442
|
+
battery.addEventListener('levelchange', updateBatteryInfo);
|
|
443
|
+
battery.addEventListener('chargingtimechange', updateBatteryInfo);
|
|
444
|
+
battery.addEventListener('dischargingtimechange', updateBatteryInfo);
|
|
445
|
+
return function () {
|
|
446
|
+
battery.removeEventListener('chargingchange', updateBatteryInfo);
|
|
447
|
+
battery.removeEventListener('levelchange', updateBatteryInfo);
|
|
448
|
+
battery.removeEventListener('chargingtimechange', updateBatteryInfo);
|
|
449
|
+
battery.removeEventListener('dischargingtimechange', updateBatteryInfo);
|
|
450
|
+
};
|
|
451
|
+
});
|
|
452
|
+
}, function (error) {
|
|
453
|
+
console.error('Batarya bilgisi alınamadı: ' + error.message);
|
|
454
|
+
}));
|
|
455
|
+
} catch (e) {
|
|
456
|
+
return Promise.reject(e);
|
|
457
|
+
}
|
|
458
|
+
};
|
|
459
|
+
getBatteryInfo();
|
|
460
|
+
return function () {};
|
|
461
|
+
}, []);
|
|
462
|
+
return {
|
|
463
|
+
batteryLevel: batteryLevel,
|
|
464
|
+
isCharging: isCharging,
|
|
465
|
+
dischargingTime: dischargingTime
|
|
466
|
+
};
|
|
467
|
+
};
|
|
468
|
+
|
|
469
|
+
var useCopyToClipboard = function useCopyToClipboard() {
|
|
470
|
+
var _useState = React.useState(false),
|
|
471
|
+
copied = _useState[0],
|
|
472
|
+
setCopied = _useState[1];
|
|
473
|
+
var _useState2 = React.useState(false),
|
|
474
|
+
error = _useState2[0],
|
|
475
|
+
setError = _useState2[1];
|
|
476
|
+
var copyToClipboard = function copyToClipboard(text) {
|
|
477
|
+
navigator.clipboard.writeText(text).then(function () {
|
|
478
|
+
setCopied(true);
|
|
479
|
+
})["catch"](function (err) {
|
|
480
|
+
setError(err);
|
|
481
|
+
});
|
|
482
|
+
};
|
|
483
|
+
return {
|
|
484
|
+
copied: copied,
|
|
485
|
+
error: error,
|
|
486
|
+
copyToClipboard: copyToClipboard
|
|
487
|
+
};
|
|
488
|
+
};
|
|
489
|
+
|
|
490
|
+
var useMedia = function useMedia(width) {
|
|
491
|
+
if (width === void 0) {
|
|
492
|
+
width = 1024;
|
|
493
|
+
}
|
|
494
|
+
var _useState = React.useState(window.matchMedia("(max-width: " + width + "px)").matches),
|
|
495
|
+
screenStatus = _useState[0],
|
|
496
|
+
setScreenStatus = _useState[1];
|
|
497
|
+
React.useEffect(function () {
|
|
498
|
+
var matchMedia = window.matchMedia("(max-width: " + width + "px)");
|
|
499
|
+
var onChangeHandle = function onChangeHandle(e) {
|
|
500
|
+
console.log(e.matches);
|
|
501
|
+
setScreenStatus(e.matches);
|
|
502
|
+
};
|
|
503
|
+
matchMedia.addEventListener('change', onChangeHandle);
|
|
504
|
+
});
|
|
505
|
+
return screenStatus;
|
|
506
|
+
};
|
|
507
|
+
|
|
508
|
+
var useClickOutside = function useClickOutside(ref, callback) {
|
|
509
|
+
var handleClick = function handleClick(e) {
|
|
510
|
+
if (ref.current && !ref.current.contains(e.target)) {
|
|
511
|
+
callback();
|
|
512
|
+
}
|
|
513
|
+
};
|
|
514
|
+
React.useEffect(function () {
|
|
515
|
+
document.addEventListener('click', handleClick);
|
|
516
|
+
return function () {
|
|
517
|
+
document.removeEventListener('click', handleClick);
|
|
518
|
+
};
|
|
519
|
+
});
|
|
520
|
+
};
|
|
521
|
+
|
|
522
|
+
var useColorScheme = function useColorScheme() {
|
|
523
|
+
var _useState = React.useState(getInitialColorScheme()),
|
|
524
|
+
colorScheme = _useState[0],
|
|
525
|
+
setColorScheme = _useState[1];
|
|
526
|
+
React.useEffect(function () {
|
|
527
|
+
var mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');
|
|
528
|
+
var listener = function listener(e) {
|
|
529
|
+
setColorScheme(e.matches ? 'dark' : 'light');
|
|
530
|
+
};
|
|
531
|
+
mediaQuery.addEventListener('change', listener);
|
|
532
|
+
return function () {
|
|
533
|
+
mediaQuery.removeEventListener('change', listener);
|
|
534
|
+
};
|
|
535
|
+
}, []);
|
|
536
|
+
function getInitialColorScheme() {
|
|
537
|
+
var isDarkMode = window.matchMedia('(prefers-color-scheme: dark)').matches;
|
|
538
|
+
return isDarkMode ? 'dark' : 'light';
|
|
539
|
+
}
|
|
540
|
+
return colorScheme;
|
|
541
|
+
};
|
|
542
|
+
|
|
543
|
+
var useFullScreen = function useFullScreen() {
|
|
544
|
+
var _useState = React.useState(false),
|
|
545
|
+
isFullScreen = _useState[0],
|
|
546
|
+
setIsFullScreen = _useState[1];
|
|
547
|
+
var enterFullScreen = function enterFullScreen() {
|
|
548
|
+
if (document.documentElement.requestFullscreen) {
|
|
549
|
+
document.documentElement.requestFullscreen();
|
|
550
|
+
} else if (document.documentElement.mozRequestFullScreen) {
|
|
551
|
+
document.documentElement.mozRequestFullScreen();
|
|
552
|
+
} else if (document.documentElement.webkitRequestFullscreen) {
|
|
553
|
+
document.documentElement.webkitRequestFullscreen();
|
|
554
|
+
} else if (document.documentElement.msRequestFullscreen) {
|
|
555
|
+
document.documentElement.msRequestFullscreen();
|
|
556
|
+
}
|
|
557
|
+
setIsFullScreen(true);
|
|
558
|
+
};
|
|
559
|
+
var exitFullScreen = function exitFullScreen() {
|
|
560
|
+
if (document.exitFullscreen) {
|
|
561
|
+
document.exitFullscreen();
|
|
562
|
+
} else if (document.mozCancelFullScreen) {
|
|
563
|
+
document.mozCancelFullScreen();
|
|
564
|
+
} else if (document.webkitExitFullscreen) {
|
|
565
|
+
document.webkitExitFullscreen();
|
|
566
|
+
} else if (document.msExitFullscreen) {
|
|
567
|
+
document.msExitFullscreen();
|
|
568
|
+
}
|
|
569
|
+
setIsFullScreen(false);
|
|
570
|
+
};
|
|
571
|
+
return {
|
|
572
|
+
isFullScreen: isFullScreen,
|
|
573
|
+
enterFullScreen: enterFullScreen,
|
|
574
|
+
exitFullScreen: exitFullScreen
|
|
575
|
+
};
|
|
576
|
+
};
|
|
577
|
+
|
|
578
|
+
var useSessionStorage = function useSessionStorage(key, initialValue) {
|
|
579
|
+
var _useState = React.useState(function () {
|
|
580
|
+
try {
|
|
581
|
+
var item = window.sessionStorage.getItem(key);
|
|
582
|
+
return item ? JSON.parse(item) : initialValue;
|
|
583
|
+
} catch (error) {
|
|
584
|
+
console.error(error);
|
|
585
|
+
return initialValue;
|
|
586
|
+
}
|
|
587
|
+
}),
|
|
588
|
+
storedValue = _useState[0],
|
|
589
|
+
setStoredValue = _useState[1];
|
|
590
|
+
var setValue = function setValue(value) {
|
|
591
|
+
try {
|
|
592
|
+
setStoredValue(value);
|
|
593
|
+
window.sessionStorage.setItem(key, JSON.stringify(value));
|
|
594
|
+
} catch (error) {
|
|
595
|
+
console.error(error);
|
|
596
|
+
}
|
|
597
|
+
};
|
|
598
|
+
return [storedValue, setValue];
|
|
599
|
+
};
|
|
600
|
+
|
|
601
|
+
var useScrollLock = function useScrollLock(lock) {
|
|
602
|
+
React.useEffect(function () {
|
|
603
|
+
if (lock) {
|
|
604
|
+
document.body.style.overflow = 'hidden';
|
|
605
|
+
} else {
|
|
606
|
+
document.body.style.overflow = 'unset';
|
|
607
|
+
}
|
|
608
|
+
return function () {
|
|
609
|
+
document.body.style.overflow = 'unset';
|
|
610
|
+
};
|
|
611
|
+
}, [lock]);
|
|
612
|
+
};
|
|
613
|
+
|
|
614
|
+
var usePreferredLanguage = function usePreferredLanguage() {
|
|
615
|
+
var _useState = React.useState(''),
|
|
616
|
+
preferredLanguage = _useState[0],
|
|
617
|
+
setPreferredLanguage = _useState[1];
|
|
618
|
+
React.useEffect(function () {
|
|
619
|
+
var language = navigator.language || navigator.userLanguage;
|
|
620
|
+
setPreferredLanguage(language);
|
|
621
|
+
}, []);
|
|
622
|
+
return preferredLanguage;
|
|
623
|
+
};
|
|
624
|
+
|
|
625
|
+
function useMousePageLeave(onPageLeave) {
|
|
626
|
+
React.useEffect(function () {
|
|
627
|
+
document.documentElement.addEventListener('mouseleave', onPageLeave);
|
|
628
|
+
return function () {
|
|
629
|
+
return document.documentElement.removeEventListener('mouseleave', onPageLeave);
|
|
630
|
+
};
|
|
631
|
+
}, []);
|
|
632
|
+
}
|
|
633
|
+
|
|
634
|
+
var usePageLeave = function usePageLeave(onLeave) {
|
|
635
|
+
React.useEffect(function () {
|
|
636
|
+
var handleBeforeUnload = function handleBeforeUnload(event) {
|
|
637
|
+
var returnValue = onLeave();
|
|
638
|
+
if (returnValue) {
|
|
639
|
+
event.preventDefault();
|
|
640
|
+
event.returnValue = returnValue;
|
|
641
|
+
return returnValue;
|
|
642
|
+
}
|
|
643
|
+
};
|
|
644
|
+
window.addEventListener('beforeunload', handleBeforeUnload);
|
|
645
|
+
return function () {
|
|
646
|
+
window.removeEventListener('beforeunload', handleBeforeUnload);
|
|
647
|
+
};
|
|
648
|
+
}, [onLeave]);
|
|
649
|
+
};
|
|
650
|
+
|
|
651
|
+
var useForceUpdate = function useForceUpdate() {
|
|
652
|
+
var _useState = React.useState(0),
|
|
653
|
+
setTick = _useState[1];
|
|
654
|
+
var update = React.useCallback(function () {
|
|
655
|
+
setTick(function (tick) {
|
|
656
|
+
return tick + 1;
|
|
657
|
+
});
|
|
658
|
+
}, []);
|
|
659
|
+
return update;
|
|
660
|
+
};
|
|
661
|
+
|
|
662
|
+
var useInterval = function useInterval(callback, delay) {
|
|
663
|
+
var savedCallback = React.useRef(function () {});
|
|
664
|
+
React.useEffect(function () {
|
|
665
|
+
savedCallback.current = callback;
|
|
666
|
+
});
|
|
667
|
+
React.useEffect(function () {
|
|
668
|
+
if (delay !== null) {
|
|
669
|
+
var interval = setInterval(function () {
|
|
670
|
+
return savedCallback.current();
|
|
671
|
+
}, delay || 0);
|
|
672
|
+
return function () {
|
|
673
|
+
return clearInterval(interval);
|
|
674
|
+
};
|
|
675
|
+
}
|
|
676
|
+
return undefined;
|
|
677
|
+
}, [delay]);
|
|
678
|
+
};
|
|
679
|
+
|
|
680
|
+
var useIntersectionObserver = function useIntersectionObserver(targetRef, options) {
|
|
681
|
+
var _useState = React.useState(false),
|
|
682
|
+
isIntersecting = _useState[0],
|
|
683
|
+
setIsIntersecting = _useState[1];
|
|
684
|
+
React.useEffect(function () {
|
|
685
|
+
var observer = new IntersectionObserver(function (_ref) {
|
|
686
|
+
var entry = _ref[0];
|
|
687
|
+
setIsIntersecting(entry.isIntersecting);
|
|
688
|
+
}, options);
|
|
689
|
+
if (targetRef.current) {
|
|
690
|
+
observer.observe(targetRef.current);
|
|
691
|
+
}
|
|
692
|
+
return function () {
|
|
693
|
+
if (targetRef.current) {
|
|
694
|
+
observer.unobserve(targetRef.current);
|
|
695
|
+
}
|
|
696
|
+
};
|
|
697
|
+
}, [targetRef, options]);
|
|
698
|
+
return isIntersecting;
|
|
699
|
+
};
|
|
700
|
+
|
|
701
|
+
var useMobileLandscape = function useMobileLandscape() {
|
|
702
|
+
var _useState = React.useState(false),
|
|
703
|
+
isLandscape = _useState[0],
|
|
704
|
+
setIsLandscape = _useState[1];
|
|
705
|
+
var _useState2 = React.useState(false),
|
|
706
|
+
isMobile = _useState2[0],
|
|
707
|
+
setIsMobile = _useState2[1];
|
|
708
|
+
var _useState3 = React.useState(false),
|
|
709
|
+
isMobileLandscape = _useState3[0],
|
|
710
|
+
setIsMobileLandscape = _useState3[1];
|
|
711
|
+
var handleResize = function handleResize() {
|
|
712
|
+
var landscape = window.innerWidth > window.innerHeight;
|
|
713
|
+
var mobile = window.innerWidth <= 996;
|
|
714
|
+
setIsLandscape(landscape);
|
|
715
|
+
setIsMobile(mobile);
|
|
716
|
+
setIsMobileLandscape(landscape && mobile);
|
|
717
|
+
};
|
|
718
|
+
React.useEffect(function () {
|
|
719
|
+
handleResize();
|
|
720
|
+
window.addEventListener('resize', handleResize);
|
|
721
|
+
return function () {
|
|
722
|
+
window.removeEventListener('resize', handleResize);
|
|
723
|
+
};
|
|
724
|
+
}, []);
|
|
725
|
+
return {
|
|
726
|
+
isMobileLandscape: isMobileLandscape,
|
|
727
|
+
isLandscape: isLandscape,
|
|
728
|
+
isMobile: isMobile
|
|
729
|
+
};
|
|
730
|
+
};
|
|
731
|
+
|
|
732
|
+
var useOnlineStatus = function useOnlineStatus() {
|
|
733
|
+
var _useState = React.useState(navigator.onLine),
|
|
734
|
+
isOnline = _useState[0],
|
|
735
|
+
setIsOnline = _useState[1];
|
|
736
|
+
React.useEffect(function () {
|
|
737
|
+
var handleOnline = function handleOnline() {
|
|
738
|
+
return setIsOnline(true);
|
|
739
|
+
};
|
|
740
|
+
var handleOffline = function handleOffline() {
|
|
741
|
+
return setIsOnline(false);
|
|
742
|
+
};
|
|
743
|
+
window.addEventListener('online', handleOnline);
|
|
744
|
+
window.addEventListener('offline', handleOffline);
|
|
745
|
+
return function () {
|
|
746
|
+
window.removeEventListener('online', handleOnline);
|
|
747
|
+
window.removeEventListener('offline', handleOffline);
|
|
748
|
+
};
|
|
749
|
+
}, []);
|
|
750
|
+
return isOnline;
|
|
751
|
+
};
|
|
752
|
+
|
|
753
|
+
var useScrollToElement = function useScrollToElement() {
|
|
754
|
+
var scrollToElement = React.useCallback(function (selectorOrRef, options) {
|
|
755
|
+
if (options === void 0) {
|
|
756
|
+
options = {};
|
|
757
|
+
}
|
|
758
|
+
var element;
|
|
759
|
+
if (typeof selectorOrRef === 'string') {
|
|
760
|
+
element = document.querySelector(selectorOrRef);
|
|
761
|
+
} else if (selectorOrRef.current) {
|
|
762
|
+
element = selectorOrRef.current;
|
|
763
|
+
}
|
|
764
|
+
if (element) {
|
|
765
|
+
element.scrollIntoView(_extends({
|
|
766
|
+
behavior: 'smooth'
|
|
767
|
+
}, options));
|
|
768
|
+
}
|
|
769
|
+
}, []);
|
|
770
|
+
return scrollToElement;
|
|
771
|
+
};
|
|
772
|
+
|
|
773
|
+
var useStateValidator = function useStateValidator(state, validator, initialState) {
|
|
774
|
+
if (initialState === void 0) {
|
|
775
|
+
initialState = [undefined];
|
|
776
|
+
}
|
|
777
|
+
var validatorInner = React.useRef(validator);
|
|
778
|
+
var stateInner = React.useRef(state);
|
|
779
|
+
validatorInner.current = validator;
|
|
780
|
+
stateInner.current = state;
|
|
781
|
+
var _useState = React.useState(initialState),
|
|
782
|
+
validity = _useState[0],
|
|
783
|
+
setValidity = _useState[1];
|
|
784
|
+
var validate = React.useCallback(function () {
|
|
785
|
+
if (validatorInner.current.length >= 2) {
|
|
786
|
+
validatorInner.current(stateInner.current, setValidity);
|
|
787
|
+
} else {
|
|
788
|
+
setValidity(validatorInner.current(stateInner.current));
|
|
789
|
+
}
|
|
790
|
+
}, [setValidity]);
|
|
791
|
+
React.useEffect(function () {
|
|
792
|
+
validate();
|
|
793
|
+
}, [state]);
|
|
794
|
+
return [validity, validate];
|
|
795
|
+
};
|
|
796
|
+
|
|
797
|
+
var useMultiStateValidator = function useMultiStateValidator(states, validator, initialValidity) {
|
|
798
|
+
if (initialValidity === void 0) {
|
|
799
|
+
initialValidity = [undefined];
|
|
800
|
+
}
|
|
801
|
+
if (typeof states !== 'object') {
|
|
802
|
+
throw new Error("state'in bir nesne ya da dizi olması beklenirken -> " + typeof states);
|
|
803
|
+
}
|
|
804
|
+
var validatorInner = React.useRef(validator);
|
|
805
|
+
var statesInner = React.useRef(states);
|
|
806
|
+
validatorInner.current = validator;
|
|
807
|
+
statesInner.current = states;
|
|
808
|
+
var _useState = React.useState(initialValidity),
|
|
809
|
+
validity = _useState[0],
|
|
810
|
+
setValidity = _useState[1];
|
|
811
|
+
var validate = React.useCallback(function () {
|
|
812
|
+
if (validatorInner.current.length >= 2) {
|
|
813
|
+
validatorInner.current(statesInner.current, setValidity);
|
|
814
|
+
} else {
|
|
815
|
+
setValidity(validatorInner.current(statesInner.current));
|
|
816
|
+
}
|
|
817
|
+
}, [setValidity]);
|
|
818
|
+
React.useEffect(function () {
|
|
819
|
+
validate();
|
|
820
|
+
}, Object.values(states));
|
|
821
|
+
return [validity, validate];
|
|
822
|
+
};
|
|
823
|
+
|
|
824
|
+
var useWindowScroll = function useWindowScroll() {
|
|
825
|
+
var _useState = React.useState(function () {
|
|
826
|
+
return {
|
|
827
|
+
x: isBrowser ? window.pageXOffset : 0,
|
|
828
|
+
y: isBrowser ? window.pageYOffset : 0
|
|
829
|
+
};
|
|
830
|
+
}),
|
|
831
|
+
state = _useState[0],
|
|
832
|
+
setState = _useState[1];
|
|
833
|
+
React.useEffect(function () {
|
|
834
|
+
var handler = function handler() {
|
|
835
|
+
setState(function (state) {
|
|
836
|
+
var _window = window,
|
|
837
|
+
pageXOffset = _window.pageXOffset,
|
|
838
|
+
pageYOffset = _window.pageYOffset;
|
|
839
|
+
return state.x !== pageXOffset || state.y !== pageYOffset ? {
|
|
840
|
+
x: pageXOffset,
|
|
841
|
+
y: pageYOffset
|
|
842
|
+
} : state;
|
|
843
|
+
});
|
|
844
|
+
};
|
|
845
|
+
handler();
|
|
846
|
+
on(window, 'scroll', handler, {
|
|
847
|
+
capture: false,
|
|
848
|
+
passive: true
|
|
849
|
+
});
|
|
850
|
+
return function () {
|
|
851
|
+
off(window, 'scroll', handler);
|
|
852
|
+
};
|
|
853
|
+
}, []);
|
|
854
|
+
return state;
|
|
855
|
+
};
|
|
856
|
+
|
|
857
|
+
var useSelection = function useSelection() {
|
|
858
|
+
var elementRef = React.useRef(null);
|
|
859
|
+
var getSelectedText = function getSelectedText() {
|
|
860
|
+
if (elementRef.current) {
|
|
861
|
+
var selection = window.getSelection();
|
|
862
|
+
var range = selection.getRangeAt(0);
|
|
863
|
+
return range.toString();
|
|
864
|
+
}
|
|
865
|
+
return '';
|
|
866
|
+
};
|
|
867
|
+
return {
|
|
868
|
+
elementRef: elementRef,
|
|
869
|
+
getSelectedText: getSelectedText
|
|
870
|
+
};
|
|
871
|
+
};
|
|
872
|
+
|
|
873
|
+
var useUpdateEffect = function useUpdateEffect(effect, dependencies) {
|
|
874
|
+
var isFirstRender = useIsFirstRender();
|
|
875
|
+
React.useEffect(function () {
|
|
876
|
+
if (!isFirstRender) {
|
|
877
|
+
return effect();
|
|
878
|
+
}
|
|
879
|
+
}, dependencies);
|
|
880
|
+
};
|
|
881
|
+
|
|
882
|
+
var initialState = {
|
|
883
|
+
data: null,
|
|
884
|
+
loading: true,
|
|
885
|
+
error: null
|
|
886
|
+
};
|
|
887
|
+
var fetchReducer = function fetchReducer(state, action) {
|
|
888
|
+
switch (action.type) {
|
|
889
|
+
case 'FETCH_INIT':
|
|
890
|
+
return _extends({}, state, {
|
|
891
|
+
loading: true,
|
|
892
|
+
error: null
|
|
893
|
+
});
|
|
894
|
+
case 'FETCH_SUCCESS':
|
|
895
|
+
return _extends({}, state, {
|
|
896
|
+
loading: false,
|
|
897
|
+
data: action.payload
|
|
898
|
+
});
|
|
899
|
+
case 'FETCH_FAILURE':
|
|
900
|
+
return _extends({}, state, {
|
|
901
|
+
loading: false,
|
|
902
|
+
error: action.payload
|
|
903
|
+
});
|
|
904
|
+
default:
|
|
905
|
+
throw new Error();
|
|
906
|
+
}
|
|
907
|
+
};
|
|
908
|
+
var useFetch = function useFetch(url, options) {
|
|
909
|
+
var _useReducer = React.useReducer(fetchReducer, initialState),
|
|
910
|
+
state = _useReducer[0],
|
|
911
|
+
dispatch = _useReducer[1];
|
|
912
|
+
React.useEffect(function () {
|
|
913
|
+
if (!url) return;
|
|
914
|
+
var fetchData = function fetchData() {
|
|
915
|
+
try {
|
|
916
|
+
dispatch({
|
|
917
|
+
type: 'FETCH_INIT'
|
|
918
|
+
});
|
|
919
|
+
return Promise.resolve(_catch(function () {
|
|
920
|
+
return Promise.resolve(fetch(url, options)).then(function (response) {
|
|
921
|
+
if (!response.ok) {
|
|
922
|
+
throw new Error("HTTP error! Status: " + response.status);
|
|
923
|
+
}
|
|
924
|
+
return Promise.resolve(response.json()).then(function (result) {
|
|
925
|
+
dispatch({
|
|
926
|
+
type: 'FETCH_SUCCESS',
|
|
927
|
+
payload: result
|
|
928
|
+
});
|
|
929
|
+
});
|
|
930
|
+
});
|
|
931
|
+
}, function (error) {
|
|
932
|
+
dispatch({
|
|
933
|
+
type: 'FETCH_FAILURE',
|
|
934
|
+
payload: error.message
|
|
935
|
+
});
|
|
936
|
+
}));
|
|
937
|
+
} catch (e) {
|
|
938
|
+
return Promise.reject(e);
|
|
939
|
+
}
|
|
940
|
+
};
|
|
941
|
+
fetchData();
|
|
942
|
+
}, [url, options]);
|
|
943
|
+
return state;
|
|
944
|
+
};
|
|
945
|
+
|
|
946
|
+
var ErrorBoundaryKanca = /*#__PURE__*/function (_Component) {
|
|
947
|
+
function ErrorBoundaryKanca(props) {
|
|
948
|
+
var _this;
|
|
949
|
+
_this = _Component.call(this, props) || this;
|
|
950
|
+
_this.state = {
|
|
951
|
+
hasError: false
|
|
952
|
+
};
|
|
953
|
+
return _this;
|
|
954
|
+
}
|
|
955
|
+
_inheritsLoose(ErrorBoundaryKanca, _Component);
|
|
956
|
+
ErrorBoundaryKanca.getDerivedStateFromError = function getDerivedStateFromError(error) {
|
|
957
|
+
return {
|
|
958
|
+
hasError: true
|
|
959
|
+
};
|
|
960
|
+
};
|
|
961
|
+
var _proto = ErrorBoundaryKanca.prototype;
|
|
962
|
+
_proto.componentDidCatch = function componentDidCatch(error, info) {
|
|
963
|
+
console.error('Hata:', error, info);
|
|
964
|
+
};
|
|
965
|
+
_proto.render = function render() {
|
|
966
|
+
if (this.state.hasError) {
|
|
967
|
+
var fallback = this.props.fallback;
|
|
968
|
+
if (typeof fallback === 'function') {
|
|
969
|
+
return fallback();
|
|
970
|
+
}
|
|
971
|
+
return /*#__PURE__*/React__default.createElement("h1", null, fallback || 'Bir hata meydana geldi. Lütfen daha sonra tekrar deneyin.');
|
|
972
|
+
}
|
|
973
|
+
return this.props.children;
|
|
974
|
+
};
|
|
975
|
+
return ErrorBoundaryKanca;
|
|
976
|
+
}(React.Component);
|
|
977
|
+
|
|
978
|
+
var useURLSearchParams = function useURLSearchParams() {
|
|
979
|
+
var _useState = React.useState(new URLSearchParams(window.location.search)),
|
|
980
|
+
searchParams = _useState[0],
|
|
981
|
+
setSearchParams = _useState[1];
|
|
982
|
+
React.useEffect(function () {
|
|
983
|
+
var handlePopState = function handlePopState() {
|
|
984
|
+
setSearchParams(new URLSearchParams(window.location.search));
|
|
985
|
+
};
|
|
986
|
+
window.addEventListener('popstate', handlePopState);
|
|
987
|
+
return function () {
|
|
988
|
+
window.removeEventListener('popstate', handlePopState);
|
|
989
|
+
};
|
|
990
|
+
}, []);
|
|
991
|
+
var updateSearchParams = function updateSearchParams(newParams) {
|
|
992
|
+
var params = new URLSearchParams(searchParams);
|
|
993
|
+
Object.keys(newParams).forEach(function (key) {
|
|
994
|
+
if (newParams[key] === null) {
|
|
995
|
+
params["delete"](key);
|
|
996
|
+
} else {
|
|
997
|
+
params.set(key, newParams[key]);
|
|
998
|
+
}
|
|
999
|
+
});
|
|
1000
|
+
var newUrl = window.location.pathname + "?" + params.toString();
|
|
1001
|
+
window.history.pushState({}, '', newUrl);
|
|
1002
|
+
setSearchParams(params);
|
|
1003
|
+
};
|
|
1004
|
+
return [searchParams, updateSearchParams];
|
|
1005
|
+
};
|
|
1006
|
+
|
|
1007
|
+
var useToggle = function useToggle(initialValue) {
|
|
1008
|
+
if (initialValue === void 0) {
|
|
1009
|
+
initialValue = false;
|
|
1010
|
+
}
|
|
1011
|
+
var _useState = React.useState(initialValue),
|
|
1012
|
+
value = _useState[0],
|
|
1013
|
+
setValue = _useState[1];
|
|
1014
|
+
var toggle = function toggle() {
|
|
1015
|
+
setValue(function (prevValue) {
|
|
1016
|
+
return !prevValue;
|
|
1017
|
+
});
|
|
1018
|
+
};
|
|
1019
|
+
return [value, toggle];
|
|
1020
|
+
};
|
|
1021
|
+
|
|
1022
|
+
var useDocumentTitle = function useDocumentTitle(title) {
|
|
1023
|
+
React.useEffect(function () {
|
|
1024
|
+
document.title = title;
|
|
1025
|
+
return function () {
|
|
1026
|
+
document.title = 'react-kanca';
|
|
1027
|
+
};
|
|
1028
|
+
}, [title]);
|
|
1029
|
+
};
|
|
1030
|
+
|
|
1031
|
+
exports.ErrorBoundaryKanca = ErrorBoundaryKanca;
|
|
1032
|
+
exports.useBatteryInfo = useBatteryInfo;
|
|
1033
|
+
exports.useBeforeUnload = useBeforeUnload;
|
|
1034
|
+
exports.useClickOutside = useClickOutside;
|
|
1035
|
+
exports.useColorScheme = useColorScheme;
|
|
1036
|
+
exports.useConnection = useConnection;
|
|
1037
|
+
exports.useCookie = useCookie;
|
|
1038
|
+
exports.useCopyToClipboard = useCopyToClipboard;
|
|
1039
|
+
exports.useDebounce = useDebounce;
|
|
1040
|
+
exports.useDocumentTitle = useDocumentTitle;
|
|
1041
|
+
exports.useEqualObject = _useEqualObject;
|
|
1042
|
+
exports.useFetch = useFetch;
|
|
1043
|
+
exports.useForceUpdate = useForceUpdate;
|
|
1044
|
+
exports.useFullScreen = useFullScreen;
|
|
1045
|
+
exports.useGeolocation = useGeolocation;
|
|
1046
|
+
exports.useHover = useHover;
|
|
1047
|
+
exports.useIntersectionObserver = useIntersectionObserver;
|
|
1048
|
+
exports.useInterval = useInterval;
|
|
1049
|
+
exports.useIsFirstRender = useIsFirstRender;
|
|
1050
|
+
exports.useLocalStorage = useLocalStorage;
|
|
1051
|
+
exports.useMedia = useMedia;
|
|
1052
|
+
exports.useMobileLandscape = useMobileLandscape;
|
|
1053
|
+
exports.useMousePageLeave = useMousePageLeave;
|
|
1054
|
+
exports.useMultiStateValidator = useMultiStateValidator;
|
|
1055
|
+
exports.useOnlineStatus = useOnlineStatus;
|
|
1056
|
+
exports.usePageLeave = usePageLeave;
|
|
1057
|
+
exports.usePageVisible = usePageVisible;
|
|
1058
|
+
exports.usePreferredLanguage = usePreferredLanguage;
|
|
1059
|
+
exports.usePrevious = usePrevious;
|
|
1060
|
+
exports.useScrollLock = useScrollLock;
|
|
1061
|
+
exports.useScrollToElement = useScrollToElement;
|
|
1062
|
+
exports.useScrolling = useScrolling;
|
|
1063
|
+
exports.useSelection = useSelection;
|
|
1064
|
+
exports.useSessionStorage = useSessionStorage;
|
|
1065
|
+
exports.useStateValidator = useStateValidator;
|
|
1066
|
+
exports.useThrottle = useThrottle;
|
|
1067
|
+
exports.useToggle = useToggle;
|
|
1068
|
+
exports.useURLSearchParams = useURLSearchParams;
|
|
1069
|
+
exports.useUpdateEffect = useUpdateEffect;
|
|
1070
|
+
exports.useWindowScroll = useWindowScroll;
|
|
1071
|
+
exports.useWindowSize = useWindowSize;
|
|
2
1072
|
//# sourceMappingURL=index.js.map
|