siegel
Version:
Web application development ecosystem
1 lines • 1.53 kB
JavaScript
import e,{useMemo as t,useState as r,useLayoutEffect as n}from"react";import o from"../_internals/resolve_tag_attributes.js";import l from"../../../common/is/exists/index.js";import i from"../_internals/component.js";import s from"../_internals/ref_apply.js";import a from"../_internals/apply_classname.js";import m from"./styles.sass";let f="-ui-breadcrumbs";function c(e){e.preventDefault()}let p=e=>{for(let t in e){let{children:r,dynamicCrumb:n}=e[t];if(n)return!0;if(r)return p(r)}},u=i(f,{className:m.root,separator:"",theme:{root:"",crumb:""}},i=>{let u,{dynamicCrumbsID:_=f,className:d,rootTagAttributes:b,config:h}=i,v=t(()=>p(h),[]);if(v){let[e,t]=r({});u=e,n(()=>{let r=function({detail:r}){let{crumbs:n,componentDynamicCrumbsID:o=f}=r;_==o&&t({...e,...n})};return addEventListener(f,r),()=>{removeEventListener(f,r)}},[])}let j={className:d,children:function(t,r,n){let{theme:o,separator:i,config:s,onChange:f}=t,{pathname:p}=location,u="/"==p?[""]:p.split("/");""==u.at(-1)&&(u[u.length-1]="/");let _=[],d=a(m.link,[[o.crumb,!0]]),b=s,h="";for(let t=0,o=u.length;t<o;t++){let o=u[t],s=b[o]||b["*"];if(l(s)){let{crumb:a,dynamicCrumb:m,children:p}=s,u=`${h}${o?"/":""}${o}`;if(l(p)&&(b=p),a||m){let l=m&&n?r[m]||m:"function"==typeof a?a(u,o):a;_.push(e.createElement("a",{key:u,className:d,href:u||"/",onClick:c,onMouseDown:e=>{f(u,o,e)}},t?e.createElement(e.Fragment,null,i," ",l):l))}h=u}else break}return _}(i,u,v)};return s(j,i),j=o(j,b),e.createElement("div",{...j})});export default u;export{f as componentID};