| 127 | MatchRouteOptions |
| 128 | |
| 129 | export function useMatchRoute<TRouter extends AnyRouter = RegisteredRouter>() { |
| 130 | const router = useRouter() |
| 131 | |
| 132 | const status = useRouterState({ |
| 133 | select: (s) => s.status, |
| 134 | }) |
| 135 | |
| 136 | return < |
| 137 | const TFrom extends string = string, |
| 138 | const TTo extends string | undefined = undefined, |
| 139 | const TMaskFrom extends string = TFrom, |
| 140 | const TMaskTo extends string = '', |
| 141 | >( |
| 142 | opts: UseMatchRouteOptions<TRouter, TFrom, TTo, TMaskFrom, TMaskTo>, |
| 143 | ): Solid.Accessor< |
| 144 | false | Expand<ResolveRoute<TRouter, TFrom, TTo>['types']['allParams']> |
| 145 | > => { |
| 146 | const { pending, caseSensitive, fuzzy, includeSearch, ...rest } = opts |
| 147 | |
| 148 | const matchRoute = Solid.createMemo(() => { |
| 149 | status() |
| 150 | return router.matchRoute(rest as any, { |
| 151 | pending, |
| 152 | caseSensitive, |
| 153 | fuzzy, |
| 154 | includeSearch, |
| 155 | }) |
| 156 | }) |
| 157 | |
| 158 | return matchRoute |
| 159 | } |
| 160 | } |
| 161 | |
| 162 | export type MakeMatchRouteOptions< |
| 163 | TRouter extends AnyRouter = RegisteredRouter, |