antd
Version:
An enterprise-class UI design language and React components implementation
27 lines (25 loc) • 715 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useProxyImperativeHandle = void 0;
var _react = require("react");
// Proxy the dom ref with `{ nativeElement, otherFn }` type
// ref: https://github.com/ant-design/ant-design/discussions/45242
const useProxyImperativeHandle = (ref, init) => {
return (0, _react.useImperativeHandle)(ref, () => {
const refObj = init();
const {
nativeElement
} = refObj;
return new Proxy(nativeElement, {
get(obj, prop) {
if (refObj[prop]) {
return refObj[prop];
}
return Reflect.get(obj, prop);
}
});
});
};
exports.useProxyImperativeHandle = useProxyImperativeHandle;