20 lines
696 B
TypeScript
20 lines
696 B
TypeScript
"use client";
|
|
|
|
import { useRouter } from "next/navigation";
|
|
|
|
export function BackButton({ fallback = "/", className = "" }: { fallback?: string; className?: string }) {
|
|
const router = useRouter();
|
|
const goBack = () => {
|
|
if (window.history.length > 1) router.back();
|
|
else router.push(fallback);
|
|
};
|
|
|
|
return (
|
|
<button data-component="back-button" type="button" aria-label="返回" onClick={goBack} className={`cursor-pointer size-6 ${className}`}>
|
|
<svg viewBox="0 0 24 24" className="size-full" aria-hidden="true">
|
|
<path d="M15 5l-7 7 7 7" fill="none" stroke="white" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" />
|
|
</svg>
|
|
</button>
|
|
);
|
|
}
|