@bothub-chat/ui
Version:
Bothub UI Components
2 lines (1 loc) • 1.96 kB
JavaScript
import{__rest as t}from"tslib";import{jsx as r,jsxs as e}from"react/jsx-runtime";import{useRef as o,useState as i,useCallback as n,useEffect as s}from"react";import{useTransition as c}from"@react-spring/web";import{SidebarLangDropdownStyled as l,SidebarLangDropdownToggler as m,SidebarLangDropdownTogglerIcon as a,SidebarLangDropdownTogglerText as d,SidebarLangDropdownTogglerArrow as p,SidebarLangDropdownContent as f}from"./styled.js";export{SidebarLangDropdownList}from"./styled.js";import{SidebarLangDropdownProvider as j}from"./context.js";import{IconProvider as h}from"../../icon/context.js";import"../../icon/styled.js";import"react-dom";import"../../portal/styled.js";import"../../tooltip/styled.js";import"../../tooltip/arrow/styled.js";import"../../../theme/index.js";import"../../tooltip/context.js";import"./item/styled.js";import{useTheme as y}from"../../../theme/hook.js";const u=u=>{var{lang:g,children:v}=u,w=t(u,["lang","children"]);const b=y(),x=o(null),[L,k]=i(!1),E=n((()=>{k(!L)}),[L]);s((()=>{const t=x.current;if(null!==t){const r=r=>{t.contains(r.target)||k(!1)},e=()=>k(!1);return document.addEventListener("click",r),window.addEventListener("blur",e),()=>{document.removeEventListener("click",r),window.removeEventListener("blur",e)}}}),[]);const O=c(L,{from:{opacity:0,transform:"scale(0)"},enter:{opacity:L?1:.5,transform:`scale(${L?1:.999})`},leave:{opacity:0,transform:"scale(0.999)"},config:{duration:150}});return r(j,{setIsOpen:k,children:e(l,Object.assign({},w,{ref:x,children:[r(h,{fill:b.colors.base.white,children:e(m,{$open:L,onClick:E,children:[r(a,{}),r(d,{children:g}),r(p,{style:{transform:L?"rotateZ(-180deg)":"rotateZ(0)"}})]})}),O(((t,e)=>e&&r(f,{style:t,children:v})))]}))})};export{u as SidebarLangDropdown,f as SidebarLangDropdownContent,l as SidebarLangDropdownStyled,m as SidebarLangDropdownToggler,p as SidebarLangDropdownTogglerArrow,a as SidebarLangDropdownTogglerIcon,d as SidebarLangDropdownTogglerText};