@bothub-chat/ui
Version:
Bothub UI Components
2 lines (1 loc) • 2.11 kB
JavaScript
import{jsx as t,jsxs as e}from"react/jsx-runtime";import{useRef as r,useState as n,useCallback as o,useEffect as i}from"react";import{useTransition as s}from"@react-spring/web";import{HeaderUserInfoStyled as c,HeaderUserInfoHead as l,HeaderUserInfoInfo as a,HeaderUserInfoInfoText as m,HeaderUserInfoName as d,HeaderUserInfoTokens as p,HeaderUserInfoArrow as u,HeaderUserInfoBody as f}from"./styled.js";export{HeaderUserInfoAvatar,HeaderUserInfoList}from"./styled.js";import{HeaderUserInfoProvider as j}from"./context.js";import{useHeaderMenu as h}from"../menu/context.js";import"tslib";import"../../../theme/index.js";import"../../icon/styled.js";import"react-markdown";import"react-dom";import"../../portal/styled.js";import"../../tooltip/styled.js";import"../../tooltip/arrow/styled.js";import"../../tooltip/context.js";import"./item/styled.js";const y=({avatar:y,name:v,tokens:w,children:g})=>{const{isInMenu:x}=h(),b=r(null),k=r(null),[L,E]=n(0),[I,M]=n(!1),$=o(()=>{let t;t=null!==k.current?k.current.getBoundingClientRect().width:0,E(t),M(!I)},[I,k]);i(()=>{const t=b.current;if(null!==t){const e=e=>{t.contains(e.target)||M(!1)},r=()=>M(!1);return document.addEventListener("click",e),window.addEventListener("blur",r),()=>{document.removeEventListener("click",e),window.removeEventListener("blur",r)}}},[]);const O=s(I,x?{}:{from:{opacity:0,transform:"scale(0)"},enter:{opacity:I?1:.5,transform:`scale(${I?1:.999})`,transition:{duration:.15}},leave:{opacity:0,transform:"scale(0.999)"},config:{duration:150}});return t(j,{setIsOpen:M,children:e(c,{ref:b,$inMenu:x,"data-test":"user-info",children:[e(l,{$inMenu:x,ref:k,onClick:$,children:[e(a,{children:[y,e(m,{children:[t(d,{children:v}),t(p,{children:w})]})]}),t(u,{style:{transform:I?"rotateZ(-180deg)":"rotateZ(0)"}})]}),O((e,r)=>r&&t(f,{$inMenu:x,style:Object.assign(Object.assign({},e),{width:L}),children:g}))]})})};export{y as HeaderUserInfo,u as HeaderUserInfoArrow,f as HeaderUserInfoBody,l as HeaderUserInfoHead,a as HeaderUserInfoInfo,m as HeaderUserInfoInfoText,d as HeaderUserInfoName,c as HeaderUserInfoStyled,p as HeaderUserInfoTokens};