@reactuses/core 1.1.0 → 1.1.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.
File without changes
File without changes
package/dist/index.cjs CHANGED
@@ -2407,6 +2407,27 @@ function useCycleList(list, i = 0) {
2407
2407
  return [list[index], next, prev];
2408
2408
  }
2409
2409
 
2410
+ function useFocus(target, initialValue = false) {
2411
+ const [focus, innerSetFocus] = react.useState(initialValue);
2412
+ useEventListener("focus", () => innerSetFocus(true), target);
2413
+ useEventListener("blur", () => innerSetFocus(false), target);
2414
+ useMount(() => {
2415
+ setFocus(focus);
2416
+ });
2417
+ const setFocus = (value) => {
2418
+ const element = getTargetElement(target);
2419
+ if (!element) {
2420
+ return;
2421
+ }
2422
+ if (!value) {
2423
+ element.blur();
2424
+ } else if (value) {
2425
+ element.focus();
2426
+ }
2427
+ };
2428
+ return [focus, setFocus];
2429
+ }
2430
+
2410
2431
  exports.useActiveElement = useActiveElement;
2411
2432
  exports.useClickOutside = useClickOutSide;
2412
2433
  exports.useClipboard = useClipBorad;
@@ -2429,6 +2450,7 @@ exports.useEventListener = useEventListener;
2429
2450
  exports.useFavicon = useFavicon;
2430
2451
  exports.useFileDialog = useFileDialog;
2431
2452
  exports.useFirstMountState = useFirstMountState;
2453
+ exports.useFocus = useFocus;
2432
2454
  exports.useFps = useFps$1;
2433
2455
  exports.useFullscreen = useFullscreen;
2434
2456
  exports.useGeolocation = useGeolocation;
package/dist/index.d.ts CHANGED
@@ -684,7 +684,7 @@ declare function useElementBounding(target: BasicTarget, options?: UseElementBou
684
684
  readonly update: () => void;
685
685
  };
686
686
 
687
- declare function useElementVisibility(target: BasicTarget<HTMLElement | SVGElement>, options?: IntersectionObserverInit): readonly [any, () => void];
687
+ declare function useElementVisibility(target: BasicTarget<HTMLElement | SVGElement>, options?: IntersectionObserverInit): readonly [boolean, () => void];
688
688
 
689
689
  declare function useWindowsFocus(): boolean;
690
690
 
