UNPKG

@bothub-chat/ui

Version:

Bothub UI Components

2 lines (1 loc) 2.18 kB
import{__rest as t}from"tslib";import{jsx as r,jsxs as e}from"react/jsx-runtime";import{useRef as o,useState as n,useCallback as i,useEffect as s}from"react";import{useTransition as c}from"@react-spring/web";import{HeaderLangDropdownStyled as l,HeaderLangDropdownToggler as m,HeaderLangDropdownTogglerIcon as a,HeaderLangDropdownTogglerText as d,HeaderLangDropdownTogglerArrow as p,HeaderLangDropdownContent as f}from"./styled.js";export{HeaderLangDropdownList}from"./styled.js";import{HeaderLangDropdownProvider as j}from"./context.js";import{IconProvider as u}from"../../icon/context.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"../../../theme/index.js";import"../../tooltip/context.js";import"./item/styled.js";import{useTheme as w}from"../../../theme/hook.js";const h=h=>{var{lang:y,children:v}=h,g=t(h,["lang","children"]);const L=w(),x=o(null),[b,E]=n(!1),k=i(()=>{E(!b)},[b]),$=i(()=>{E(!1)},[]);s(()=>{if(!b)return;const t=t=>{const r=x.current,e=t.target;r&&r.contains(e)||$()};return window.addEventListener("scroll",t,!0),()=>{window.removeEventListener("scroll",t,!0)}},[b]),s(()=>{const t=x.current;if(null!==t){const r=r=>{t.contains(r.target)||E(!1)},e=()=>E(!1);return document.addEventListener("click",r),window.addEventListener("blur",e),()=>{document.removeEventListener("click",r),window.removeEventListener("blur",e)}}},[]);const O=c(b,{from:{opacity:0,transform:"scale(0)"},enter:{opacity:b?1:.5,transform:`scale(${b?1:.999})`},leave:{opacity:0,transform:"scale(0.999)"},config:{duration:150}});return r(j,{setIsOpen:E,children:e(l,Object.assign({},g,{ref:x,children:[r(u,{fill:L.colors.base.white,children:e(m,{$open:b,onClick:k,children:[r(a,{}),r(d,{children:y}),r(p,{style:{transform:b?"rotateZ(-180deg)":"rotateZ(0)"}})]})}),O((t,e)=>r(f,{$open:b&&!!e,style:t,children:v}))]}))})};export{h as HeaderLangDropdown,f as HeaderLangDropdownContent,l as HeaderLangDropdownStyled,m as HeaderLangDropdownToggler,p as HeaderLangDropdownTogglerArrow,a as HeaderLangDropdownTogglerIcon,d as HeaderLangDropdownTogglerText};