{"version":3,"file":"useRouterLink.cjs","names":["useRouter","useForceUpdate"],"sources":["../../../src/router/useRouterLink/useRouterLink.ts"],"sourcesContent":["import { useEffect } from 'react';\nimport { effect } from '@pastweb/tools/reactivity';\nimport { useForceUpdate } from '../../useForceUpdate';\nimport { useRouter } from '../useRouter';\nimport type { RouterLink, RouterLinkOptions } from '@pastweb/tools';\n\n/**\n * Creates a router link descriptor and re-renders when the active route changes.\n *\n * @param props - Router link options.\n *\n * @returns Computed pathname, active flags, and a navigate function.\n *\n * @example\n * ```tsx\n * const link = useRouterLink({\n *   path: '/about',\n * });\n *\n * return <a href={link.pathname}>About</a>;\n * ```\n */\nexport const useRouterLink = (props: RouterLinkOptions): RouterLink => {\n  const { path, params, searchParams, hash } = props;\n  const router = useRouter();\n  const forceUpdate = useForceUpdate();\n\n  useEffect(() => {\n    effect(forceUpdate, () => router.currentRoute);\n  }, [forceUpdate, router]);\n\n  const options: RouterLinkOptions = { path };\n  if (params) options.params = params;\n  if (searchParams) options.searchParams = searchParams;\n  if (hash) options.hash = hash;\n\n  return router.getRouterLink(options);\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAsBA,MAAa,iBAAiB,UAAyC;CACrE,MAAM,EAAE,MAAM,QAAQ,cAAc,SAAS;CAC7C,MAAM,SAASA,mCAAAA,UAAU;CACzB,MAAM,cAAcC,sCAAAA,eAAe;CAEnC,CAAA,GAAA,MAAA,UAAA,OAAgB;EACd,CAAA,GAAA,0BAAA,OAAA,CAAO,mBAAmB,OAAO,YAAY;CAC/C,GAAG,CAAC,aAAa,MAAM,CAAC;CAExB,MAAM,UAA6B,EAAE,KAAK;CAC1C,IAAI,QAAQ,QAAQ,SAAS;CAC7B,IAAI,cAAc,QAAQ,eAAe;CACzC,IAAI,MAAM,QAAQ,OAAO;CAEzB,OAAO,OAAO,cAAc,OAAO;AACrC"}