UNPKG

ladle-inject-custom-addons

Version:
2 lines (1 loc) 1.42 kB
"use strict";var m=Object.create;var s=Object.defineProperty;var d=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var f=Object.getPrototypeOf,E=Object.prototype.hasOwnProperty;var p=(t,n)=>{for(var e in n)s(t,e,{get:n[e],enumerable:!0})},a=(t,n,e,o)=>{if(n&&typeof n=="object"||typeof n=="function")for(let l of c(n))!E.call(t,l)&&l!==e&&s(t,l,{get:()=>n[l],enumerable:!(o=d(n,l))||o.enumerable});return t};var N=(t,n,e)=>(e=t!=null?m(f(t)):{},a(n||!t||!t.__esModule?s(e,"default",{value:t,enumerable:!0}):e,t)),b=t=>a(s({},"__esModule",{value:!0}),t);var T={};p(T,{useAddonPanelPortal:()=>g});module.exports=b(T);var i=N(require("react")),u=require("react-dom");function r(){return document.getElementsByClassName("ladle-addons")[0]?.getElementsByTagName("ul")?.[0]??null}var g=(t,{position:n=0})=>{let[e]=i.default.useState(document.createElement("li"));return i.default.useEffect(()=>{let o=r();if(!o){console.warn("Unable to find addon panel. Custom addons won't be mounted!");return}return L(o,e,n),()=>{o.removeChild(e)}},[n]),e?(0,u.createPortal)(t,e):null},L=(t,n,e)=>{n.setAttribute("data-position",e.toString()),t.insertBefore(n,A(Array.from(t.getElementsByTagName("li")),e))};function A(t,n){let e=null;for(let o of t){let l=Number(o.dataset.position);if(o.dataset.position!=null&&!isNaN(l)?e=l:e===null||isNaN(e)?e=1:++e,n<e)return o}return null}0&&(module.exports={useAddonPanelPortal});