@bothub-chat/ui
Version:
Bothub UI Components
2 lines (1 loc) • 1.45 kB
JavaScript
import{jsxs as i,jsx as r}from"react/jsx-runtime";import{useState as e,useCallback as t}from"react";import{useDelayedVisible as o}from"../../../utils/useDelayedVisible.js";import{useMeasure as n}from"../../../utils/useMeasure.js";import"unified";import"remark-parse";import"remark-gfm";import"mdast-util-to-markdown";import"../../../utils/colors/calculateGrayScale.js";import"../../../utils/colors/calculateAccentColors.js";import{LoaderCircularGradient2Icon as s}from"../../../icons/loader-circular-gradient-2/index.js";import{MessageMarkdown as l}from"../markdown/index.js";import{ReasoningBlockStyled as m,ReasoningBlockHeader as d,ReasoningBlockButton as a,ReasoningBlockButtonArrow as c,ReasoningBlockContentWrapper as p}from"./styled.js";import{markdownComponents as u}from"./markdown-components.js";const h=({content:h,buttonText:f,isReasoning:g,fullWidth:j=!1})=>{const[k,y]=e(!1),b=t((()=>{g||y((i=>!i))}),[g]),[x,v]=n(),w=Math.max(Math.min(v.height,650),300),{delayedVisible:M,mounted:W}=o(k,0,w);return i(m,{$fullWidth:j,children:[i(d,{children:[i(a,{onClick:b,disabled:g||!h,children:[f,!g&&!!h&&r(c,{$isOpen:k,size:16})]}),g&&r(s,{size:16})]}),W&&r(p,{$fullWidth:j,style:{"--reasoning-block-animation-duration":w/1e3+"s",height:k&&M?v.height:0},children:i("div",{ref:x,children:[r("div",{}),r("div",{children:"string"==typeof h?r(l,{componentsOverride:u(),disableTyping:!0,children:h}):h})]})})]})};export{h as MessageReasoningBlock};