first commit
This commit is contained in:
44
frontend/node_modules/@rc-component/mutate-observer/es/MutateObserver.js
generated
vendored
Normal file
44
frontend/node_modules/@rc-component/mutate-observer/es/MutateObserver.js
generated
vendored
Normal file
@@ -0,0 +1,44 @@
|
||||
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
||||
import React from 'react';
|
||||
import useLayoutEffect from "rc-util/es/hooks/useLayoutEffect";
|
||||
import { supportRef, useComposeRef } from "rc-util/es/ref";
|
||||
import findDOMNode from "rc-util/es/Dom/findDOMNode";
|
||||
import useEvent from "rc-util/es/hooks/useEvent";
|
||||
import DomWrapper from "./wrapper";
|
||||
import useMutateObserver from "./useMutateObserver";
|
||||
var MutateObserver = function MutateObserver(props) {
|
||||
var children = props.children,
|
||||
options = props.options,
|
||||
_props$onMutate = props.onMutate,
|
||||
onMutate = _props$onMutate === void 0 ? function () {} : _props$onMutate;
|
||||
var callback = useEvent(onMutate);
|
||||
var wrapperRef = React.useRef(null);
|
||||
var elementRef = React.useRef(null);
|
||||
var canRef = /*#__PURE__*/React.isValidElement(children) && supportRef(children);
|
||||
var mergedRef = useComposeRef(elementRef, canRef ? children.ref : null);
|
||||
var _React$useState = React.useState(null),
|
||||
_React$useState2 = _slicedToArray(_React$useState, 2),
|
||||
target = _React$useState2[0],
|
||||
setTarget = _React$useState2[1];
|
||||
useMutateObserver(target, callback, options);
|
||||
|
||||
// =========================== Effect ===========================
|
||||
// Bind target
|
||||
useLayoutEffect(function () {
|
||||
setTarget(findDOMNode(elementRef.current) || findDOMNode(wrapperRef.current));
|
||||
});
|
||||
|
||||
// =========================== Render ===========================
|
||||
if (!children) {
|
||||
if (process.env.NODE_ENV !== 'production') {
|
||||
console.error('MutationObserver need children props');
|
||||
}
|
||||
return null;
|
||||
}
|
||||
return /*#__PURE__*/React.createElement(DomWrapper, {
|
||||
ref: wrapperRef
|
||||
}, canRef ? /*#__PURE__*/React.cloneElement(children, {
|
||||
ref: mergedRef
|
||||
}) : children);
|
||||
};
|
||||
export default MutateObserver;
|
||||
Reference in New Issue
Block a user