@rc-component/portal
Advanced tools
Comparing version 1.0.0-10 to 1.0.0
@@ -17,2 +17,3 @@ import * as React from 'react'; | ||
} | ||
export default function Portal(props: PortalProps): JSX.Element; | ||
declare const Portal: React.ForwardRefExoticComponent<PortalProps & React.RefAttributes<any>>; | ||
export default Portal; |
@@ -5,2 +5,3 @@ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray"; | ||
import canUseDom from "rc-util/es/Dom/canUseDom"; | ||
import { supportRef, useComposeRef } from "rc-util/es/ref"; | ||
import OrderContext from "./Context"; | ||
@@ -31,3 +32,3 @@ import useDom from "./useDom"; | ||
export default function Portal(props) { | ||
var Portal = /*#__PURE__*/React.forwardRef(function (props, ref) { | ||
var open = props.open, | ||
@@ -73,3 +74,12 @@ autoLock = props.autoLock, | ||
useScrollLocker(autoLock && open && canUseDom() && (mergedContainer === defaultContainer || mergedContainer === document.body)); // ========================= Render ========================== | ||
useScrollLocker(autoLock && open && canUseDom() && (mergedContainer === defaultContainer || mergedContainer === document.body)); // =========================== Ref =========================== | ||
var childRef = null; | ||
if (children && supportRef(children) && ref) { | ||
var _ref = children; | ||
childRef = _ref.ref; | ||
} | ||
var mergedRef = useComposeRef(childRef, ref); // ========================= Render ========================== | ||
// Do not render when nothing need render | ||
@@ -84,5 +94,19 @@ // When innerContainer is `undefined`, it may not ready since user use ref in the same render | ||
var renderInline = mergedContainer === false || inlineMock(); | ||
var reffedChildren = children; | ||
if (ref) { | ||
reffedChildren = /*#__PURE__*/React.cloneElement(children, { | ||
ref: mergedRef | ||
}); | ||
} | ||
return /*#__PURE__*/React.createElement(OrderContext.Provider, { | ||
value: queueCreate | ||
}, renderInline ? children : /*#__PURE__*/createPortal(children, mergedContainer)); | ||
} | ||
}, renderInline ? reffedChildren : /*#__PURE__*/createPortal(reffedChildren, mergedContainer)); | ||
}); | ||
if (process.env.NODE_ENV !== 'production') { | ||
Portal.displayName = 'Portal'; | ||
} | ||
export default Portal; |
@@ -17,2 +17,3 @@ import * as React from 'react'; | ||
} | ||
export default function Portal(props: PortalProps): JSX.Element; | ||
declare const Portal: React.ForwardRefExoticComponent<PortalProps & React.RefAttributes<any>>; | ||
export default Portal; |
@@ -10,3 +10,3 @@ "use strict"; | ||
}); | ||
exports.default = Portal; | ||
exports.default = void 0; | ||
@@ -21,2 +21,4 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); | ||
var _ref2 = require("rc-util/lib/ref"); | ||
var _Context = _interopRequireDefault(require("./Context")); | ||
@@ -50,3 +52,3 @@ | ||
function Portal(props) { | ||
var Portal = /*#__PURE__*/React.forwardRef(function (props, ref) { | ||
var open = props.open, | ||
@@ -92,3 +94,12 @@ autoLock = props.autoLock, | ||
(0, _useScrollLocker.default)(autoLock && open && (0, _canUseDom.default)() && (mergedContainer === defaultContainer || mergedContainer === document.body)); // ========================= Render ========================== | ||
(0, _useScrollLocker.default)(autoLock && open && (0, _canUseDom.default)() && (mergedContainer === defaultContainer || mergedContainer === document.body)); // =========================== Ref =========================== | ||
var childRef = null; | ||
if (children && (0, _ref2.supportRef)(children) && ref) { | ||
var _ref = children; | ||
childRef = _ref.ref; | ||
} | ||
var mergedRef = (0, _ref2.useComposeRef)(childRef, ref); // ========================= Render ========================== | ||
// Do not render when nothing need render | ||
@@ -103,5 +114,20 @@ // When innerContainer is `undefined`, it may not ready since user use ref in the same render | ||
var renderInline = mergedContainer === false || (0, _mock.inlineMock)(); | ||
var reffedChildren = children; | ||
if (ref) { | ||
reffedChildren = /*#__PURE__*/React.cloneElement(children, { | ||
ref: mergedRef | ||
}); | ||
} | ||
return /*#__PURE__*/React.createElement(_Context.default.Provider, { | ||
value: queueCreate | ||
}, renderInline ? children : /*#__PURE__*/(0, _reactDom.createPortal)(children, mergedContainer)); | ||
} | ||
}, renderInline ? reffedChildren : /*#__PURE__*/(0, _reactDom.createPortal)(reffedChildren, mergedContainer)); | ||
}); | ||
if (process.env.NODE_ENV !== 'production') { | ||
Portal.displayName = 'Portal'; | ||
} | ||
var _default = Portal; | ||
exports.default = _default; |
{ | ||
"name": "@rc-component/portal", | ||
"version": "1.0.0-10", | ||
"version": "1.0.0", | ||
"description": "React Portal Component", | ||
@@ -42,3 +42,3 @@ "keywords": [ | ||
"test:coverage": "npm run test:client --coverage", | ||
"test:server": "umi-test --env=node tests/ssr.test.tsx", | ||
"test:server": "umi-test --env=node -- tests/ssr.test.tsx", | ||
"watch": "father dev" | ||
@@ -52,2 +52,3 @@ }, | ||
"devDependencies": { | ||
"@rc-component/father-plugin": "^1.0.0", | ||
"@testing-library/jest-dom": "^5.16.4", | ||
@@ -54,0 +55,0 @@ "@testing-library/react": "^13.0.0", |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
26593
517
0
0
17
4