UNPKG

@nexara/nativeflow

Version:

Beautiful, responsive, and customizable UI components for React Native – built for performance and seamless experiences.

42 lines (41 loc) 1.18 kB
"use strict"; import React, { useCallback, useMemo, useState } from "react"; import PortalContext from "./PortalContext.js"; import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime"; const PortalProvider = ({ children }) => { const [components, setComponents] = useState({}); const addComponent = useCallback(({ name, component }) => { setComponents(prevComponents => ({ ...prevComponents, [name]: component })); }, []); const removeComponent = useCallback(name => { setComponents(prevComponents => { const newComponents = { ...prevComponents }; delete newComponents[name]; return newComponents; }); }, []); const values = useMemo(() => ({ addComponent, removeComponent }), []); return /*#__PURE__*/_jsx(_Fragment, { children: /*#__PURE__*/_jsxs(PortalContext.Provider, { value: values, children: [children, Object.entries(components).map(([_name, Component]) => /*#__PURE__*/_jsx(React.Fragment, { children: Component }, _name))] }) }); }; export default PortalProvider; //# sourceMappingURL=PortalProvider.js.map