'use client';

import { useEffect } from 'react';

/**
 * 로그아웃·세션 만료 후 뒤로가기 시 bfcache(back/forward cache) 복원으로 보호 페이지의
 * 데이터가 재요청 없이 다시 보이는 것을 막는 최후 방어선. `no-store` 응답 헤더만으로는
 * 일부 브라우저의 bfcache 복원을 막지 못해, `pageshow`의 `persisted` 플래그를 감지해
 * 강제로 재요청(reload)시킨다 — 재요청은 proxy/DAL의 세션 검증을 다시 거친다.
 */
export function BfcacheGuard() {
  useEffect(() => {
    function handlePageShow(event: PageTransitionEvent) {
      if (event.persisted) {
        window.location.reload();
      }
    }

    window.addEventListener('pageshow', handlePageShow);
    return () => window.removeEventListener('pageshow', handlePageShow);
  }, []);

  return null;
}
