chatbot-template/components/button-scroll-to-bottom.tsx

37 lines
869 B
TypeScript
Raw Normal View History

2023-06-11 22:58:00 +04:00
'use client'
import * as React from 'react'
import { cn } from '@/lib/utils'
import { Button, type ButtonProps } from '@/components/ui/button'
2023-06-13 16:02:07 +04:00
import { IconArrowDown } from '@/components/ui/icons'
2023-06-11 22:58:00 +04:00
2024-03-20 04:37:08 +03:00
interface ButtonScrollToBottomProps extends ButtonProps {
isAtBottom: boolean
scrollToBottom: () => void
}
2023-06-11 22:58:00 +04:00
2024-03-20 04:37:08 +03:00
export function ButtonScrollToBottom({
className,
isAtBottom,
scrollToBottom,
...props
}: ButtonScrollToBottomProps) {
2023-06-11 22:58:00 +04:00
return (
<Button
variant="outline"
size="icon"
className={cn(
'absolute right-4 top-1 z-10 bg-background transition-opacity duration-300 sm:right-8 md:top-2',
isAtBottom ? 'opacity-0' : 'opacity-100',
className
)}
2024-03-20 04:37:08 +03:00
onClick={() => scrollToBottom()}
2023-06-11 22:58:00 +04:00
{...props}
>
2023-06-13 16:02:07 +04:00
<IconArrowDown />
2023-06-11 22:58:00 +04:00
<span className="sr-only">Scroll to bottom</span>
</Button>
)
}