@@ -710,4 +710,6 @@ declare function useClickOutSide(target: BasicTarget, handler: (evt: EventType)
710
710
 
711
711
  declare function useCycleList<T>(list: T[], i?: number): readonly [T, (i?: number) => void, (i?: number) => void];
712
712
 
713
- export { useActiveElement, useClickOutSide as useClickOutside, useClipBorad as useClipboard, useCounter, useCustomCompareEffect, useCycleList, useDarkMode, useDebounce, useDebounceFn, useDeepCompareEffect, useDocumentVisibility, useDraggable, useDropZone, useElementBounding, useElementSize, useElementVisibility, useEvent, useEventEmitter, useEventListener, useFavicon, useFileDialog, useFirstMountState, _default as useFps, useFullscreen, useGeolocation, useIdle, useInfiniteScroll, useIntersectionObserver, useInterval, useIsomorphicLayoutEffect, useKeyModifier, useLatest, useLocalStorage, useLongPress, _default$1 as useMediaDevices, useMediaQuery, useMount, useMountedState, useMouse, useMousePressed, useMutationObserver, useNetwork, useObjectUrl, useOnline, useOrientation, usePageLeave, usePermission, usePreferredColorScheme, usePreferredContrast, usePreferredDark, usePrevious, useRafFn, useRafState, useResizeObserver, useScriptTag, useScroll, useScrollLock, useSessionStorage, useTextDirection, useThrottle, useThrottleFn, useTimeout, useTimeoutFn, useTitle, useToggle, useUnmount, useUpdate, _default$3 as useUpdateEffect, _default$2 as useUpdateLayoutEffect, useVirtualList, useWindowScroll, useWindowSize, useWindowsFocus };
713
+ declare function useFocus(target: BasicTarget<HTMLElement | SVGElement>, initialValue?: boolean): readonly [boolean, (value: boolean) => void];
714
+
715
+ export { useActiveElement, useClickOutSide as useClickOutside, useClipBorad as useClipboard, useCounter, useCustomCompareEffect, useCycleList, useDarkMode, useDebounce, useDebounceFn, useDeepCompareEffect, useDocumentVisibility, useDraggable, useDropZone, useElementBounding, useElementSize, useElementVisibility, useEvent, useEventEmitter, useEventListener, useFavicon, useFileDialog, useFirstMountState, useFocus, _default as useFps, useFullscreen, useGeolocation, useIdle, useInfiniteScroll, useIntersectionObserver, useInterval, useIsomorphicLayoutEffect, useKeyModifier, useLatest, useLocalStorage, useLongPress, _default$1 as useMediaDevices, useMediaQuery, useMount, useMountedState, useMouse, useMousePressed, useMutationObserver, useNetwork, useObjectUrl, useOnline, useOrientation, usePageLeave, usePermission, usePreferredColorScheme, usePreferredContrast, usePreferredDark, usePrevious, useRafFn, useRafState, useResizeObserver, useScriptTag, useScroll, useScrollLock, useSessionStorage, useTextDirection, useThrottle, useThrottleFn, useTimeout, useTimeoutFn, useTitle, useToggle, useUnmount, useUpdate, _default$3 as useUpdateEffect, _default$2 as useUpdateLayoutEffect, useVirtualList, useWindowScroll, useWindowSize, useWindowsFocus };
package/dist/index.mjs CHANGED
@@ -2403,4 +2403,25 @@ function useCycleList(list, i = 0) {
2403
2403
  return [list[index], next, prev];
2404
2404
  }
2405
2405
 
2406
- export { useActiveElement, useClickOutSide as useClickOutside, useClipBorad as useClipboard, useCounter, useCustomCompareEffect, useCycleList, useDarkMode, useDebounce, useDebounceFn, useDeepCompareEffect, useDocumentVisibility, useDraggable, useDropZone, useElementBounding, useElementSize, useElementVisibility, useEvent, useEventEmitter, useEventListener, useFavicon, useFileDialog, useFirstMountState, useFps$1 as useFps, useFullscreen, useGeolocation, useIdle, useInfiniteScroll, useIntersectionObserver, useInterval, useIsomorphicLayoutEffect, useKeyModifier, useLatest, useLocalStorage, useLongPress, useMediaDevices$1 as useMediaDevices, useMediaQuery, useMount, useMountedState, useMouse, useMousePressed, useMutationObserver, useNetwork, useObjectUrl, useOnline, useOrientation, usePageLeave, usePermission, usePreferredColorScheme, usePreferredContrast, usePreferredDark, usePrevious, useRafFn, useRafState, useResizeObserver, useScriptTag, useScroll, useScrollLock, useSessionStorage, useTextDirection, useThrottle, useThrottleFn, useTimeout, useTimeoutFn, useTitle, useToggle, useUnmount, useUpdate, useUpdateEffect, useUpdateLayoutEffect, useVirtualList, useWindowScroll, useWindowSize, useWindowsFocus };
2406
+ function useFocus(target, initialValue = false) {
2407
+ const [focus, innerSetFocus] = useState(initialValue);
2408
+ useEventListener("focus", () => innerSetFocus(true), target);
2409
+ useEventListener("blur", () => innerSetFocus(false), target);
2410
+ useMount(() => {
2411
+ setFocus(focus);
2412
+ });
2413
+ const setFocus = (value) => {
2414
+ const element = getTargetElement(target);
2415
+ if (!element) {
2416
+ return;
2417
+ }
2418
+ if (!value) {
2419
+ element.blur();
2420
+ } else if (value) {
2421
+ element.focus();
2422
+ }
2423
+ };
2424
+ return [focus, setFocus];
2425
+ }
2426
+
2427
+ export { useActiveElement, useClickOutSide as useClickOutside, useClipBorad as useClipboard, useCounter, useCustomCompareEffect, useCycleList, useDarkMode, useDebounce, useDebounceFn, useDeepCompareEffect, useDocumentVisibility, useDraggable, useDropZone, useElementBounding, useElementSize, useElementVisibility, useEvent, useEventEmitter, useEventListener, useFavicon, useFileDialog, useFirstMountState, useFocus, useFps$1 as useFps, useFullscreen, useGeolocation, useIdle, useInfiniteScroll, useIntersectionObserver, useInterval, useIsomorphicLayoutEffect, useKeyModifier, useLatest, useLocalStorage, useLongPress, useMediaDevices$1 as useMediaDevices, useMediaQuery, useMount, useMountedState, useMouse, useMousePressed, useMutationObserver, useNetwork, useObjectUrl, useOnline, useOrientation, usePageLeave, usePermission, usePreferredColorScheme, usePreferredContrast, usePreferredDark, usePrevious, useRafFn, useRafState, useResizeObserver, useScriptTag, useScroll, useScrollLock, useSessionStorage, useTextDirection, useThrottle, useThrottleFn, useTimeout, useTimeoutFn, useTitle, useToggle, useUnmount, useUpdate, useUpdateEffect, useUpdateLayoutEffect, useVirtualList, useWindowScroll, useWindowSize, useWindowsFocus };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reactuses/core",
3
- "version": "1.1.0",
3
+ "version": "1.1.2",
4
4
  "main": "./dist/index.cjs",
5
5
  "module": "./dist/index.mjs",
6
6
  "types": "./dist/index.d.ts",
@@ -25,6 +25,7 @@
25
25
  "lint": "eslint \"{hooks,tests}/**/*.{ts,tsx}\"",
26
26
  "build": "esno scripts/build.ts",
27
27
  "build:rollup": "cross-env NODE_OPTIONS=\"--max-old-space-size=6144\" rollup -c",
28
+ "dev": "cross-env NODE_OPTIONS=\"--max-old-space-size=6144\" rollup -c --watch",
28
29
  "publish:ci": "esno scripts/publish.ts",
29
30
  "release:prepare": "bump",
30
31
  "release": "esno scripts/release.ts",