@nexara/nativeflow
Version:
Beautiful, responsive, and customizable UI components for React Native – built for performance and seamless experiences.
38 lines (35 loc) • 1.04 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _react = require("react");
var _PortalContext = _interopRequireDefault(require("./PortalContext.js"));
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
const Portal = ({
children,
name
}) => {
const {
addComponent,
removeComponent
} = (0, _react.useContext)(_PortalContext.default);
const uniqueId = name ?? (0, _react.useId)();
// const uniqueId = useRef(name ?? `portal_${Math.random() * 50}`).current;
// useEffect(() => {
// return () => removeComponent(uniqueId);
// }, []);
// useEffect(() => {
// addComponent({ name: uniqueId, component: children });
// }, [children]);
(0, _react.useLayoutEffect)(() => {
addComponent({
name: uniqueId,
component: children
});
return () => removeComponent(uniqueId);
}, [children, uniqueId]);
return null;
};
var _default = exports.default = Portal;
//# sourceMappingURL=Portal.js.map