1234567891011121314151617181920212223 |
- "use strict";
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.default = usePatchElement;
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
- var React = _interopRequireWildcard(require("react"));
- function usePatchElement() {
- const [elements, setElements] = React.useState([]);
- const patchElement = React.useCallback(element => {
- // append a new element to elements (and create a new ref)
- setElements(originElements => [].concat((0, _toConsumableArray2.default)(originElements), [element]));
- // return a function that removes the new element out of elements (and create a new ref)
- // it works a little like useEffect
- return () => {
- setElements(originElements => originElements.filter(ele => ele !== element));
- };
- }, []);
- return [elements, patchElement];
- }
|