"use client"; import { useRef, memo } from "react"; import { useCharAnimation } from "../useCharAnimation"; import { useButtonClick } from "../useButtonClick"; import { cls } from "@/lib/utils"; import "./TextShiftButton.css"; export interface ButtonTextShiftProps { text: string; onClick?: () => void; href?: string; className?: string; bgClassName?: string; textClassName?: string; disabled?: boolean; ariaLabel?: string; type?: "button" | "submit" | "reset"; } const ButtonTextShift = ({ text, onClick, href, className = "", bgClassName = "", textClassName = "", disabled = false, ariaLabel, type = "button", }: ButtonTextShiftProps) => { const buttonRef = useRef(null); const handleClick = useButtonClick(href, onClick); useCharAnimation(buttonRef, text, "[data-button-animate-chars]", 0.0); return ( ); }; ButtonTextShift.displayName = "ButtonTextShift"; export default memo(ButtonTextShift);