'use client';

import Link from 'next/link';
import { usePathname } from 'next/navigation';
import type { ReactNode } from 'react';
import useAuth from '@/hooks/useAuth';

// 모의투자 인증 게이트 — 비로그인 시 자동 로그인 이동 대신 안내 + 버튼(이동은 사용자 결정).
// 계좌/주문/포트폴리오 컴포넌트가 /api/paper/* 를 호출해 401→auth:unauthorized→자동 리다이렉트되는 것을,
// 비로그인 시 자식을 아예 마운트하지 않음으로써 원천 차단한다.
type Props = {
	children: ReactNode;
};

export default function PaperAuthGate({ children }: Props)
{
	const { isAuthenticated } = useAuth();
	const pathname = usePathname();

	if (!isAuthenticated) {
		return (
			<div className='paper__empty-account' role='note'>
				<div className='paper__empty-account-title'>로그인이 필요한 기능이에요</div>
				<p className='paper__empty-account-desc'>
					모의투자 계좌·주문·포트폴리오는 로그인 후 이용할 수 있어요.<br />
					아래 버튼으로 로그인하면 이 페이지로 다시 돌아옵니다.
				</p>
				<Link href={`/login?returnUrl=${encodeURIComponent(pathname)}`} className='paper__btn paper__btn--primary'>
					로그인하러 가기
				</Link>
			</div>
		);
	}

	return <>{children}</>;
}
