| import React from 'react'; |
| import { TooltipAnchor } from '@librechat/client'; |
| import { ChevronDown, ChevronUp } from 'lucide-react'; |
| import { useLocalize } from '~/hooks'; |
| import { cn } from '~/utils'; |
|
|
| const CollapseChat = ({ |
| isScrollable, |
| isCollapsed, |
| setIsCollapsed, |
| }: { |
| isScrollable: boolean; |
| isCollapsed: boolean; |
| setIsCollapsed: React.Dispatch<React.SetStateAction<boolean>>; |
| }) => { |
| const localize = useLocalize(); |
| if (!isScrollable) { |
| return null; |
| } |
|
|
| const description = isCollapsed |
| ? localize('com_ui_expand_chat') |
| : localize('com_ui_collapse_chat'); |
|
|
| return ( |
| <div className="relative ml-auto items-end justify-end"> |
| <TooltipAnchor |
| description={description} |
| render={ |
| <button |
| aria-label={description} |
| onClick={(event) => { |
| event.preventDefault(); |
| event.stopPropagation(); |
| setIsCollapsed((prev) => !prev); |
| }} |
| className={cn( |
| // 'absolute right-1.5 top-1.5', |
| 'z-10 size-5 rounded-full transition-colors', |
| 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-opacity-50', |
| )} |
| > |
| {isCollapsed ? ( |
| <ChevronUp className="h-full w-full" /> |
| ) : ( |
| <ChevronDown className="h-full w-full" /> |
| )} |
| </button> |
| } |
| /> |
| </div> |
| ); |
| }; |
|
|
| export default CollapseChat; |
|
|