목적

API

import { useUnsavedChangesGuard } from "@/hooks/useUnsavedChangesGuard";

const { bypassNextNavigation, bypassFor } = useUnsavedChangesGuard(isDirty: boolean);

공통 적용 가이드(다른 페이지에서도 동일)

  1. 클라이언트 컴포넌트에서 사용
  1. Dirty 판단 만들기
const isDirty = useMemo(
  () => !!(form.title || form.body), // 또는 초기값과의 깊은 비교
  [form],
);
  1. 훅 연결
const { bypassNextNavigation, bypassFor } = useUnsavedChangesGuard(isDirty);
  1. 의도된 이동/리로드 전에 우회
  1. 예외 링크(경고 없이 통과)
<a href="/help" data-ignore-unsaved="true">도움말</a>

동작/제한 사항