"use strict"; "use client"; 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]; }