UsePageTitle
guarahooks/use-page-titleFreeHook
Modifies the page title dynamically.
Install it
npx shadcn@latest add https://guarahooks.com/r/use-page-title.jsonSource
1'use client';23import { useCallback, useEffect } from 'react';45// Types6interface PageTitleOptions {7 suffix?: string;8 separator?: string;9}1011interface UsePageTitleReturn {12 setTitle: (title: string) => void;13 resetTitle: () => void;14}1516export function usePageTitle(options?: PageTitleOptions): UsePageTitleReturn {17 const suffix = options?.suffix || '';18 const separator = options?.separator || ' | ';19 const originalTitle = typeof document !== 'undefined' ? document.title : '';2021 const formatTitle = useCallback(22 (title: string) => {23 if (suffix) {24 return `${title}${separator}${suffix}`;25 }26 return title;27 },28 [suffix, separator],29 );3031 const setTitle = useCallback(32 (title: string) => {33 if (typeof document !== 'undefined') {34 document.title = formatTitle(title);35 }36 },37 [formatTitle],38 );3940 const resetTitle = useCallback(() => {41 if (typeof document !== 'undefined') {42 document.title = originalTitle;43 }44 }, [originalTitle]);4546 // Reset title on unmount47 useEffect(() => {48 return () => {49 resetTitle();50 };51 }, [resetTitle]);5253 return {54 setTitle,55 resetTitle,56 };57}
Files it writes
More from guarahooks
All 100 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| UseAbortControlleruse-abort-controller | guarahooks | Hooks | Free | no deps | |
| UseArrayStateuse-array-state | guarahooks | Hooks | Free | no deps | |
| UseAxiosuse-axios | guarahooks | Hooks | Free | no deps | |
| UseBatteryStatususe-battery-status | guarahooks | Hooks | Free | no deps | |
| UseBetterAuthuse-better-auth | guarahooks | Hooks | Free | no deps | |
| UseClickOutsideuse-click-outside | guarahooks | Hooks | Free | no deps | |
| UseConfirmuse-confirm | guarahooks | Hooks | Free | no deps | |
| UseCookieuse-cookie | guarahooks | Hooks | Free | no deps |
