UNPKG

@nexara/nativeflow

Version:

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

40 lines (39 loc) 1.11 kB
"use strict"; import React, { useCallback, useMemo, useState } from "react"; import PortalContext from "./PortalContext.js"; import { jsxs as _jsxs, Fragment as _Fragment, jsx as _jsx } 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]) => Component)] }) }); }; export default PortalProvider; //# sourceMappingURL=PortalProvider.js.map