30 lines
1.0 KiB
JavaScript
30 lines
1.0 KiB
JavaScript
import { useMatch } from "./useMatch.js";
|
|
//#region src/useParams.tsx
|
|
/**
|
|
* Access the current route's path parameters with type-safety.
|
|
*
|
|
* Options:
|
|
* - `from`/`strict`: Specify the matched route and whether to enforce strict typing
|
|
* - `select`: Project the params object to a derived value for memoized renders
|
|
* - `structuralSharing`: Enable structural sharing for stable references
|
|
* - `shouldThrow`: Throw if the route is not found in strict contexts
|
|
*
|
|
* @returns The params object (or selected value) for the matched route.
|
|
* @link https://tanstack.com/router/latest/docs/framework/react/api/router/useParamsHook
|
|
*/
|
|
function useParams(opts) {
|
|
return useMatch({
|
|
from: opts.from,
|
|
shouldThrow: opts.shouldThrow,
|
|
structuralSharing: opts.structuralSharing,
|
|
strict: opts.strict,
|
|
select: (match) => {
|
|
const params = opts.strict === false ? match.params : match._strictParams;
|
|
return opts.select ? opts.select(params) : params;
|
|
}
|
|
});
|
|
}
|
|
//#endregion
|
|
export { useParams };
|
|
|
|
//# sourceMappingURL=useParams.js.map
|