"use client"

import { cn } from "@/lib/utils"
import { useEffect, useState } from "react"
import { Icons } from "./icons"
import { Button } from "./ui/button"

export default function ScrollToTop() {
    const [isVisible, setIsVisible] = useState(false)

    const toggleVisibility = () => {
        if (window.pageYOffset > 300) {
            setIsVisible(true)
        } else {
            setIsVisible(false)
        }
    }

    const scrollToTop = () => {
        window.scrollTo({
            top: 0,
            behavior: "smooth"
        })
    }

    useEffect(() => {
        window.addEventListener("scroll", toggleVisibility)
        return () => window.removeEventListener("scroll", toggleVisibility)
    }, [])

    return (
        <Button size="lg" onClick={scrollToTop}
            className={cn(isVisible ? "block" : "hidden", "")}>
            <Icons.arrowupline className="h-3 w-3" aria-hidden="true" />
        </Button>
    )
}