import * as React from 'react' import { Matches } from './Matches' import { getRouterContext } from './routerContext' import type { AnyRouter, RegisteredRouter, RouterOptions, } from '@tanstack/router-core' export function RouterContextProvider< TRouter extends AnyRouter = RegisteredRouter, TDehydrated extends Record = Record, >({ router, children, ...rest }: RouterProps & { children: React.ReactNode }) { // Allow the router to update options on the router instance router.update({ ...router.options, ...rest, context: { ...router.options.context, ...rest.context, }, } as any) const routerContext = getRouterContext() const provider = ( {children} ) if (router.options.Wrap) { return {provider} } return provider } export function RouterProvider< TRouter extends AnyRouter = RegisteredRouter, TDehydrated extends Record = Record, >({ router, ...rest }: RouterProps) { return ( ) } export type RouterProps< TRouter extends AnyRouter = RegisteredRouter, TDehydrated extends Record = Record, > = Omit< RouterOptions< TRouter['routeTree'], NonNullable, NonNullable, TRouter['history'], TDehydrated >, 'context' > & { router: TRouter context?: Partial< RouterOptions< TRouter['routeTree'], NonNullable, NonNullable, TRouter['history'], TDehydrated >['context'] > }