/**
 * DevOnly — `/dev/*` 라우트 가드.
 *
 * `window.location.hostname` 이 로컬호스트 계열이 아닐 경우 루트로 리다이렉트.
 * 클라이언트 사이드 가드라 보안 의미보다는 "운영 도메인에서 실수로 노출되는 것 방지" 용도.
 * 진짜 차단이 필요하면 서버/CDN 레벨에서 경로를 막아야 한다.
 */
import { Navigate, Outlet } from 'react-router';

const LOCAL_HOSTNAMES = new Set([
  'localhost',
  '127.0.0.1',
  '0.0.0.0',
  '::1',
  '[::1]',
]);

function isLocalHost(): boolean {
  if (typeof window === 'undefined') return false;
  return LOCAL_HOSTNAMES.has(window.location.hostname);
}

export default function DevOnly() {
  if (!isLocalHost()) {
    return <Navigate to="/" replace />;
  }
  return <Outlet />;
}
