@teambit/react-router 1.0.667 → 1.0.669

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LocationHooks.tsx CHANGED
@@ -1,6 +1,7 @@
1
1
  import { useEffect } from 'react';
2
- import { useLocation, useNavigate, NavigateFunction, useNavigationType } from 'react-router-dom';
3
- import { LocationListener } from './react-router.ui.runtime';
2
+ import type { NavigateFunction } from 'react-router-dom';
3
+ import { useLocation, useNavigate, useNavigationType } from 'react-router-dom';
4
+ import type { LocationListener } from './react-router.ui.runtime';
4
5
 
5
6
  export function LocationHooks({
6
7
  onLocationChange,
@@ -1,5 +1,5 @@
1
- import { NavigateFunction } from 'react-router-dom';
2
- import { LocationListener } from './react-router.ui.runtime';
1
+ import type { NavigateFunction } from 'react-router-dom';
2
+ import type { LocationListener } from './react-router.ui.runtime';
3
3
  export declare function LocationHooks({ onLocationChange, onNavigatorChange, }: {
4
4
  onLocationChange: LocationListener;
5
5
  onNavigatorChange: (nav: NavigateFunction) => void;
@@ -1 +1 @@
1
- {"version":3,"names":["_react","data","require","_reactRouterDom","LocationHooks","onLocationChange","onNavigatorChange","location","useLocation","navAction","useNavigationType","navigate","useNavigate","useEffect"],"sources":["LocationHooks.tsx"],"sourcesContent":["import { useEffect } from 'react';\nimport { useLocation, useNavigate, NavigateFunction, useNavigationType } from 'react-router-dom';\nimport { LocationListener } from './react-router.ui.runtime';\n\nexport function LocationHooks({\n onLocationChange,\n onNavigatorChange,\n}: {\n onLocationChange: LocationListener;\n onNavigatorChange: (nav: NavigateFunction) => void;\n}) {\n const location = useLocation();\n const navAction = useNavigationType(); // the action that got react router to this location\n const navigate = useNavigate();\n\n useEffect(() => {\n onLocationChange(location, navAction);\n }, [location, navAction, onLocationChange]);\n\n useEffect(() => {\n onNavigatorChange(navigate);\n }, [navigate, onNavigatorChange]);\n\n return null;\n}\n"],"mappings":";;;;;;AAAA,SAAAA,OAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,MAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,gBAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,eAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAGO,SAASG,aAAaA,CAAC;EAC5BC,gBAAgB;EAChBC;AAIF,CAAC,EAAE;EACD,MAAMC,QAAQ,GAAG,IAAAC,6BAAW,EAAC,CAAC;EAC9B,MAAMC,SAAS,GAAG,IAAAC,mCAAiB,EAAC,CAAC,CAAC,CAAC;EACvC,MAAMC,QAAQ,GAAG,IAAAC,6BAAW,EAAC,CAAC;EAE9B,IAAAC,kBAAS,EAAC,MAAM;IACdR,gBAAgB,CAACE,QAAQ,EAAEE,SAAS,CAAC;EACvC,CAAC,EAAE,CAACF,QAAQ,EAAEE,SAAS,EAAEJ,gBAAgB,CAAC,CAAC;EAE3C,IAAAQ,kBAAS,EAAC,MAAM;IACdP,iBAAiB,CAACK,QAAQ,CAAC;EAC7B,CAAC,EAAE,CAACA,QAAQ,EAAEL,iBAAiB,CAAC,CAAC;EAEjC,OAAO,IAAI;AACb","ignoreList":[]}
1
+ {"version":3,"names":["_react","data","require","_reactRouterDom","LocationHooks","onLocationChange","onNavigatorChange","location","useLocation","navAction","useNavigationType","navigate","useNavigate","useEffect"],"sources":["LocationHooks.tsx"],"sourcesContent":["import { useEffect } from 'react';\nimport type { NavigateFunction } from 'react-router-dom';\nimport { useLocation, useNavigate, useNavigationType } from 'react-router-dom';\nimport type { LocationListener } from './react-router.ui.runtime';\n\nexport function LocationHooks({\n onLocationChange,\n onNavigatorChange,\n}: {\n onLocationChange: LocationListener;\n onNavigatorChange: (nav: NavigateFunction) => void;\n}) {\n const location = useLocation();\n const navAction = useNavigationType(); // the action that got react router to this location\n const navigate = useNavigate();\n\n useEffect(() => {\n onLocationChange(location, navAction);\n }, [location, navAction, onLocationChange]);\n\n useEffect(() => {\n onNavigatorChange(navigate);\n }, [navigate, onNavigatorChange]);\n\n return null;\n}\n"],"mappings":";;;;;;AAAA,SAAAA,OAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,MAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAE,gBAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,eAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAGO,SAASG,aAAaA,CAAC;EAC5BC,gBAAgB;EAChBC;AAIF,CAAC,EAAE;EACD,MAAMC,QAAQ,GAAG,IAAAC,6BAAW,EAAC,CAAC;EAC9B,MAAMC,SAAS,GAAG,IAAAC,mCAAiB,EAAC,CAAC,CAAC,CAAC;EACvC,MAAMC,QAAQ,GAAG,IAAAC,6BAAW,EAAC,CAAC;EAE9B,IAAAC,kBAAS,EAAC,MAAM;IACdR,gBAAgB,CAACE,QAAQ,EAAEE,SAAS,CAAC;EACvC,CAAC,EAAE,CAACF,QAAQ,EAAEE,SAAS,EAAEJ,gBAAgB,CAAC,CAAC;EAE3C,IAAAQ,kBAAS,EAAC,MAAM;IACdP,iBAAiB,CAACK,QAAQ,CAAC;EAC7B,CAAC,EAAE,CAACA,QAAQ,EAAEL,iBAAiB,CAAC,CAAC;EAEjC,OAAO,IAAI;AACb","ignoreList":[]}
@@ -1,5 +1,5 @@
1
- import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.ui-foundation_react-router@1.0.667/dist/react-router.composition.js';
2
- import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.ui-foundation_react-router@1.0.667/dist/react-router.docs.mdx';
1
+ import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.ui-foundation_react-router@1.0.669/dist/react-router.composition.js';
2
+ import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.ui-foundation_react-router@1.0.669/dist/react-router.docs.mdx';
3
3
 
4
4
  export const compositions = [compositions_0];
5
5
  export const overview = [overview_0];
@@ -1,5 +1,5 @@
1
1
  import type { Location, NavigationType, RouteProps } from 'react-router-dom';
2
- import { SlotRegistry } from '@teambit/harmony';
2
+ import type { SlotRegistry } from '@teambit/harmony';
3
3
  import type { SSR } from '@teambit/ui';
4
4
  import type { RouteSlot } from '@teambit/ui-foundation.ui.react-router.slot-router';
5
5
  import { Routing } from './routing-method';
@@ -1 +1 @@
1
- {"version":3,"names":["_react","data","_interopRequireDefault","require","_harmony","_ui","_reactRouter","_routeContext","_routingMethod","_LocationHooks","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","ReactRouterUI","constructor","routeSlot","routeChangeListener","Routing","url","path","action","state","undefined","navigate","replace","location","listeners","values","forEach","listener","children","renderCtx","createElement","RouteContext","reactRouterUi","routing","routingMode","initialLocation","LocationHooks","onLocationChange","handleLocationChange","onNavigatorChange","nav","static","browserInit","window","pathname","search","hash","serverInit","browser","reactClientContext","RoutingContext","reactServerContext","ServerRouting","renderRoutes","routes","RootRoute","rootRoutes","setRoutingMode","register","route","registerListener","provider","deps","config","routeChangeSlot","exports","Slot","withType","UIRuntime","ReactRouterAspect","addRuntime"],"sources":["react-router.ui.runtime.tsx"],"sourcesContent":["import React, { ReactNode } from 'react';\nimport { NavigateFunction } from 'react-router-dom';\nimport type { Location, NavigationType, RouteProps } from 'react-router-dom';\nimport { Slot, SlotRegistry } from '@teambit/harmony';\nimport { UIRuntime } from '@teambit/ui';\nimport type { SSR } from '@teambit/ui';\nimport type { RouteSlot } from '@teambit/ui-foundation.ui.react-router.slot-router';\n\nimport { ReactRouterAspect } from './react-router.aspect';\nimport { RouteContext, RootRoute } from './route-context';\nimport { Routing } from './routing-method';\nimport { LocationHooks } from './LocationHooks';\n\nexport type LocationListener = (location: Location, action: NavigationType) => void;\ntype RouteChangeSlot = SlotRegistry<LocationListener>;\ntype RenderContext = { initialLocation?: string };\n\nexport class ReactRouterUI {\n private routingMode = Routing.url;\n\n constructor(\n /**\n * route slot.\n */\n private routeSlot: RouteSlot,\n /**\n *\n */\n private routeChangeListener: RouteChangeSlot\n ) {}\n\n /**\n * render all slot routes.\n */\n renderRoutes(routes: RouteProps[]) {\n return <RootRoute routeSlot={this.routeSlot} rootRoutes={routes} />;\n }\n\n /** decides how navigation is stored and applied.\n * Url - updates the `window.location.pathname`.\n * Hash - updates `window.location.hash`.\n * InMemory - store state internally and don't update the browser.\n */\n setRoutingMode(routing: Routing) {\n this.routingMode = routing;\n }\n\n /**\n * register a new route.\n */\n register(route: RouteProps) {\n this.routeSlot.register(route);\n return this;\n }\n\n registerListener(listener: LocationListener) {\n this.routeChangeListener.register(listener);\n }\n\n /**\n * change browser location\n */\n navigateTo = (\n /** destination */\n path: Location | string,\n /** history action to execute (pop / push / replace) */\n action?: NavigationType\n ) => {\n const state = typeof path !== 'string' ? path.state : undefined;\n\n switch (action) {\n case 'POP':\n return; // TBD;\n case 'REPLACE':\n this.navigate?.(path, { replace: true, state });\n return;\n case 'PUSH':\n default:\n this.navigate?.(path, { state });\n }\n };\n\n private navigate?: NavigateFunction = undefined;\n\n private handleLocationChange = (location: Location, action: NavigationType) => {\n const listeners = this.routeChangeListener.values();\n listeners.forEach((listener) => listener(location, action));\n };\n\n private RoutingContext = ({ children, renderCtx }: { children: ReactNode; renderCtx?: RenderContext }) => {\n return (\n <RouteContext reactRouterUi={this} routing={this.routingMode} location={renderCtx?.initialLocation}>\n {children}\n <LocationHooks\n onLocationChange={this.handleLocationChange}\n onNavigatorChange={(nav) => (this.navigate = nav)}\n />\n </RouteContext>\n );\n };\n\n private ServerRouting = ({ children, renderCtx }: { children: ReactNode; renderCtx?: RenderContext }) => {\n return (\n <RouteContext reactRouterUi={this} routing={Routing.static} location={renderCtx?.initialLocation}>\n {children}\n <LocationHooks\n onLocationChange={this.handleLocationChange}\n onNavigatorChange={(nav) => (this.navigate = nav)}\n />\n </RouteContext>\n );\n };\n\n public renderPlugin: SSR.RenderPlugin<RenderContext> = {\n browserInit: () => {\n const initialLocation = `${window.location.pathname}${window.location.search}${window.location.hash}`;\n return { initialLocation };\n },\n serverInit: ({ browser }) => {\n const initialLocation = browser?.location\n ? `${browser.location.pathname}${browser.location.search}${browser.location.hash}`\n : undefined;\n return { initialLocation };\n },\n reactClientContext: this.RoutingContext,\n reactServerContext: this.ServerRouting,\n };\n\n static slots = [Slot.withType<RouteProps>(), Slot.withType<LocationListener>()];\n static runtime = UIRuntime;\n\n static async provider(deps, config, [routeSlot, routeChangeSlot]: [RouteSlot, RouteChangeSlot]) {\n return new ReactRouterUI(routeSlot, routeChangeSlot);\n }\n}\n\nReactRouterAspect.addRuntime(ReactRouterUI);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","data","_interopRequireDefault","require","_harmony","_ui","_reactRouter","_routeContext","_routingMethod","_LocationHooks","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","ReactRouterUI","constructor","routeSlot","routeChangeListener","Routing","url","path","action","state","undefined","navigate","replace","location","listeners","values","forEach","listener","children","renderCtx","createElement","RouteContext","reactRouterUi","routing","routingMode","initialLocation","LocationHooks","onLocationChange","handleLocationChange","onNavigatorChange","nav","static","browserInit","window","pathname","search","hash","serverInit","browser","reactClientContext","RoutingContext","reactServerContext","ServerRouting","renderRoutes","routes","RootRoute","rootRoutes","setRoutingMode","register","route","registerListener","provider","deps","config","routeChangeSlot","exports","Slot","withType","UIRuntime","ReactRouterAspect","addRuntime"],"sources":["react-router.ui.runtime.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport React from 'react';\nimport type { NavigateFunction, Location, NavigationType, RouteProps } from 'react-router-dom';\nimport type { SlotRegistry } from '@teambit/harmony';\nimport { Slot } from '@teambit/harmony';\nimport { UIRuntime } from '@teambit/ui';\nimport type { SSR } from '@teambit/ui';\nimport type { RouteSlot } from '@teambit/ui-foundation.ui.react-router.slot-router';\n\nimport { ReactRouterAspect } from './react-router.aspect';\nimport { RouteContext, RootRoute } from './route-context';\nimport { Routing } from './routing-method';\nimport { LocationHooks } from './LocationHooks';\n\nexport type LocationListener = (location: Location, action: NavigationType) => void;\ntype RouteChangeSlot = SlotRegistry<LocationListener>;\ntype RenderContext = { initialLocation?: string };\n\nexport class ReactRouterUI {\n private routingMode = Routing.url;\n\n constructor(\n /**\n * route slot.\n */\n private routeSlot: RouteSlot,\n /**\n *\n */\n private routeChangeListener: RouteChangeSlot\n ) {}\n\n /**\n * render all slot routes.\n */\n renderRoutes(routes: RouteProps[]) {\n return <RootRoute routeSlot={this.routeSlot} rootRoutes={routes} />;\n }\n\n /** decides how navigation is stored and applied.\n * Url - updates the `window.location.pathname`.\n * Hash - updates `window.location.hash`.\n * InMemory - store state internally and don't update the browser.\n */\n setRoutingMode(routing: Routing) {\n this.routingMode = routing;\n }\n\n /**\n * register a new route.\n */\n register(route: RouteProps) {\n this.routeSlot.register(route);\n return this;\n }\n\n registerListener(listener: LocationListener) {\n this.routeChangeListener.register(listener);\n }\n\n /**\n * change browser location\n */\n navigateTo = (\n /** destination */\n path: Location | string,\n /** history action to execute (pop / push / replace) */\n action?: NavigationType\n ) => {\n const state = typeof path !== 'string' ? path.state : undefined;\n\n switch (action) {\n case 'POP':\n return; // TBD;\n case 'REPLACE':\n this.navigate?.(path, { replace: true, state });\n return;\n case 'PUSH':\n default:\n this.navigate?.(path, { state });\n }\n };\n\n private navigate?: NavigateFunction = undefined;\n\n private handleLocationChange = (location: Location, action: NavigationType) => {\n const listeners = this.routeChangeListener.values();\n listeners.forEach((listener) => listener(location, action));\n };\n\n private RoutingContext = ({ children, renderCtx }: { children: ReactNode; renderCtx?: RenderContext }) => {\n return (\n <RouteContext reactRouterUi={this} routing={this.routingMode} location={renderCtx?.initialLocation}>\n {children}\n <LocationHooks\n onLocationChange={this.handleLocationChange}\n onNavigatorChange={(nav) => (this.navigate = nav)}\n />\n </RouteContext>\n );\n };\n\n private ServerRouting = ({ children, renderCtx }: { children: ReactNode; renderCtx?: RenderContext }) => {\n return (\n <RouteContext reactRouterUi={this} routing={Routing.static} location={renderCtx?.initialLocation}>\n {children}\n <LocationHooks\n onLocationChange={this.handleLocationChange}\n onNavigatorChange={(nav) => (this.navigate = nav)}\n />\n </RouteContext>\n );\n };\n\n public renderPlugin: SSR.RenderPlugin<RenderContext> = {\n browserInit: () => {\n const initialLocation = `${window.location.pathname}${window.location.search}${window.location.hash}`;\n return { initialLocation };\n },\n serverInit: ({ browser }) => {\n const initialLocation = browser?.location\n ? `${browser.location.pathname}${browser.location.search}${browser.location.hash}`\n : undefined;\n return { initialLocation };\n },\n reactClientContext: this.RoutingContext,\n reactServerContext: this.ServerRouting,\n };\n\n static slots = [Slot.withType<RouteProps>(), Slot.withType<LocationListener>()];\n static runtime = UIRuntime;\n\n static async provider(deps, config, [routeSlot, routeChangeSlot]: [RouteSlot, RouteChangeSlot]) {\n return new ReactRouterUI(routeSlot, routeChangeSlot);\n }\n}\n\nReactRouterAspect.addRuntime(ReactRouterUI);\n"],"mappings":"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","ignoreList":[]}
@@ -1,7 +1,7 @@
1
- import { ReactNode } from 'react';
2
- import { RouteProps } from 'react-router-dom';
1
+ import type { ReactNode } from 'react';
2
+ import type { RouteProps } from 'react-router-dom';
3
3
  import type { RouteSlot } from '@teambit/ui-foundation.ui.react-router.slot-router';
4
- import { ReactRouterUI } from './react-router.ui.runtime';
4
+ import type { ReactRouterUI } from './react-router.ui.runtime';
5
5
  import { Routing } from './routing-method';
6
6
  type RouterContextProps = {
7
7
  reactRouterUi: ReactRouterUI;
@@ -1 +1 @@
1
- {"version":3,"names":["_react","data","_interopRequireDefault","require","_reactRouterDom","_server","_uiFoundationUiReactRouter","_baseReactNavigation","_uiFoundationUiNavigation","_routingMethod","e","__esModule","default","RouteContext","routing","Routing","url","children","location","createElement","Router","type","NavigationProvider","implementation","reactRouterAdapter","RootRoute","rootRoutes","routeSlot","SlotRouter","slot","static","StaticRouter","inMemory","MemoryRouter","initialEntries","initialIndex","hash","HashRouter","BrowserRouter"],"sources":["route-context.tsx"],"sourcesContent":["import React, { ReactNode } from 'react';\nimport { BrowserRouter, MemoryRouter, HashRouter, RouteProps } from 'react-router-dom';\nimport { StaticRouter } from 'react-router-dom/server';\nimport { SlotRouter } from '@teambit/ui-foundation.ui.react-router.slot-router';\nimport type { RouteSlot } from '@teambit/ui-foundation.ui.react-router.slot-router';\nimport { NavigationProvider } from '@teambit/base-react.navigation.link';\nimport { reactRouterAdapter } from '@teambit/ui-foundation.ui.navigation.react-router-adapter';\nimport { ReactRouterUI } from './react-router.ui.runtime';\nimport { Routing } from './routing-method';\n\ntype RouterContextProps = {\n reactRouterUi: ReactRouterUI;\n routing?: Routing;\n children: ReactNode;\n location?: string;\n};\n\ntype RootRouteProps = {\n rootRoutes: RouteProps[];\n routeSlot: RouteSlot;\n};\n\n/**\n * Setup context needed for routing.\n */\nexport function RouteContext({ routing = Routing.url, children, location }: RouterContextProps) {\n return (\n <Router type={routing} location={location}>\n <NavigationProvider implementation={reactRouterAdapter}>{children}</NavigationProvider>\n </Router>\n );\n}\n\nexport function RootRoute({ rootRoutes, routeSlot }: RootRouteProps) {\n return <SlotRouter slot={routeSlot} rootRoutes={rootRoutes} />;\n}\n\n/** provides the router engine (browser, inMemory, etc) */\nfunction Router({ type, children, location }: { type: Routing; children: ReactNode; location?: string }) {\n switch (type) {\n case Routing.static:\n return <StaticRouter location={location || '/'}>{children}</StaticRouter>;\n case Routing.inMemory:\n return (\n <MemoryRouter initialEntries={[location || '/']} initialIndex={1}>\n {children}\n </MemoryRouter>\n );\n case Routing.hash:\n // @ts-ignore - https://github.com/teambit/bit/issues/5746\n return <HashRouter>{children}</HashRouter>;\n case Routing.url:\n default:\n // @ts-ignore - https://github.com/teambit/bit/issues/5746\n return <BrowserRouter>{children}</BrowserRouter>;\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","data","_interopRequireDefault","require","_reactRouterDom","_server","_uiFoundationUiReactRouter","_baseReactNavigation","_uiFoundationUiNavigation","_routingMethod","e","__esModule","default","RouteContext","routing","Routing","url","children","location","createElement","Router","type","NavigationProvider","implementation","reactRouterAdapter","RootRoute","rootRoutes","routeSlot","SlotRouter","slot","static","StaticRouter","inMemory","MemoryRouter","initialEntries","initialIndex","hash","HashRouter","BrowserRouter"],"sources":["route-context.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport React from 'react';\nimport type { RouteProps } from 'react-router-dom';\nimport { BrowserRouter, MemoryRouter, HashRouter } from 'react-router-dom';\nimport { StaticRouter } from 'react-router-dom/server';\nimport { SlotRouter } from '@teambit/ui-foundation.ui.react-router.slot-router';\nimport type { RouteSlot } from '@teambit/ui-foundation.ui.react-router.slot-router';\nimport { NavigationProvider } from '@teambit/base-react.navigation.link';\nimport { reactRouterAdapter } from '@teambit/ui-foundation.ui.navigation.react-router-adapter';\nimport type { ReactRouterUI } from './react-router.ui.runtime';\nimport { Routing } from './routing-method';\n\ntype RouterContextProps = {\n reactRouterUi: ReactRouterUI;\n routing?: Routing;\n children: ReactNode;\n location?: string;\n};\n\ntype RootRouteProps = {\n rootRoutes: RouteProps[];\n routeSlot: RouteSlot;\n};\n\n/**\n * Setup context needed for routing.\n */\nexport function RouteContext({ routing = Routing.url, children, location }: RouterContextProps) {\n return (\n <Router type={routing} location={location}>\n <NavigationProvider implementation={reactRouterAdapter}>{children}</NavigationProvider>\n </Router>\n );\n}\n\nexport function RootRoute({ rootRoutes, routeSlot }: RootRouteProps) {\n return <SlotRouter slot={routeSlot} rootRoutes={rootRoutes} />;\n}\n\n/** provides the router engine (browser, inMemory, etc) */\nfunction Router({ type, children, location }: { type: Routing; children: ReactNode; location?: string }) {\n switch (type) {\n case Routing.static:\n return <StaticRouter location={location || '/'}>{children}</StaticRouter>;\n case Routing.inMemory:\n return (\n <MemoryRouter initialEntries={[location || '/']} initialIndex={1}>\n {children}\n </MemoryRouter>\n );\n case Routing.hash:\n // @ts-ignore - https://github.com/teambit/bit/issues/5746\n return <HashRouter>{children}</HashRouter>;\n case Routing.url:\n default:\n // @ts-ignore - https://github.com/teambit/bit/issues/5746\n return <BrowserRouter>{children}</BrowserRouter>;\n }\n}\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,18 +1,18 @@
1
1
  {
2
2
  "name": "@teambit/react-router",
3
- "version": "1.0.667",
3
+ "version": "1.0.669",
4
4
  "homepage": "https://bit.cloud/teambit/ui-foundation/react-router",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.ui-foundation",
8
8
  "name": "react-router",
9
- "version": "1.0.667"
9
+ "version": "1.0.669"
10
10
  },
11
11
  "dependencies": {
12
12
  "@teambit/harmony": "0.4.7",
13
13
  "@teambit/ui-foundation.ui.react-router.slot-router": "0.0.517",
14
14
  "@teambit/ui-foundation.ui.navigation.react-router-adapter": "6.1.3",
15
- "@teambit/ui": "1.0.667"
15
+ "@teambit/ui": "1.0.669"
16
16
  },
17
17
  "devDependencies": {
18
18
  "@types/mocha": "9.1.0",
@@ -1,7 +1,8 @@
1
- import React, { ReactNode } from 'react';
2
- import { NavigateFunction } from 'react-router-dom';
3
- import type { Location, NavigationType, RouteProps } from 'react-router-dom';
4
- import { Slot, SlotRegistry } from '@teambit/harmony';
1
+ import type { ReactNode } from 'react';
2
+ import React from 'react';
3
+ import type { NavigateFunction, Location, NavigationType, RouteProps } from 'react-router-dom';
4
+ import type { SlotRegistry } from '@teambit/harmony';
5
+ import { Slot } from '@teambit/harmony';
5
6
  import { UIRuntime } from '@teambit/ui';
6
7
  import type { SSR } from '@teambit/ui';
7
8
  import type { RouteSlot } from '@teambit/ui-foundation.ui.react-router.slot-router';
package/route-context.tsx CHANGED
@@ -1,11 +1,13 @@
1
- import React, { ReactNode } from 'react';
2
- import { BrowserRouter, MemoryRouter, HashRouter, RouteProps } from 'react-router-dom';
1
+ import type { ReactNode } from 'react';
2
+ import React from 'react';
3
+ import type { RouteProps } from 'react-router-dom';
4
+ import { BrowserRouter, MemoryRouter, HashRouter } from 'react-router-dom';
3
5
  import { StaticRouter } from 'react-router-dom/server';
4
6
  import { SlotRouter } from '@teambit/ui-foundation.ui.react-router.slot-router';
5
7
  import type { RouteSlot } from '@teambit/ui-foundation.ui.react-router.slot-router';
6
8
  import { NavigationProvider } from '@teambit/base-react.navigation.link';
7
9
  import { reactRouterAdapter } from '@teambit/ui-foundation.ui.navigation.react-router-adapter';
8
- import { ReactRouterUI } from './react-router.ui.runtime';
10
+ import type { ReactRouterUI } from './react-router.ui.runtime';
9
11
  import { Routing } from './routing-method';
10
12
 
11
13
  type RouterContextProps = {