{"version":3,"file":"useRoutes.mjs","names":[],"sources":["../../../src/domain/reactRouter/useRoutes.ts"],"sourcesContent":["import { useRef } from 'react'\nimport { startReactRouterView } from './startReactRouterView'\nimport type { AnyUseRoute, AnyRouteObject, AnyRouteMatch } from './types'\n\nexport function wrapUseRoutes<T extends AnyUseRoute<any>>({\n  useRoutes,\n  useLocation,\n  matchRoutes,\n}: {\n  useRoutes: T\n  useLocation: () => { pathname: string }\n  matchRoutes: (routes: AnyRouteObject[], pathname: string) => AnyRouteMatch[] | null\n}): T {\n  return ((routes, locationArg) => {\n    const location = useLocation()\n    const pathname = typeof locationArg === 'string' ? locationArg : locationArg?.pathname || location.pathname\n    const pathnameRef = useRef<string | null>(null)\n\n    if (pathnameRef.current !== pathname) {\n      pathnameRef.current = pathname\n      const matchedRoutes = matchRoutes(routes, pathname)\n      if (matchedRoutes) {\n        startReactRouterView(matchedRoutes)\n      }\n    }\n\n    return useRoutes(routes, locationArg)\n  }) as T\n}\n"],"mappings":";;;AAIA,SAAgB,cAA0C,EACxD,WACA,aACA,eAKI;CACJ,SAAS,QAAQ,gBAAgB;EAC/B,MAAM,WAAW,YAAY;EAC7B,MAAM,WAAW,OAAO,gBAAgB,WAAW,cAAc,aAAa,YAAY,SAAS;EACnG,MAAM,cAAc,OAAsB,IAAI;EAE9C,IAAI,YAAY,YAAY,UAAU;GACpC,YAAY,UAAU;GACtB,MAAM,gBAAgB,YAAY,QAAQ,QAAQ;GAClD,IAAI,eACF,qBAAqB,aAAa;EAEtC;EAEA,OAAO,UAAU,QAAQ,WAAW;CACtC;AACF"}