"use client";
/**
 * 通用返回按钮
 *
 * 原始 Dart: lib/ui/auth/widgets/back_button.dart（被 auth/chat/sidebar 共用）。
 */
import { useRouter } from "next/navigation";
import { type MouseEvent } from "react";

import styles from "./auth-back-button.module.css";

export interface AuthBackButtonProps {
  /** 自定义跳转目标（默认 history.back）。 */
  href?: string;
  /** 自定义点击处理（覆盖默认跳转）。 */
  onClick?: (e: MouseEvent<HTMLButtonElement>) => void;
  className?: string;
  ariaLabel?: string;
}

export function AuthBackButton({
  href,
  onClick,
  className,
  ariaLabel = "Back",
}: AuthBackButtonProps) {
  const router = useRouter();
  return (
    <button
      type="button"
      aria-label={ariaLabel}
      className={[styles.button, className].filter(Boolean).join(" ")}
      onClick={(e) => {
        if (onClick) {
          onClick(e);
          return;
        }
        if (href) router.push(href);
        else router.back();
      }}
    >
      <svg
        width="20"
        height="20"
        viewBox="0 0 24 24"
        fill="none"
        aria-hidden="true"
      >
        <path
          d="M15 18l-6-6 6-6"
          stroke="currentColor"
          strokeWidth="2"
          strokeLinecap="round"
          strokeLinejoin="round"
        />
      </svg>
    </button>
  );
}
