@folklore/hooks 0.0.6 → 0.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/dist/cjs.js +60 -1
  2. package/dist/es.js +57 -2
  3. package/package.json +5 -2
package/dist/cjs.js CHANGED
@@ -2,17 +2,73 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
+ var react = require('react');
6
+ var EventsManager = require('@folklore/events');
5
7
  var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
6
8
  var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
7
9
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
8
- var react = require('react');
9
10
 
10
11
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
11
12
 
13
+ var EventsManager__default = /*#__PURE__*/_interopDefaultLegacy(EventsManager);
12
14
  var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray);
13
15
  var _toConsumableArray__default = /*#__PURE__*/_interopDefaultLegacy(_toConsumableArray);
14
16
  var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
15
17
 
18
+ var eventsManager$1 = typeof document !== 'undefined' ? new EventsManager__default["default"](document) : null;
19
+
20
+ var useDocumentEvent = function useDocumentEvent(event, callback) {
21
+ react.useEffect(function () {
22
+ if (eventsManager$1 !== null && callback !== null) {
23
+ eventsManager$1.subscribe(event, callback);
24
+ }
25
+
26
+ return function () {
27
+ if (eventsManager$1 !== null && callback !== null) {
28
+ eventsManager$1.unsubscribe(event, callback);
29
+ }
30
+ };
31
+ }, [event, callback]);
32
+ };
33
+
34
+ var eventsManager = typeof window !== 'undefined' ? new EventsManager__default["default"](window) : null;
35
+
36
+ var useWindowEvent = function useWindowEvent(event, callback) {
37
+ react.useEffect(function () {
38
+ if (eventsManager !== null && callback !== null) {
39
+ eventsManager.subscribe(event, callback);
40
+ }
41
+
42
+ return function () {
43
+ if (eventsManager !== null && callback !== null) {
44
+ eventsManager.unsubscribe(event, callback);
45
+ }
46
+ };
47
+ }, [event, callback]);
48
+ };
49
+
50
+ function useKeyboard() {
51
+ var keyMap = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
52
+ var onKeyDown = react.useCallback(function (event) {
53
+ var key = event.key;
54
+ var callback = (typeof keyMap[key] === 'function' ? keyMap[key] : (keyMap[key] || {}).down) || null;
55
+
56
+ if (callback !== null) {
57
+ callback(event);
58
+ }
59
+ }, [keyMap]);
60
+ var onKeyUp = react.useCallback(function (event) {
61
+ var key = event.key;
62
+ var callback = (typeof keyMap[key] !== 'undefined' && typeof keyMap[key] !== 'function' ? (keyMap[key] || {}).up : null) || null;
63
+
64
+ if (callback !== null) {
65
+ callback(event);
66
+ }
67
+ }, [keyMap]);
68
+ useWindowEvent('keydown', keyMap !== null ? onKeyDown : null);
69
+ useWindowEvent('keyup', keyMap !== null ? onKeyUp : null);
70
+ }
71
+
16
72
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
17
73
 
18
74
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
@@ -254,6 +310,9 @@ var useResizeObserver = function useResizeObserver() {
254
310
  };
255
311
 
256
312
  exports.getObserver = getObserver;
313
+ exports.useDocumentEvent = useDocumentEvent;
257
314
  exports.useIntersectionObserver = useIntersectionObserver;
315
+ exports.useKeyboard = useKeyboard;
258
316
  exports.useObserver = useObserver;
259
317
  exports.useResizeObserver = useResizeObserver;
318
+ exports.useWindowEvent = useWindowEvent;
package/dist/es.js CHANGED
@@ -1,7 +1,62 @@
1
+ import { useEffect, useCallback, useState, useRef } from 'react';
2
+ import EventsManager from '@folklore/events';
1
3
  import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
2
4
  import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
3
5
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
4
- import { useState, useRef, useEffect } from 'react';
6
+
7
+ var eventsManager$1 = typeof document !== 'undefined' ? new EventsManager(document) : null;
8
+
9
+ var useDocumentEvent = function useDocumentEvent(event, callback) {
10
+ useEffect(function () {
11
+ if (eventsManager$1 !== null && callback !== null) {
12
+ eventsManager$1.subscribe(event, callback);
13
+ }
14
+
15
+ return function () {
16
+ if (eventsManager$1 !== null && callback !== null) {
17
+ eventsManager$1.unsubscribe(event, callback);
18
+ }
19
+ };
20
+ }, [event, callback]);
21
+ };
22
+
23
+ var eventsManager = typeof window !== 'undefined' ? new EventsManager(window) : null;
24
+
25
+ var useWindowEvent = function useWindowEvent(event, callback) {
26
+ useEffect(function () {
27
+ if (eventsManager !== null && callback !== null) {
28
+ eventsManager.subscribe(event, callback);
29
+ }
30
+
31
+ return function () {
32
+ if (eventsManager !== null && callback !== null) {
33
+ eventsManager.unsubscribe(event, callback);
34
+ }
35
+ };
36
+ }, [event, callback]);
37
+ };
38
+
39
+ function useKeyboard() {
40
+ var keyMap = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
41
+ var onKeyDown = useCallback(function (event) {
42
+ var key = event.key;
43
+ var callback = (typeof keyMap[key] === 'function' ? keyMap[key] : (keyMap[key] || {}).down) || null;
44
+
45
+ if (callback !== null) {
46
+ callback(event);
47
+ }
48
+ }, [keyMap]);
49
+ var onKeyUp = useCallback(function (event) {
50
+ var key = event.key;
51
+ var callback = (typeof keyMap[key] !== 'undefined' && typeof keyMap[key] !== 'function' ? (keyMap[key] || {}).up : null) || null;
52
+
53
+ if (callback !== null) {
54
+ callback(event);
55
+ }
56
+ }, [keyMap]);
57
+ useWindowEvent('keydown', keyMap !== null ? onKeyDown : null);
58
+ useWindowEvent('keyup', keyMap !== null ? onKeyUp : null);
59
+ }
5
60
 
6
61
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
7
62
 
@@ -243,4 +298,4 @@ var useResizeObserver = function useResizeObserver() {
243
298
  }, resizeObserverInitialEntry);
244
299
  };
245
300
 
246
- export { getObserver, useIntersectionObserver, useObserver, useResizeObserver };
301
+ export { getObserver, useDocumentEvent, useIntersectionObserver, useKeyboard, useObserver, useResizeObserver, useWindowEvent };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@folklore/hooks",
3
- "version": "0.0.6",
3
+ "version": "0.0.7",
4
4
  "description": "React hooks",
5
5
  "keywords": [
6
6
  "javascript",
@@ -48,5 +48,8 @@
48
48
  "publishConfig": {
49
49
  "access": "public"
50
50
  },
51
- "gitHead": "cf8f69f622f7ce5476723a2dea46157be2fe5833"
51
+ "gitHead": "27dc69f946d5536c5a2f7a368c778c0fea00d1b2",
52
+ "dependencies": {
53
+ "@folklore/events": "^0.0.2"
54
+ }
52
55
  }