UNPKG

2.53 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
5var _typeof = require("@babel/runtime/helpers/typeof");
6
7Object.defineProperty(exports, "__esModule", {
8 value: true
9});
10exports["default"] = usePatchElement;
11
12var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
14var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
16var React = _interopRequireWildcard(require("react"));
17
18function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
19
20function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
21
22function usePatchElement() {
23 var _React$useState = React.useState([]),
24 _React$useState2 = (0, _slicedToArray2["default"])(_React$useState, 2),
25 elements = _React$useState2[0],
26 setElements = _React$useState2[1];
27
28 var patchElement = React.useCallback(function (element) {
29 // append a new element to elements (and create a new ref)
30 setElements(function (originElements) {
31 return [].concat((0, _toConsumableArray2["default"])(originElements), [element]);
32 }); // return a function that removes the new element out of elements (and create a new ref)
33 // it works a little like useEffect
34
35 return function () {
36 setElements(function (originElements) {
37 return originElements.filter(function (ele) {
38 return ele !== element;
39 });
40 });
41 };
42 }, []);
43 return [elements, patchElement];
44}
\No newline at end of file