react-kanca 1.6.0 → 1.7.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.
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.modern.js","sources":["../src/usePageVisible/index.jsx","../src/useWindowSize/index.jsx","../src/useDebounce/index.jsx","../src/usePrevious/index.jsx","../src/utils/util.js","../src/useHover/index.jsx","../src/useScrolling/index.jsx","../src/useBeforeUnload/index.jsx","../src/useThrottle/index.jsx","../src/useLocalStorage/index.jsx","../src/useEqualObject/index.jsx","../src/useCookie/index.jsx","../src/useGeolocation/index.jsx","../src/useIsFirstRender/index.jsx","../src/useConnection/index.jsx","../src/useBatteryInfo/index.jsx","../src/useCopyToClipboard/index.jsx","../src/useMedia/index.jsx","../src/useClickOutside/index.jsx","../src/useColorScheme/index.jsx","../src/useFullScreen/index.jsx","../src/useSessionStorage/index.jsx","../src/useScrollLock/index.jsx","../src/usePreferredLanguage/index.jsx","../src/useMousePageLeave/index.jsx","../src/usePageLeave/index.jsx","../src/useForceUpdate/index.jsx","../src/useInterval/index.jsx","../src/useIntersectionObserver/index.jsx","../src/useMobileLandscape/index.jsx","../src/useOnlineStatus/index.jsx","../src/useScrollToElement/index.jsx","../src/useStateValidator/index.jsx","../src/useMultiStateValidator/index.jsx","../src/useWindowScroll/index.jsx","../src/useSelection/index.jsx","../src/useUpdateEffect/index.jsx","../src/useFetch/index.jsx","../src/ErrorBoundaryKanca/index.jsx","../src/useURLSearchParams/index.jsx","../src/useToggle/index.jsx","../src/useDocumentTitle/index.jsx"],"sourcesContent":["import { useState, useEffect } from 'react'\r\n\r\nexport const usePageVisible = () => {\r\n const [isVisible, setIsVisible] = useState(true)\r\n\r\n const handleVisibilityChange = () => {\r\n setIsVisible(document.visibilityState === 'visible')\r\n }\r\n\r\n useEffect(() => {\r\n document.addEventListener('visibilitychange', handleVisibilityChange)\r\n return () => {\r\n document.removeEventListener('visibilitychange', handleVisibilityChange)\r\n }\r\n }, [])\r\n\r\n return isVisible\r\n}\r\n","import { useEffect, useState } from 'react'\r\n\r\nexport const useWindowSize = () => {\r\n const [size, setSize] = useState({ width: '', height: '' })\r\n\r\n useEffect(() => {\r\n const handleResize = () => {\r\n setSize({ width: window.innerWidth, height: window.innerHeight })\r\n }\r\n\r\n window.addEventListener('resize', handleResize)\r\n handleResize()\r\n return () => {\r\n window.removeEventListener('resize', handleResize)\r\n }\r\n }, [])\r\n\r\n return size\r\n}\r\n","import { useState, useEffect } from 'react'\r\n\r\n/* export const useDebounce = (value, delay) => {\r\n const [debounce, setDebounce] = useState('')\r\n\r\n useEffect(() => {\r\n const handler = setTimeout(() => {\r\n setDebounce(value)\r\n }, delay)\r\n\r\n return () => {\r\n clearTimeout(handler)\r\n }\r\n }, [value, delay])\r\n\r\n return debounce\r\n} */\r\n\r\nexport const useDebounce = () => {\r\n const [debouncedValue, setDebouncedValue] = useState(null)\r\n\r\n const debounce = (value, delay) => {\r\n const handler = setTimeout(() => {\r\n if (typeof value === 'function') {\r\n value()\r\n } else {\r\n setDebouncedValue(value)\r\n }\r\n }, delay)\r\n\r\n return () => {\r\n clearTimeout(handler)\r\n }\r\n }\r\n\r\n return [debouncedValue, debounce]\r\n}\r\n","import { useRef, useEffect } from 'react'\r\n\r\nexport const usePrevious = (value) => {\r\n const ref = useRef()\r\n useEffect(() => {\r\n ref.current = value\r\n })\r\n return ref.current\r\n}\r\n","export const noop = () => {}\r\n\r\nexport function on(obj, ...args) {\r\n if (obj && obj.addEventListener) {\r\n obj.addEventListener(...args)\r\n }\r\n}\r\n\r\nexport function off(obj, ...args) {\r\n if (obj && obj.removeEventListener) {\r\n obj.removeEventListener(...args)\r\n }\r\n}\r\n\r\nexport const isBrowser = typeof window !== 'undefined'\r\n\r\nexport const isNavigator = typeof navigator !== 'undefined'\r\n","import { useState, cloneElement } from 'react'\r\nimport { noop } from '../utils/util'\r\n\r\nexport const useHover = (element) => {\r\n const [state, setState] = useState(false)\r\n\r\n const onMouseEnter = (originalOnMouseEnter) => (event) => {\r\n originalOnMouseEnter || noop(event)\r\n setState(true)\r\n }\r\n const onMouseLeave = (originalOnMouseLeave) => (event) => {\r\n originalOnMouseLeave || noop(event)\r\n setState(false)\r\n }\r\n\r\n if (typeof element === 'function') {\r\n element = element(state)\r\n }\r\n\r\n const el = cloneElement(element, {\r\n onMouseEnter: onMouseEnter(element.props.onMouseEnter),\r\n onMouseLeave: onMouseLeave(element.props.onMouseLeave)\r\n })\r\n\r\n return [el, state]\r\n}\r\n","import { useEffect, useState } from 'react'\r\nimport { off, on } from '../utils/util'\r\n\r\nexport const useScrolling = (ref) => {\r\n const [scrolling, setScrolling] = useState(false)\r\n\r\n useEffect(() => {\r\n if (ref.current) {\r\n let scrollingTimeout\r\n\r\n const handleScrollEnd = () => {\r\n setScrolling(false)\r\n }\r\n\r\n const handleScroll = () => {\r\n setScrolling(true)\r\n clearTimeout(scrollingTimeout)\r\n scrollingTimeout = setTimeout(() => handleScrollEnd(), 150)\r\n }\r\n\r\n on(ref.current, 'scroll', handleScroll, false)\r\n return () => {\r\n if (ref.current) {\r\n off(ref.current, 'scroll', handleScroll, false)\r\n }\r\n }\r\n }\r\n return () => {}\r\n }, [ref])\r\n\r\n return scrolling\r\n}\r\n","import { useCallback, useEffect } from 'react'\r\nimport { off, on } from '../utils/util'\r\n\r\nexport const useBeforeUnload = (enabled = true, message) => {\r\n const handler = useCallback(\r\n (event) => {\r\n const finalEnabled = typeof enabled === 'function' ? enabled() : true\r\n\r\n if (!finalEnabled) {\r\n return\r\n }\r\n\r\n event.preventDefault()\r\n\r\n if (message) {\r\n event.returnValue = message\r\n }\r\n\r\n return message\r\n },\r\n [enabled, message]\r\n )\r\n\r\n useEffect(() => {\r\n if (!enabled) {\r\n return\r\n }\r\n\r\n on(window, 'beforeunload', handler)\r\n\r\n return () => off(window, 'beforeunload', handler)\r\n }, [enabled, handler])\r\n}\r\n","import { useEffect, useRef, useState } from 'react'\r\n\r\nconst useEffectOnce = (effect) => {\r\n useEffect(effect, [])\r\n}\r\n\r\nconst useUnmount = (fn) => {\r\n const fnRef = useRef(fn)\r\n fnRef.current = fn\r\n useEffectOnce(() => () => fnRef.current())\r\n}\r\n\r\nexport const useThrottle = (value, ms = 200) => {\r\n const [state, setState] = useState(value)\r\n const timeout = useRef()\r\n const nextValue = useRef(null)\r\n const hasNextValue = useRef(0)\r\n\r\n useEffect(() => {\r\n if (!timeout.current) {\r\n setState(value)\r\n const timeoutCallback = () => {\r\n if (hasNextValue.current) {\r\n hasNextValue.current = false\r\n setState(nextValue.current)\r\n timeout.current = setTimeout(timeoutCallback, ms)\r\n } else {\r\n timeout.current = undefined\r\n }\r\n }\r\n timeout.current = setTimeout(timeoutCallback, ms)\r\n } else {\r\n nextValue.current = value\r\n hasNextValue.current = true\r\n }\r\n }, [value])\r\n\r\n useUnmount(() => {\r\n timeout.current && clearTimeout(timeout.current)\r\n })\r\n\r\n return state\r\n}\r\n","import { useCallback, useState, useRef, useLayoutEffect } from 'react'\r\nimport { isBrowser, noop } from '../utils/util'\r\n\r\nexport const useLocalStorage = (key, initialValue, options) => {\r\n if (!isBrowser) {\r\n return [initialValue, noop, noop]\r\n }\r\n if (!key) {\r\n throw new Error('useLocalStorage key may not be falsy')\r\n }\r\n\r\n const deserializer = options\r\n ? options.raw\r\n ? (value) => value\r\n : options.deserializer\r\n : JSON.parse\r\n\r\n // eslint-disable-next-line react-hooks/rules-of-hooks\r\n const initializer = useRef((key) => {\r\n try {\r\n const serializer = options\r\n ? options.raw\r\n ? String\r\n : options.serializer\r\n : JSON.stringify\r\n\r\n const localStorageValue = localStorage.getItem(key)\r\n if (localStorageValue !== null) {\r\n return deserializer(localStorageValue)\r\n } else {\r\n initialValue && localStorage.setItem(key, serializer(initialValue))\r\n return initialValue\r\n }\r\n } catch {\r\n // If user is in private mode or has storage restriction\r\n // localStorage can throw. JSON.parse and JSON.stringify\r\n // can throw, too.\r\n return initialValue\r\n }\r\n })\r\n\r\n // eslint-disable-next-line react-hooks/rules-of-hooks\r\n const [state, setState] = useState(() => initializer.current(key))\r\n\r\n // eslint-disable-next-line react-hooks/rules-of-hooks\r\n useLayoutEffect(() => setState(initializer.current(key)), [key])\r\n\r\n // eslint-disable-next-line react-hooks/rules-of-hooks\r\n const set = useCallback(\r\n (valOrFunc) => {\r\n try {\r\n const newState =\r\n typeof valOrFunc === 'function' ? valOrFunc(state) : valOrFunc\r\n if (typeof newState === 'undefined') return\r\n let value\r\n\r\n if (options)\r\n if (options.raw)\r\n if (typeof newState === 'string') value = newState\r\n else value = JSON.stringify(newState)\r\n else if (options.serializer) value = options.serializer(newState)\r\n else value = JSON.stringify(newState)\r\n else value = JSON.stringify(newState)\r\n\r\n localStorage.setItem(key, value)\r\n setState(deserializer(value))\r\n } catch {\r\n // If user is in private mode or has storage restriction\r\n // localStorage can throw. Also JSON.stringify can throw.\r\n }\r\n },\r\n [key, setState]\r\n )\r\n\r\n // eslint-disable-next-line react-hooks/rules-of-hooks\r\n const remove = useCallback(() => {\r\n try {\r\n localStorage.removeItem(key)\r\n setState(undefined)\r\n } catch {\r\n // If user is in private mode or has storage restriction\r\n // localStorage can throw.\r\n }\r\n }, [key, setState])\r\n\r\n return [state, set, remove]\r\n}\r\n","export const useEqualObject = (obj1, obj2) => {\r\n // İki obje aynı referansa sahipse, aynıdır.\r\n if (obj1 === obj2) return true\r\n\r\n // İki objenin türleri farklıysa, aynı değildir.\r\n if (\r\n typeof obj1 !== 'object' ||\r\n typeof obj2 !== 'object' ||\r\n obj1 === null ||\r\n obj2 === null\r\n )\r\n return false\r\n\r\n // İki objenin özellik sayıları farklıysa, aynı değildir.\r\n const keys1 = Object.keys(obj1)\r\n const keys2 = Object.keys(obj2)\r\n if (keys1.length !== keys2.length) return false\r\n\r\n // Her bir özelliği kontrol ederek içeriklerini karşılaştır.\r\n for (let key of keys1) {\r\n if (!keys2.includes(key) || !useEqualObject(obj1[key], obj2[key]))\r\n return false\r\n }\r\n\r\n return true\r\n}\r\n","import { useCallback, useState } from 'react'\r\nimport Cookies from 'js-cookie'\r\n\r\nexport const useCookie = (cookieName) => {\r\n const [value, setValue] = useState(() => Cookies.get(cookieName) || null)\r\n\r\n const updateCookie = useCallback(\r\n (newValue, options) => {\r\n Cookies.set(cookieName, newValue, options)\r\n setValue(newValue)\r\n },\r\n [cookieName]\r\n )\r\n\r\n const deleteCookie = useCallback(() => {\r\n Cookies.remove(cookieName)\r\n setValue(null)\r\n }, [cookieName])\r\n\r\n return [value, updateCookie, deleteCookie]\r\n}\r\n","import { useEffect, useState } from 'react'\r\n\r\nexport const useGeolocation = (options) => {\r\n const [state, setState] = useState({\r\n loading: true,\r\n accuracy: null,\r\n altitude: null,\r\n altitudeAccuracy: null,\r\n heading: null,\r\n latitude: null,\r\n longitude: null,\r\n speed: null,\r\n timestamp: Date.now()\r\n })\r\n let mounted = true\r\n let watchId\r\n\r\n const onEvent = (event) => {\r\n if (mounted) {\r\n setState({\r\n loading: false,\r\n accuracy: event.coords.accuracy,\r\n altitude: event.coords.altitude,\r\n altitudeAccuracy: event.coords.altitudeAccuracy,\r\n heading: event.coords.heading,\r\n latitude: event.coords.latitude,\r\n longitude: event.coords.longitude,\r\n speed: event.coords.speed,\r\n timestamp: event.timestamp\r\n })\r\n }\r\n }\r\n const onEventError = (error) =>\r\n mounted && setState((oldState) => ({ ...oldState, loading: false, error }))\r\n\r\n useEffect(() => {\r\n navigator.geolocation.getCurrentPosition(onEvent, onEventError, options)\r\n watchId = navigator.geolocation.watchPosition(\r\n onEvent,\r\n onEventError,\r\n options\r\n )\r\n\r\n return () => {\r\n mounted = false\r\n navigator.geolocation.clearWatch(watchId)\r\n }\r\n }, [])\r\n\r\n return state\r\n}\r\n","import { useEffect, useRef } from 'react'\r\n\r\nexport const useIsFirstRender = () => {\r\n const isFirstRender = useRef(true)\r\n\r\n useEffect(() => {\r\n isFirstRender.current = false\r\n }, [])\r\n\r\n return isFirstRender.current\r\n}\r\n","import { useEffect, useState } from 'react'\r\n\r\nexport const useConnection = () => {\r\n const [status, setStatus] = useState(true)\r\n\r\n useEffect(() => {\r\n const events = ['online', 'offline']\r\n const eventHandle = () => setStatus(navigator.online)\r\n events.forEach((event) => window.addEventListener(event, eventHandle))\r\n\r\n return () => {\r\n events.forEach((event) => window.removeEventListener(event, eventHandle))\r\n }\r\n }, [])\r\n\r\n return { status }\r\n}\r\n","import { useState, useEffect } from 'react'\r\n\r\nexport const useBatteryInfo = () => {\r\n const [batteryLevel, setBatteryLevel] = useState(null)\r\n const [isCharging, setIsCharging] = useState(null)\r\n const [dischargingTime, setDischargingTime] = useState(null)\r\n\r\n useEffect(() => {\r\n const getBatteryInfo = async () => {\r\n try {\r\n const battery = await navigator.getBattery()\r\n\r\n const updateBatteryInfo = () => {\r\n setBatteryLevel(Math.round(battery.level * 100))\r\n setIsCharging(battery.charging)\r\n setDischargingTime(battery.dischargingTime)\r\n }\r\n\r\n updateBatteryInfo()\r\n\r\n battery.addEventListener('chargingchange', updateBatteryInfo)\r\n battery.addEventListener('levelchange', updateBatteryInfo)\r\n battery.addEventListener('chargingtimechange', updateBatteryInfo)\r\n battery.addEventListener('dischargingtimechange', updateBatteryInfo)\r\n\r\n return () => {\r\n battery.removeEventListener('chargingchange', updateBatteryInfo)\r\n battery.removeEventListener('levelchange', updateBatteryInfo)\r\n battery.removeEventListener('chargingtimechange', updateBatteryInfo)\r\n battery.removeEventListener(\r\n 'dischargingtimechange',\r\n updateBatteryInfo\r\n )\r\n }\r\n } catch (error) {\r\n console.error('Batarya bilgisi alınamadı: ' + error.message)\r\n }\r\n }\r\n\r\n getBatteryInfo()\r\n\r\n // Cleanup function\r\n return () => {}\r\n }, [])\r\n\r\n return { batteryLevel, isCharging, dischargingTime }\r\n}\r\n","import { useState } from 'react'\r\n\r\nexport const useCopyToClipboard = () => {\r\n const [copied, setCopied] = useState(false)\r\n const [error, setError] = useState(false)\r\n\r\n const copyToClipboard = (text) => {\r\n navigator.clipboard\r\n .writeText(text)\r\n .then(() => {\r\n setCopied(true)\r\n })\r\n .catch((err) => {\r\n setError(err)\r\n })\r\n }\r\n\r\n return { copied, error, copyToClipboard }\r\n}\r\n","import { useEffect, useState } from 'react'\r\n\r\nexport const useMedia = (width = 1024) => {\r\n const [screenStatus, setScreenStatus] = useState(\r\n window.matchMedia(`(max-width: ${width}px)`).matches\r\n )\r\n\r\n useEffect(() => {\r\n const matchMedia = window.matchMedia(`(max-width: ${width}px)`)\r\n\r\n const onChangeHandle = (e) => {\r\n console.log(e.matches)\r\n setScreenStatus(e.matches)\r\n }\r\n\r\n matchMedia.addEventListener('change', onChangeHandle)\r\n })\r\n\r\n return screenStatus\r\n}\r\n","import { useEffect } from 'react'\r\n\r\nexport const useClickOutside = (ref, callback) => {\r\n const handleClick = (e) => {\r\n if (ref.current && !ref.current.contains(e.target)) {\r\n callback()\r\n }\r\n }\r\n useEffect(() => {\r\n document.addEventListener('click', handleClick)\r\n return () => {\r\n document.removeEventListener('click', handleClick)\r\n }\r\n })\r\n}\r\n","import { useState, useEffect } from 'react'\r\n\r\nexport const useColorScheme = () => {\r\n const [colorScheme, setColorScheme] = useState(getInitialColorScheme())\r\n\r\n useEffect(() => {\r\n const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)')\r\n const listener = (e) => {\r\n setColorScheme(e.matches ? 'dark' : 'light')\r\n }\r\n\r\n mediaQuery.addEventListener('change', listener)\r\n\r\n return () => {\r\n mediaQuery.removeEventListener('change', listener)\r\n }\r\n }, [])\r\n\r\n function getInitialColorScheme() {\r\n const isDarkMode = window.matchMedia('(prefers-color-scheme: dark)').matches\r\n return isDarkMode ? 'dark' : 'light'\r\n }\r\n\r\n return colorScheme\r\n}\r\n","import { useState } from 'react'\r\n\r\nexport const useFullScreen = () => {\r\n const [isFullScreen, setIsFullScreen] = useState(false)\r\n\r\n const enterFullScreen = () => {\r\n if (document.documentElement.requestFullscreen) {\r\n document.documentElement.requestFullscreen()\r\n } else if (document.documentElement.mozRequestFullScreen) {\r\n /* Firefox */\r\n document.documentElement.mozRequestFullScreen()\r\n } else if (document.documentElement.webkitRequestFullscreen) {\r\n /* Chrome, Safari & Opera */\r\n document.documentElement.webkitRequestFullscreen()\r\n } else if (document.documentElement.msRequestFullscreen) {\r\n /* IE/Edge */\r\n document.documentElement.msRequestFullscreen()\r\n }\r\n setIsFullScreen(true)\r\n }\r\n\r\n const exitFullScreen = () => {\r\n if (document.exitFullscreen) {\r\n document.exitFullscreen()\r\n } else if (document.mozCancelFullScreen) {\r\n /* Firefox */\r\n document.mozCancelFullScreen()\r\n } else if (document.webkitExitFullscreen) {\r\n /* Chrome, Safari & Opera */\r\n document.webkitExitFullscreen()\r\n } else if (document.msExitFullscreen) {\r\n /* IE/Edge */\r\n document.msExitFullscreen()\r\n }\r\n setIsFullScreen(false)\r\n }\r\n\r\n return { isFullScreen, enterFullScreen, exitFullScreen }\r\n}\r\n","import { useState } from 'react'\r\n\r\nexport const useSessionStorage = (key, initialValue) => {\r\n // İlk değeri sessionStorage'den alıyoruz, yoksa belirlenen başlangıç değerini kullanıyoruz\r\n const [storedValue, setStoredValue] = useState(() => {\r\n try {\r\n const item = window.sessionStorage.getItem(key)\r\n return item ? JSON.parse(item) : initialValue\r\n } catch (error) {\r\n console.error(error)\r\n return initialValue\r\n }\r\n })\r\n\r\n // State güncellendiğinde, sessionStorage'ye de yazıyoruz\r\n const setValue = (value) => {\r\n try {\r\n setStoredValue(value)\r\n window.sessionStorage.setItem(key, JSON.stringify(value))\r\n } catch (error) {\r\n console.error(error)\r\n }\r\n }\r\n\r\n return [storedValue, setValue]\r\n}\r\n","import { useEffect } from 'react'\r\n\r\nexport const useScrollLock = (lock) => {\r\n useEffect(() => {\r\n if (lock) {\r\n document.body.style.overflow = 'hidden'\r\n } else {\r\n document.body.style.overflow = 'unset'\r\n }\r\n\r\n return () => {\r\n document.body.style.overflow = 'unset'\r\n }\r\n }, [lock])\r\n}\r\n","import { useState, useEffect } from 'react'\r\n\r\nexport const usePreferredLanguage = () => {\r\n const [preferredLanguage, setPreferredLanguage] = useState('')\r\n\r\n useEffect(() => {\r\n const language = navigator.language || navigator.userLanguage\r\n setPreferredLanguage(language)\r\n }, [])\r\n\r\n return preferredLanguage\r\n}\r\n","import { useEffect } from 'react'\r\n\r\nexport function useMousePageLeave(onPageLeave) {\r\n useEffect(() => {\r\n document.documentElement.addEventListener('mouseleave', onPageLeave)\r\n return () =>\r\n document.documentElement.removeEventListener('mouseleave', onPageLeave)\r\n }, [])\r\n}\r\n","import { useEffect } from 'react'\r\n\r\nexport const usePageLeave = (onLeave) => {\r\n useEffect(() => {\r\n const handleBeforeUnload = (event) => {\r\n const returnValue = onLeave()\r\n if (returnValue) {\r\n event.preventDefault()\r\n event.returnValue = returnValue\r\n return returnValue\r\n }\r\n }\r\n\r\n window.addEventListener('beforeunload', handleBeforeUnload)\r\n\r\n return () => {\r\n window.removeEventListener('beforeunload', handleBeforeUnload)\r\n }\r\n }, [onLeave])\r\n}\r\n","import { useState, useCallback } from 'react'\r\n\r\nexport const useForceUpdate = () => {\r\n const [, setTick] = useState(0)\r\n const update = useCallback(() => {\r\n setTick((tick) => tick + 1)\r\n }, [])\r\n\r\n return update\r\n}\r\n","import { useEffect, useRef } from 'react'\r\n\r\nexport const useInterval = (callback, delay) => {\r\n const savedCallback = useRef(() => {})\r\n\r\n useEffect(() => {\r\n savedCallback.current = callback\r\n })\r\n\r\n useEffect(() => {\r\n if (delay !== null) {\r\n const interval = setInterval(() => savedCallback.current(), delay || 0)\r\n return () => clearInterval(interval)\r\n }\r\n\r\n return undefined\r\n }, [delay])\r\n}\r\n","import { useState, useEffect } from 'react'\r\n\r\nexport const useIntersectionObserver = (targetRef, options) => {\r\n const [isIntersecting, setIsIntersecting] = useState(false)\r\n\r\n useEffect(() => {\r\n const observer = new IntersectionObserver(([entry]) => {\r\n setIsIntersecting(entry.isIntersecting)\r\n }, options)\r\n\r\n if (targetRef.current) {\r\n observer.observe(targetRef.current)\r\n }\r\n\r\n return () => {\r\n if (targetRef.current) {\r\n observer.unobserve(targetRef.current)\r\n }\r\n }\r\n }, [targetRef, options])\r\n\r\n return isIntersecting\r\n}\r\n","import { useState, useEffect } from 'react'\r\n\r\nexport const useMobileLandscape = () => {\r\n const [isLandscape, setIsLandscape] = useState(false)\r\n const [isMobile, setIsMobile] = useState(false)\r\n const [isMobileLandscape, setIsMobileLandscape] = useState(false)\r\n\r\n const handleResize = () => {\r\n const landscape = window.innerWidth > window.innerHeight\r\n const mobile = window.innerWidth <= 996\r\n setIsLandscape(landscape)\r\n setIsMobile(mobile)\r\n setIsMobileLandscape(landscape && mobile)\r\n }\r\n\r\n useEffect(() => {\r\n handleResize()\r\n window.addEventListener('resize', handleResize)\r\n return () => {\r\n window.removeEventListener('resize', handleResize)\r\n }\r\n }, [])\r\n\r\n return { isMobileLandscape, isLandscape, isMobile }\r\n}\r\n","import { useState, useEffect } from 'react'\r\n\r\nexport const useOnlineStatus = () => {\r\n const [isOnline, setIsOnline] = useState(navigator.onLine)\r\n\r\n useEffect(() => {\r\n const handleOnline = () => setIsOnline(true)\r\n const handleOffline = () => setIsOnline(false)\r\n\r\n window.addEventListener('online', handleOnline)\r\n window.addEventListener('offline', handleOffline)\r\n\r\n return () => {\r\n window.removeEventListener('online', handleOnline)\r\n window.removeEventListener('offline', handleOffline)\r\n }\r\n }, [])\r\n\r\n return isOnline\r\n}\r\n","import { useCallback } from 'react'\r\n\r\nexport const useScrollToElement = () => {\r\n const scrollToElement = useCallback((selectorOrRef, options = {}) => {\r\n let element\r\n\r\n if (typeof selectorOrRef === 'string') {\r\n element = document.querySelector(selectorOrRef)\r\n } else if (selectorOrRef.current) {\r\n element = selectorOrRef.current\r\n }\r\n\r\n if (element) {\r\n element.scrollIntoView({ behavior: 'smooth', ...options })\r\n }\r\n }, [])\r\n\r\n return scrollToElement\r\n}\r\n","import { useCallback, useEffect, useRef, useState } from 'react'\r\n\r\nexport const useStateValidator = (\r\n state,\r\n validator,\r\n initialState = [undefined]\r\n) => {\r\n const validatorInner = useRef(validator)\r\n const stateInner = useRef(state)\r\n\r\n validatorInner.current = validator\r\n stateInner.current = state\r\n\r\n const [validity, setValidity] = useState(initialState)\r\n\r\n const validate = useCallback(() => {\r\n if (validatorInner.current.length >= 2) {\r\n validatorInner.current(stateInner.current, setValidity)\r\n } else {\r\n setValidity(validatorInner.current(stateInner.current))\r\n }\r\n }, [setValidity])\r\n\r\n useEffect(() => {\r\n validate()\r\n }, [state])\r\n\r\n return [validity, validate]\r\n}\r\n","import { useCallback, useEffect, useRef, useState } from 'react'\r\n\r\nexport const useMultiStateValidator = (\r\n states,\r\n validator,\r\n initialValidity = [undefined]\r\n) => {\r\n if (typeof states !== 'object') {\r\n throw new Error(\r\n \"state'in bir nesne ya da dizi olması beklenirken -> \" + typeof states\r\n )\r\n }\r\n\r\n const validatorInner = useRef(validator)\r\n const statesInner = useRef(states)\r\n\r\n validatorInner.current = validator\r\n statesInner.current = states\r\n\r\n const [validity, setValidity] = useState(initialValidity)\r\n\r\n const validate = useCallback(() => {\r\n if (validatorInner.current.length >= 2) {\r\n validatorInner.current(statesInner.current, setValidity)\r\n } else {\r\n setValidity(validatorInner.current(statesInner.current))\r\n }\r\n }, [setValidity])\r\n\r\n useEffect(() => {\r\n validate()\r\n }, Object.values(states))\r\n\r\n return [validity, validate]\r\n}\r\n","import { useEffect, useState } from 'react'\r\nimport { isBrowser, off, on } from '../utils/util'\r\n\r\nexport const useWindowScroll = () => {\r\n const [state, setState] = useState(() => ({\r\n x: isBrowser ? window.pageXOffset : 0,\r\n y: isBrowser ? window.pageYOffset : 0\r\n }))\r\n\r\n useEffect(() => {\r\n const handler = () => {\r\n setState((state) => {\r\n const { pageXOffset, pageYOffset } = window\r\n //Check state for change, return same state if no change happened to prevent rerender\r\n //(see useState/setState documentation). useState/setState is used internally in useRafState/setState.\r\n return state.x !== pageXOffset || state.y !== pageYOffset\r\n ? {\r\n x: pageXOffset,\r\n y: pageYOffset\r\n }\r\n : state\r\n })\r\n }\r\n\r\n //We have to update window scroll at mount, before subscription.\r\n //Window scroll may be changed between render and effect handler.\r\n handler()\r\n\r\n on(window, 'scroll', handler, {\r\n capture: false,\r\n passive: true\r\n })\r\n\r\n return () => {\r\n off(window, 'scroll', handler)\r\n }\r\n }, [])\r\n\r\n return state\r\n}\r\n","import { useRef } from 'react'\r\n\r\nexport const useSelection = () => {\r\n const elementRef = useRef(null)\r\n\r\n const getSelectedText = () => {\r\n if (elementRef.current) {\r\n const selection = window.getSelection()\r\n const range = selection.getRangeAt(0)\r\n return range.toString()\r\n }\r\n return ''\r\n }\r\n\r\n return {\r\n elementRef,\r\n getSelectedText\r\n }\r\n}\r\n","import { useEffect } from 'react'\r\nimport { useIsFirstRender } from '../useIsFirstRender'\r\n\r\nexport const useUpdateEffect = (effect, dependencies) => {\r\n const isFirstRender = useIsFirstRender()\r\n\r\n useEffect(() => {\r\n if (!isFirstRender) {\r\n return effect()\r\n }\r\n }, dependencies)\r\n}\r\n","import { useReducer, useEffect } from 'react'\r\n\r\nconst initialState = {\r\n data: null,\r\n loading: true,\r\n error: null\r\n}\r\n\r\nconst fetchReducer = (state, action) => {\r\n switch (action.type) {\r\n case 'FETCH_INIT':\r\n return { ...state, loading: true, error: null }\r\n case 'FETCH_SUCCESS':\r\n return { ...state, loading: false, data: action.payload }\r\n case 'FETCH_FAILURE':\r\n return { ...state, loading: false, error: action.payload }\r\n default:\r\n throw new Error()\r\n }\r\n}\r\n\r\nexport const useFetch = (url, options) => {\r\n const [state, dispatch] = useReducer(fetchReducer, initialState)\r\n\r\n useEffect(() => {\r\n if (!url) return\r\n\r\n const fetchData = async () => {\r\n dispatch({ type: 'FETCH_INIT' })\r\n\r\n try {\r\n const response = await fetch(url, options)\r\n if (!response.ok) {\r\n throw new Error(`HTTP error! Status: ${response.status}`)\r\n }\r\n const result = await response.json()\r\n dispatch({ type: 'FETCH_SUCCESS', payload: result })\r\n } catch (error) {\r\n dispatch({ type: 'FETCH_FAILURE', payload: error.message })\r\n }\r\n }\r\n\r\n fetchData()\r\n }, [url, options])\r\n\r\n return state\r\n}\r\n","import React, { Component } from 'react'\r\n\r\nexport class ErrorBoundaryKanca extends Component {\r\n constructor(props) {\r\n super(props)\r\n this.state = { hasError: false }\r\n }\r\n\r\n static getDerivedStateFromError(error) {\r\n // Hata meydana geldiğinde state'i güncelle\r\n return { hasError: true }\r\n }\r\n\r\n componentDidCatch(error, info) {\r\n // Error log kaydetme işlemleri burada yapılabilir\r\n console.error('Hata:', error, info)\r\n }\r\n\r\n render() {\r\n if (this.state.hasError) {\r\n // Hata durumunda gösterilecek mesaj\r\n const fallback = this.props.fallback\r\n if (typeof fallback === 'function') {\r\n return fallback() // Eğer bir fonksiyon ise çağır\r\n }\r\n return (\r\n <h1>\r\n {fallback ||\r\n 'Bir hata meydana geldi. Lütfen daha sonra tekrar deneyin.'}\r\n </h1>\r\n ) // Varsayılan mesaj\r\n }\r\n\r\n return this.props.children // Normal durumda children componenti render edilecek\r\n }\r\n}\r\n","import { useState, useEffect } from 'react'\r\n\r\nexport const useURLSearchParams = () => {\r\n const [searchParams, setSearchParams] = useState(\r\n new URLSearchParams(window.location.search)\r\n )\r\n\r\n useEffect(() => {\r\n const handlePopState = () => {\r\n setSearchParams(new URLSearchParams(window.location.search))\r\n }\r\n\r\n window.addEventListener('popstate', handlePopState)\r\n return () => {\r\n window.removeEventListener('popstate', handlePopState)\r\n }\r\n }, [])\r\n\r\n const updateSearchParams = (newParams) => {\r\n const params = new URLSearchParams(searchParams)\r\n Object.keys(newParams).forEach((key) => {\r\n if (newParams[key] === null) {\r\n params.delete(key)\r\n } else {\r\n params.set(key, newParams[key])\r\n }\r\n })\r\n const newUrl = `${window.location.pathname}?${params.toString()}`\r\n window.history.pushState({}, '', newUrl)\r\n setSearchParams(params)\r\n }\r\n\r\n return [searchParams, updateSearchParams]\r\n}\r\n","import { useState } from 'react'\r\n\r\nexport const useToggle = (initialValue = false) => {\r\n const [value, setValue] = useState(initialValue)\r\n\r\n const toggle = () => {\r\n setValue((prevValue) => !prevValue)\r\n }\r\n\r\n return [value, toggle]\r\n}\r\n","import { useEffect } from 'react'\r\n\r\nexport const useDocumentTitle = (title) => {\r\n useEffect(() => {\r\n document.title = title\r\n return () => {\r\n document.title = 'react-kanca'\r\n }\r\n }, [title])\r\n}\r\n"],"names":["usePageVisible","isVisible","setIsVisible","useState","handleVisibilityChange","document","visibilityState","useEffect","addEventListener","removeEventListener","useWindowSize","size","setSize","width","height","handleResize","window","innerWidth","innerHeight","useDebounce","debouncedValue","setDebouncedValue","debounce","value","delay","handler","setTimeout","clearTimeout","usePrevious","ref","useRef","current","noop","on","obj","args","off","isBrowser","useHover","element","state","setState","onMouseEnter","originalOnMouseEnter","event","onMouseLeave","originalOnMouseLeave","el","cloneElement","useScrolling","scrolling","setScrolling","scrollingTimeout","handleScrollEnd","handleScroll","useBeforeUnload","enabled","message","useCallback","finalEnabled","preventDefault","returnValue","useEffectOnce","effect","useUnmount","fn","fnRef","useThrottle","ms","timeout","nextValue","hasNextValue","timeoutCallback","undefined","useLocalStorage","key","initialValue","options","Error","deserializer","raw","JSON","parse","initializer","serializer","String","stringify","localStorageValue","localStorage","getItem","setItem","useLayoutEffect","set","valOrFunc","newState","remove","removeItem","useEqualObject","obj1","obj2","keys1","Object","keys","keys2","length","includes","useCookie","cookieName","setValue","Cookies","get","updateCookie","newValue","deleteCookie","useGeolocation","loading","accuracy","altitude","altitudeAccuracy","heading","latitude","longitude","speed","timestamp","Date","now","mounted","watchId","onEvent","coords","onEventError","error","oldState","navigator","geolocation","getCurrentPosition","watchPosition","clearWatch","useIsFirstRender","isFirstRender","useConnection","status","setStatus","events","eventHandle","online","forEach","useBatteryInfo","batteryLevel","setBatteryLevel","isCharging","setIsCharging","dischargingTime","setDischargingTime","getBatteryInfo","battery","getBattery","updateBatteryInfo","Math","round","level","charging","console","useCopyToClipboard","copied","setCopied","setError","copyToClipboard","text","clipboard","writeText","then","catch","err","useMedia","screenStatus","setScreenStatus","matchMedia","matches","onChangeHandle","e","log","useClickOutside","callback","handleClick","contains","target","useColorScheme","colorScheme","setColorScheme","getInitialColorScheme","mediaQuery","listener","isDarkMode","useFullScreen","isFullScreen","setIsFullScreen","enterFullScreen","documentElement","requestFullscreen","mozRequestFullScreen","webkitRequestFullscreen","msRequestFullscreen","exitFullScreen","exitFullscreen","mozCancelFullScreen","webkitExitFullscreen","msExitFullscreen","useSessionStorage","storedValue","setStoredValue","item","sessionStorage","useScrollLock","lock","body","style","overflow","usePreferredLanguage","preferredLanguage","setPreferredLanguage","language","userLanguage","useMousePageLeave","onPageLeave","usePageLeave","onLeave","handleBeforeUnload","useForceUpdate","setTick","update","tick","useInterval","savedCallback","interval","setInterval","clearInterval","useIntersectionObserver","targetRef","isIntersecting","setIsIntersecting","observer","IntersectionObserver","entry","observe","unobserve","useMobileLandscape","isLandscape","setIsLandscape","isMobile","setIsMobile","isMobileLandscape","setIsMobileLandscape","landscape","mobile","useOnlineStatus","isOnline","setIsOnline","onLine","handleOnline","handleOffline","useScrollToElement","scrollToElement","selectorOrRef","querySelector","scrollIntoView","behavior","useStateValidator","validator","initialState","validatorInner","stateInner","validity","setValidity","validate","useMultiStateValidator","states","initialValidity","statesInner","values","useWindowScroll","x","pageXOffset","y","pageYOffset","capture","passive","useSelection","elementRef","getSelectedText","selection","getSelection","range","getRangeAt","toString","useUpdateEffect","dependencies","data","fetchReducer","action","type","payload","useFetch","url","dispatch","useReducer","fetchData","response","fetch","ok","result","json","ErrorBoundaryKanca","Component","constructor","props","hasError","getDerivedStateFromError","componentDidCatch","info","render","fallback","React","createElement","children","useURLSearchParams","searchParams","setSearchParams","URLSearchParams","location","search","handlePopState","updateSearchParams","newParams","params","delete","newUrl","pathname","history","pushState","useToggle","toggle","prevValue","useDocumentTitle","title"],"mappings":"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"}