UNPKG

@meonode/ui

Version:

A structured approach to component composition, direct CSS-first prop styling, built-in theming, smart prop handling (including raw property pass-through), and dynamic children.

3 lines (2 loc) 576 B
"use client"; "use strict";var e=require("react"),r=require("../components/portal-provider.client.cjs");exports.usePortal=function(t){const u=e.useContext(r.PortalContext);if(!u)throw new Error("usePortal must be used within a PortalProvider");const a=e.useRef(null);return e.useEffect(()=>{void 0!==t&&a.current&&a.current.updateData(t)},[t]),{open:e.useCallback((e,r)=>{const o=u.showPortal(e,r??t);return a.current=o,o},[u.showPortal,t]),updateData:e.useCallback(e=>{a.current?.updateData(e)},[]),close:e.useCallback(()=>{a.current?.close(),a.current=null},[]),handle:a}};