{"version":3,"file":"index.cjs","names":[],"sources":["../../../src/hooks/useDocumentTitle/index.ts"],"sourcesContent":["import { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect';\n\ninterface UseDocumentTitleOption {\n  preserveTitleOnUnmount?: boolean;\n}\n\n/**\n * @description Client 환경에서 문서의 제목(`document.title`)을 설정하는 커스텀 훅입니다.\n *\n * `useDocumentTitle` 훅은 컴포넌트가 마운트될 때 주어진 제목으로 `document.title`을 설정하고,\n * 컴포넌트가 언마운트될 때 선택적으로 이전 제목으로 복원할 수 있습니다.\n *\n * @param {string} title - 설정할 문서의 제목입니다.\n * @param {{ preserveTitleOnUnmount: boolean }} options - 옵션 객체입니다.\n * - `preserveTitleOnUnmount`: `true`로 설정하면 컴포넌트가 언마운트될 때 제목을 이전 상태로 복원하지 않습니다. 기본값은 `false`입니다.\n *\n * @returns {void}\n *\n * @example\n * useDocumentTitle('새로운 제목', { preserveTitleOnUnmount: true });\n */\nexport function useDocumentTitle(\n  title: string,\n  { preserveTitleOnUnmount = false }: UseDocumentTitleOption = {}\n): void {\n  useIsomorphicLayoutEffect(() => {\n    const prevTitle = document.title;\n    document.title = title;\n\n    return () => {\n      if (!preserveTitleOnUnmount) {\n        document.title = prevTitle;\n      }\n    };\n  }, [title, preserveTitleOnUnmount]);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAqBA,SAAgB,iBACd,OACA,EAAE,yBAAyB,UAAkC,EAAE,EACzD;CACN,cAAA,gCAAgC;EAC9B,MAAM,YAAY,SAAS;EAC3B,SAAS,QAAQ;EAEjB,aAAa;GACX,IAAI,CAAC,wBACH,SAAS,QAAQ;;IAGpB,CAAC,OAAO,uBAAuB,CAAC"}