@leancodepl/utils
Version:
Common utility functions and React hooks for web applications
30 lines (29 loc) • 890 B
TypeScript
/**
* React hook for generating keys based on current route matches.
*
* @template TKey - The type of the route keys
* @param routeMatches - Record of route keys to match objects or arrays
* @returns Array of active route keys
* @example
* ```typescript
* function NavigationComponent() {
* const routeMatches = {
* home: useRouteMatch('/'),
* about: useRouteMatch('/about'),
* contact: useRouteMatch('/contact')
* };
*
* const activeRoutes = useKeyByRoute(routeMatches);
* // Returns ['home'] if on home page, ['about'] if on about page, etc.
*
* return (
* <nav>
* {activeRoutes.map(route => (
* <span key={route}>Active: {route}</span>
* ))}
* </nav>
* );
* }
* ```
*/
export declare function useKeyByRoute<TKey extends string>(routeMatches: Record<TKey, (object | null)[] | never | object | null>): TKey[];