one 1.1.434-1738878681339 → 1.1.434

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.
Files changed (75) hide show
  1. package/dist/cjs/Root.cjs +24 -23
  2. package/dist/cjs/Root.js +24 -21
  3. package/dist/cjs/Root.js.map +1 -1
  4. package/dist/cjs/Root.native.js +4 -3
  5. package/dist/cjs/Root.native.js.map +2 -2
  6. package/dist/cjs/createApp.cjs +1 -1
  7. package/dist/cjs/createApp.js +1 -1
  8. package/dist/cjs/createApp.js.map +1 -1
  9. package/dist/cjs/render.js.map +1 -1
  10. package/dist/cjs/router/router.cjs +13 -19
  11. package/dist/cjs/router/router.js +9 -14
  12. package/dist/cjs/router/router.js.map +1 -1
  13. package/dist/cjs/router/router.native.js +40 -44
  14. package/dist/cjs/router/router.native.js.map +2 -2
  15. package/dist/cjs/router/useScreens.cjs +78 -63
  16. package/dist/cjs/router/useScreens.js +50 -41
  17. package/dist/cjs/router/useScreens.js.map +1 -1
  18. package/dist/cjs/router/useScreens.native.js +36 -32
  19. package/dist/cjs/router/useScreens.native.js.map +2 -2
  20. package/dist/cjs/vite/one.cjs +4 -10
  21. package/dist/cjs/vite/one.js +4 -9
  22. package/dist/cjs/vite/one.js.map +1 -1
  23. package/dist/cjs/vite/one.native.js +5 -10
  24. package/dist/cjs/vite/one.native.js.map +2 -2
  25. package/dist/cjs/vite/types.native.js.map +1 -1
  26. package/dist/esm/Root.js +24 -22
  27. package/dist/esm/Root.js.map +1 -1
  28. package/dist/esm/Root.mjs +25 -24
  29. package/dist/esm/Root.mjs.map +1 -1
  30. package/dist/esm/Root.native.js +5 -4
  31. package/dist/esm/Root.native.js.map +2 -2
  32. package/dist/esm/createApp.js +1 -1
  33. package/dist/esm/createApp.js.map +1 -1
  34. package/dist/esm/createApp.mjs +1 -1
  35. package/dist/esm/createApp.mjs.map +1 -1
  36. package/dist/esm/render.js.map +1 -1
  37. package/dist/esm/render.mjs.map +1 -1
  38. package/dist/esm/router/router.js +14 -19
  39. package/dist/esm/router/router.js.map +1 -1
  40. package/dist/esm/router/router.mjs +12 -18
  41. package/dist/esm/router/router.mjs.map +1 -1
  42. package/dist/esm/router/router.native.js +45 -49
  43. package/dist/esm/router/router.native.js.map +2 -2
  44. package/dist/esm/router/useScreens.js +51 -41
  45. package/dist/esm/router/useScreens.js.map +1 -1
  46. package/dist/esm/router/useScreens.mjs +79 -64
  47. package/dist/esm/router/useScreens.mjs.map +1 -1
  48. package/dist/esm/router/useScreens.native.js +37 -32
  49. package/dist/esm/router/useScreens.native.js.map +2 -2
  50. package/dist/esm/vite/one.js +4 -9
  51. package/dist/esm/vite/one.js.map +1 -1
  52. package/dist/esm/vite/one.mjs +4 -10
  53. package/dist/esm/vite/one.mjs.map +1 -1
  54. package/dist/esm/vite/one.native.js +5 -10
  55. package/dist/esm/vite/one.native.js.map +2 -2
  56. package/package.json +9 -9
  57. package/src/Root.tsx +40 -41
  58. package/src/createApp.tsx +1 -1
  59. package/src/render.tsx +0 -1
  60. package/src/router/router.ts +21 -26
  61. package/src/router/useScreens.tsx +49 -48
  62. package/src/vite/one.ts +5 -11
  63. package/src/vite/types.ts +17 -11
  64. package/types/Root.d.ts.map +1 -1
  65. package/types/layouts/Drawer.d.ts +2 -2
  66. package/types/layouts/Stack.d.ts +2 -2
  67. package/types/layouts/Tabs.d.ts +2 -2
  68. package/types/render.d.ts.map +1 -1
  69. package/types/router/router.d.ts +2 -2
  70. package/types/router/router.d.ts.map +1 -1
  71. package/types/router/useScreens.d.ts +1 -1
  72. package/types/router/useScreens.d.ts.map +1 -1
  73. package/types/vite/one.d.ts.map +1 -1
  74. package/types/vite/types.d.ts +17 -10
  75. package/types/vite/types.d.ts.map +1 -1
@@ -19,7 +19,7 @@ import { createVirtualEntry } from "./plugins/virtualEntryPlugin";
19
19
  events.setMaxListeners(1e3);
20
20
  globalThis.__vxrnEnableNativeEnv = !0;
21
21
  function one() {
22
- var options = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, _options_config, _options_optimization, _options_react, _options_ssr, _options_react1;
22
+ var options = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, _options_config, _options_optimization, _options_react, _options_ssr, _options_ssr1, _options_ssr2, _options_react1;
23
23
  if (!globalThis.__oneOptions)
24
24
  return setOneOptions(options), globalThis.__vxrnPluginConfig__ = options, [];
25
25
  clearCompilerCache(), ((_options_config = options.config) === null || _options_config === void 0 ? void 0 : _options_config.ensureTSConfig) !== !1 && ensureTSConfig();
@@ -39,7 +39,7 @@ function one() {
39
39
  "client"
40
40
  ] : !0
41
41
  });
42
- var autoDepsOptions = (_options_ssr = options.ssr) === null || _options_ssr === void 0 ? void 0 : _options_ssr.autoDepsOptimization, devAndProdPlugins = [
42
+ var devAndProdPlugins = [
43
43
  {
44
44
  name: "one:config",
45
45
  // @ts-ignore
@@ -59,7 +59,7 @@ function one() {
59
59
  };
60
60
  }
61
61
  },
62
- ...autoDepsOptions === !1 ? [] : [
62
+ ...((_options_ssr = options.ssr) === null || _options_ssr === void 0 ? void 0 : _options_ssr.disableAutoDepsPreBundling) === !0 ? [] : [
63
63
  autoDepOptimizePlugin({
64
64
  onScannedDeps(param) {
65
65
  var { hasReanimated, hasNativewind } = param, _options_native, _options_native_css;
@@ -70,8 +70,7 @@ function one() {
70
70
  });
71
71
  },
72
72
  root,
73
- include: /node_modules/,
74
- ...autoDepsOptions === !0 ? {} : autoDepsOptions
73
+ exclude: Array.isArray((_options_ssr1 = options.ssr) === null || _options_ssr1 === void 0 ? void 0 : _options_ssr1.disableAutoDepsPreBundling) ? (_options_ssr2 = options.ssr) === null || _options_ssr2 === void 0 ? void 0 : _options_ssr2.disableAutoDepsPreBundling : void 0
75
74
  })
76
75
  ],
77
76
  // proxy because you cant add a plugin inside a plugin
@@ -96,7 +95,7 @@ function one() {
96
95
  }
97
96
  }),
98
97
  {
99
- name: "one-aliases",
98
+ name: "one-slim-deps",
100
99
  enforce: "pre",
101
100
  config() {
102
101
  var tslibLitePath = "";
@@ -108,10 +107,6 @@ function one() {
108
107
  return {
109
108
  resolve: {
110
109
  alias: {
111
- // testing getting transition between routes working
112
- // 'use-sync-external-store/with-selector': resolvePath(
113
- // 'use-sync-external-store/shim/with-selector'
114
- // ),
115
110
  ...tslibLitePath && {
116
111
  tslib: tslibLitePath
117
112
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/vite/Users/n8/one/packages/one/src/vite/one.ts"],
4
- "mappings": "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",
5
- "names": ["configureVXRNCompilerPlugin", "clearCompilerCache", "resolvePath", "events", "path", "barrel", "tsconfigPaths", "autoDepOptimizePlugin", "getOptimizeDeps", "getOptionsFilled", "loadEnv", "CACHE_KEY", "ensureTSConfig", "setOneOptions", "clientTreeShakePlugin", "createFileSystemRouterPlugin", "fixDependenciesPlugin", "generateFileSystemRouteTypesPlugin", "SSRCSSPlugin", "virtualEntryId", "createVirtualEntry", "setMaxListeners", "globalThis", "__vxrnEnableNativeEnv", "one", "options", "__oneOptions", "config", "optimizeDeps", "optimizeIds", "include", "optimizeIdRegex", "RegExp", "map", "id", "replace", "join", "tsConfigPathsPlugin", "vxrnOptions", "root", "process", "cwd", "barrelOption", "optimization", "compiler", "react", "enableCompiler", "autoDepsOptions", "ssr", "autoDepsOptimization", "devAndProdPlugins", "name", "__get", "packages", "Array", "isArray", "clientEnvDefine", "mode", "define", "onScannedDeps", "hasReanimated", "hasNativewind", "enableReanimated", "enableNativeCSS", "native", "css", "enableNativewind", "Proxy", "configIncoming", "pathsConfig", "tsConfigPaths", "plugins", "flat", "some", "p", "configResolved", "resolveId", "get", "target", "key", "thisArg", "Reflect", "enforce", "tslibLitePath", "err", "console", "info", "env", "DEBUG", "error", "resolve", "alias", "tslib", "web", "defaultRenderMode", "JSON", "stringify", "setupFile", "NODE_ENV", "server", "url", "environments", "client", "ios", "android", "hotUpdate", "modules", "m", "relativePath", "relative", "rootDir", "split", "sep", "acceptedHmrExports", "Set", "_", "transform", "code", "environment", "includes", "scan", "reactScanPlugin", "reactScanConfig", "push", "obj", "configs", "disabled", "enabled", "animationSpeed", "showToolbar", "getConfigFor", "platform", "defaultConfig", "perPlatformConfig", "nativeWebDevAndProdPlugsin", "__vxrnAddNativePlugins", "__vxrnAddWebPluginsProd", "deps", "entries"]
4
+ "mappings": "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",
5
+ "names": ["configureVXRNCompilerPlugin", "clearCompilerCache", "resolvePath", "events", "path", "barrel", "tsconfigPaths", "autoDepOptimizePlugin", "getOptimizeDeps", "getOptionsFilled", "loadEnv", "CACHE_KEY", "ensureTSConfig", "setOneOptions", "clientTreeShakePlugin", "createFileSystemRouterPlugin", "fixDependenciesPlugin", "generateFileSystemRouteTypesPlugin", "SSRCSSPlugin", "virtualEntryId", "createVirtualEntry", "setMaxListeners", "globalThis", "__vxrnEnableNativeEnv", "one", "options", "__oneOptions", "config", "optimizeDeps", "optimizeIds", "include", "optimizeIdRegex", "RegExp", "map", "id", "replace", "join", "tsConfigPathsPlugin", "vxrnOptions", "root", "process", "cwd", "barrelOption", "optimization", "compiler", "react", "enableCompiler", "devAndProdPlugins", "name", "__get", "packages", "Array", "isArray", "clientEnvDefine", "mode", "define", "ssr", "disableAutoDepsPreBundling", "onScannedDeps", "hasReanimated", "hasNativewind", "enableReanimated", "enableNativeCSS", "native", "css", "enableNativewind", "exclude", "undefined", "Proxy", "configIncoming", "pathsConfig", "tsConfigPaths", "plugins", "flat", "some", "p", "configResolved", "resolveId", "get", "target", "key", "thisArg", "Reflect", "enforce", "tslibLitePath", "err", "console", "info", "env", "DEBUG", "error", "resolve", "alias", "tslib", "web", "defaultRenderMode", "JSON", "stringify", "setupFile", "NODE_ENV", "server", "url", "environments", "client", "ios", "android", "hotUpdate", "modules", "m", "relativePath", "relative", "rootDir", "split", "sep", "acceptedHmrExports", "Set", "_", "transform", "code", "environment", "includes", "scan", "reactScanPlugin", "reactScanConfig", "push", "obj", "configs", "disabled", "enabled", "animationSpeed", "showToolbar", "getConfigFor", "platform", "defaultConfig", "perPlatformConfig", "nativeWebDevAndProdPlugsin", "__vxrnAddNativePlugins", "__vxrnAddWebPluginsProd", "deps", "entries"]
6
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "one",
3
- "version": "1.1.434-1738878681339",
3
+ "version": "1.1.434",
4
4
  "license": "BSD-3-Clause",
5
5
  "sideEffects": [
6
6
  "setup.mjs",
@@ -94,15 +94,15 @@
94
94
  "@react-navigation/routers": "~7",
95
95
  "@swc/core": "^1.10.4",
96
96
  "@ungap/structured-clone": "^1.2.0",
97
- "@vxrn/compiler": "1.1.434-1738878681339",
98
- "@vxrn/resolve": "1.1.434-1738878681339",
99
- "@vxrn/tslib-lite": "1.1.434-1738878681339",
100
- "@vxrn/universal-color-scheme": "1.1.434-1738878681339",
101
- "@vxrn/use-isomorphic-layout-effect": "1.1.434-1738878681339",
97
+ "@vxrn/compiler": "1.1.434",
98
+ "@vxrn/resolve": "1.1.434",
99
+ "@vxrn/tslib-lite": "1.1.434",
100
+ "@vxrn/universal-color-scheme": "1.1.434",
101
+ "@vxrn/use-isomorphic-layout-effect": "1.1.434",
102
102
  "babel-dead-code-elimination": "^1.0.6",
103
103
  "citty": "^0.1.6",
104
104
  "core-js": "^3.38.1",
105
- "create-vxrn": "1.1.434-1738878681339",
105
+ "create-vxrn": "1.1.434",
106
106
  "escape-string-regexp": "^5.0.0",
107
107
  "expo-linking": "~6.3.1",
108
108
  "expo-modules-core": "2.1.2",
@@ -126,10 +126,10 @@
126
126
  "react-scan": "^0.1.3",
127
127
  "rollup-plugin-node-externals": "^7.1.2",
128
128
  "use-latest-callback": "^0.2.3",
129
- "vite": "^6.1.0",
129
+ "vite": "^6.0.11",
130
130
  "vite-plugin-barrel": "^0.4.1",
131
131
  "vite-tsconfig-paths": "^5.0.1",
132
- "vxrn": "1.1.434-1738878681339",
132
+ "vxrn": "1.1.434",
133
133
  "ws": "^8.18.0",
134
134
  "xxhashjs": "^0.2.2"
135
135
  },
package/src/Root.tsx CHANGED
@@ -7,7 +7,6 @@ import {
7
7
  import { useColorScheme } from '@vxrn/universal-color-scheme'
8
8
  import {
9
9
  createContext,
10
- StrictMode,
11
10
  useContext,
12
11
  useEffect,
13
12
  useId,
@@ -63,6 +62,7 @@ globalThis['__vxrnGetContextFromReactContext'] = () => useContext(ServerAsyncLoc
63
62
  export function Root(props: RootProps) {
64
63
  const { path, routes, routeOptions, isClient, navigationContainerProps, onRenderId } = props
65
64
 
65
+ // ⚠️ <StrictMode> breaks routing!
66
66
  const context = useViteRoutes(routes, routeOptions, globalThis['__vxrnVersion'])
67
67
  const location =
68
68
  typeof window !== 'undefined' && window.location
@@ -87,46 +87,45 @@ export function Root(props: RootProps) {
87
87
  const value = globalThis['__vxrnrequestAsyncLocalStore']?.getStore() || null
88
88
 
89
89
  const contents = (
90
- <StrictMode>
91
- <ServerAsyncLocalIDContext.Provider value={value}>
92
- <ServerRenderID.Provider value={id}>
93
- <RootErrorBoundary>
94
- {/* for some reason warning if no key here */}
95
- <UpstreamNavigationContainer
96
- ref={store.navigationRef}
97
- initialState={store.initialState}
98
- linking={store.linking}
99
- onUnhandledAction={onUnhandledAction}
100
- theme={colorScheme === 'dark' ? DarkTheme : DefaultTheme}
101
- documentTitle={{
102
- enabled: false,
103
- }}
104
- {...navigationContainerProps}
105
- >
106
- <ServerLocationContext.Provider value={location}>
107
- {/* <GestureHandlerRootView> */}
108
- {/*
109
- * Due to static rendering we need to wrap these top level views in second wrapper
110
- * View's like <GestureHandlerRootView /> generate a <div> so if the parent wrapper
111
- * is a HTML document, we need to ensure its inside the <body>
112
- */}
113
- <>
114
- {/* default scroll restoration to on, but users can configure it by importing and using themselves */}
115
- <ScrollBehavior />
116
-
117
- <Component />
118
-
119
- {/* Users can override this by adding another StatusBar element anywhere higher in the component tree. */}
120
- </>
121
- {/* {!hasViewControllerBasedStatusBarAppearance && <StatusBar style="auto" />} */}
122
- {/* </GestureHandlerRootView> */}
123
- </ServerLocationContext.Provider>
124
- </UpstreamNavigationContainer>
125
- <PreloadLinks key="preload-links" />
126
- </RootErrorBoundary>
127
- </ServerRenderID.Provider>
128
- </ServerAsyncLocalIDContext.Provider>
129
- </StrictMode>
90
+ // <StrictMode>
91
+ <ServerAsyncLocalIDContext.Provider value={value}>
92
+ <ServerRenderID.Provider value={id}>
93
+ <RootErrorBoundary>
94
+ {/* for some reason warning if no key here */}
95
+ <UpstreamNavigationContainer
96
+ ref={store.navigationRef}
97
+ initialState={store.initialState}
98
+ linking={store.linking}
99
+ onUnhandledAction={onUnhandledAction}
100
+ theme={colorScheme === 'dark' ? DarkTheme : DefaultTheme}
101
+ documentTitle={{
102
+ enabled: false,
103
+ }}
104
+ {...navigationContainerProps}
105
+ >
106
+ <ServerLocationContext.Provider value={location}>
107
+ {/* <GestureHandlerRootView> */}
108
+ {/*
109
+ * Due to static rendering we need to wrap these top level views in second wrapper
110
+ * View's like <GestureHandlerRootView /> generate a <div> so if the parent wrapper
111
+ * is a HTML document, we need to ensure its inside the <body>
112
+ */}
113
+ <>
114
+ {/* default scroll restoration to on, but users can configure it by importing and using themselves */}
115
+ <ScrollBehavior />
116
+ <Component />
117
+
118
+ {/* Users can override this by adding another StatusBar element anywhere higher in the component tree. */}
119
+ </>
120
+ {/* {!hasViewControllerBasedStatusBarAppearance && <StatusBar style="auto" />} */}
121
+ {/* </GestureHandlerRootView> */}
122
+ </ServerLocationContext.Provider>
123
+ </UpstreamNavigationContainer>
124
+ <PreloadLinks key="preload-links" />
125
+ </RootErrorBoundary>
126
+ </ServerRenderID.Provider>
127
+ </ServerAsyncLocalIDContext.Provider>
128
+ // </StrictMode>
130
129
  )
131
130
 
132
131
  if (isClient) {
package/src/createApp.tsx CHANGED
@@ -10,8 +10,8 @@ import type { RenderAppProps } from './types'
10
10
  import ReactDOMServer from 'react-dom/server.browser'
11
11
  import { getServerHeadInsertions } from './useServerHeadInsertion'
12
12
  import { ensureExists } from './utils/ensureExists'
13
- import { SERVER_CONTEXT_POST_RENDER_STRING } from './vite/constants'
14
13
  import { getServerContext, setServerContext } from './vite/one-server-only'
14
+ import { SERVER_CONTEXT_POST_RENDER_STRING } from './vite/constants'
15
15
 
16
16
  export type CreateAppProps = { routes: Record<string, () => Promise<unknown>> }
17
17
 
package/src/render.tsx CHANGED
@@ -5,7 +5,6 @@ globalThis['__vxrnVersion'] ||= 0
5
5
 
6
6
  export function render(element: React.ReactNode) {
7
7
  if (typeof document === 'undefined') return
8
-
9
8
  if (globalThis['__vxrnRoot']) {
10
9
  globalThis['__vxrnVersion']++
11
10
  globalThis['__vxrnRoot'].render(element)
@@ -6,27 +6,28 @@ import {
6
6
  } from '@react-navigation/native'
7
7
  import * as Linking from 'expo-linking'
8
8
  import { nanoid } from 'nanoid/non-secure'
9
- import { Fragment, startTransition, type ComponentType, useSyncExternalStore } from 'react'
9
+ import { act, Fragment, startTransition, useSyncExternalStore, type ComponentType } from 'react'
10
10
  import { Platform } from 'react-native'
11
+ import type { RouteNode } from './Route'
12
+ import { getLoaderPath, getPreloadPath } from '../utils/cleanUrl'
11
13
  import type { State } from '../fork/getPathFromState'
12
14
  import { getPathDataFromState } from '../fork/getPathFromState'
13
15
  import { stripBaseUrl } from '../fork/getStateFromPath-mods'
16
+ import { getLinkingConfig, type OneLinkingOptions } from './getLinkingConfig'
17
+ import { getRoutes } from './getRoutes'
14
18
  import type { OneRouter } from '../interfaces/router'
15
19
  import { resolveHref } from '../link/href'
16
20
  import { resolve } from '../link/path'
21
+ import { matchDynamicName } from './matchers'
22
+ import { sortRoutes } from './sortRoutes'
23
+ import { getQualifiedRouteComponent } from './useScreens'
17
24
  import { assertIsReady } from '../utils/assertIsReady'
18
- import { getLoaderPath, getPreloadPath } from '../utils/cleanUrl'
19
25
  import { dynamicImport } from '../utils/dynamicImport'
26
+ import { removeSearch } from '../utils/removeSearch'
20
27
  import { shouldLinkExternally } from '../utils/url'
21
28
  import type { One } from '../vite/types'
22
- import { getLinkingConfig, type OneLinkingOptions } from './getLinkingConfig'
23
29
  import { getNormalizedStatePath, type UrlObject } from './getNormalizedStatePath'
24
- import { getRoutes } from './getRoutes'
25
30
  import { setLastAction } from './lastAction'
26
- import { matchDynamicName } from './matchers'
27
- import type { RouteNode } from './Route'
28
- import { sortRoutes } from './sortRoutes'
29
- import { getQualifiedRouteComponent } from './useScreens'
30
31
 
31
32
  // Module-scoped variables
32
33
  export let routeNode: RouteNode | null = null
@@ -143,20 +144,16 @@ function subscribeToNavigationChanges() {
143
144
  }
144
145
 
145
146
  if (shouldUpdateSubscribers) {
146
- startTransition(() => {
147
- for (const subscriber of rootStateSubscribers) {
148
- subscriber(state)
149
- }
150
- })
147
+ for (const subscriber of rootStateSubscribers) {
148
+ subscriber(state)
149
+ }
151
150
  }
152
151
  })
153
152
 
154
- startTransition(() => {
155
- updateSnapshot()
156
- for (const subscriber of storeSubscribers) {
157
- subscriber()
158
- }
159
- })
153
+ updateSnapshot()
154
+ for (const subscriber of storeSubscribers) {
155
+ subscriber()
156
+ }
160
157
  }
161
158
 
162
159
  // Navigation functions
@@ -288,11 +285,9 @@ export function subscribeToLoadingState(subscriber: OneRouter.LoadingStateListen
288
285
  }
289
286
 
290
287
  export function setLoadingState(state: OneRouter.LoadingState) {
291
- startTransition(() => {
292
- for (const listener of loadingStateSubscribers) {
293
- listener(state)
294
- }
295
- })
288
+ for (const listener of loadingStateSubscribers) {
289
+ listener(state)
290
+ }
296
291
  }
297
292
 
298
293
  // Snapshot function
@@ -510,6 +505,7 @@ export async function linkTo(href: string, event?: string, options?: OneRouter.L
510
505
  preloadRoute(href)
511
506
 
512
507
  const rootState = navigationRef.getRootState()
508
+ const action = getNavigateAction(state, rootState, event)
513
509
 
514
510
  const hash = href.indexOf('#')
515
511
  if (rootState.key && hash > 0) {
@@ -520,10 +516,9 @@ export async function linkTo(href: string, event?: string, options?: OneRouter.L
520
516
  nextOptions = options ?? null
521
517
 
522
518
  startTransition(() => {
523
- const action = getNavigateAction(state, rootState, event)
524
519
  const current = navigationRef.getCurrentRoute()
525
- navigationRef.dispatch(action)
526
520
 
521
+ navigationRef.dispatch(action)
527
522
  let warningTm
528
523
  const interval = setInterval(() => {
529
524
  const next = navigationRef.getCurrentRoute()
@@ -7,9 +7,10 @@ import type {
7
7
  RouteProp,
8
8
  ScreenListeners,
9
9
  } from '@react-navigation/native'
10
- import React, { forwardRef, memo, Suspense } from 'react'
10
+ import React, { forwardRef, Suspense, useEffect } from 'react'
11
11
  import { ServerContextScript } from '../server/ServerContextScript'
12
12
  import { getPageExport } from '../utils/getPageExport'
13
+ import { useConstant } from '../utils/useConstant'
13
14
  import { EmptyRoute } from '../views/EmptyRoute'
14
15
  import { RootErrorBoundary } from '../views/RootErrorBoundary'
15
16
  import { Try } from '../views/Try'
@@ -170,11 +171,9 @@ export function getQualifiedRouteComponent(value: RouteNode) {
170
171
 
171
172
  let ScreenComponent: React.ForwardRefExoticComponent<{ segment: string; key?: string }>
172
173
 
173
- let Component
174
-
175
174
  ScreenComponent = React.forwardRef((props, ref) => {
176
- Component ||= (() => {
177
- const res = value.loadRoute()
175
+ const res = value.loadRoute()
176
+ const Component = useConstant(() => {
178
177
  const BaseComponent = getPageExport(fromImport(res)) as React.ComponentType<any>
179
178
 
180
179
  // root layout do special html handling only
@@ -186,15 +185,12 @@ export function getQualifiedRouteComponent(value: RouteNode) {
186
185
  const { children: headChildren, ...headProps } = head?.props || {}
187
186
  const serverContext = useServerContext()
188
187
 
189
- // let finalChildren = <Suspense fallback={null}>{children}</Suspense>
190
- let finalChildren = children
191
-
192
188
  if (process.env.TAMAGUI_TARGET === 'native') {
193
189
  // on native we just ignore all html/body/head
194
- return finalChildren
190
+ return children
195
191
  }
196
192
 
197
- finalChildren = (
193
+ const contents = (
198
194
  <>
199
195
  <head key="head" {...headProps}>
200
196
  <DevHead />
@@ -210,7 +206,7 @@ export function getQualifiedRouteComponent(value: RouteNode) {
210
206
  {headChildren}
211
207
  </head>
212
208
  <body key="body" suppressHydrationWarning {...bodyProps}>
213
- <SafeAreaProviderCompat>{finalChildren}</SafeAreaProviderCompat>
209
+ <SafeAreaProviderCompat>{children}</SafeAreaProviderCompat>
214
210
  </body>
215
211
  </>
216
212
  )
@@ -219,37 +215,67 @@ export function getQualifiedRouteComponent(value: RouteNode) {
219
215
  // tamagui and libraries can add className on hydration to have ssr safe styling
220
216
  // so supress hydration warnings here
221
217
  <html suppressHydrationWarning lang="en-US" {...htmlProps}>
222
- {finalChildren}
218
+ {contents}
223
219
  </html>
224
220
  )
225
221
  })
226
222
  }
227
223
 
228
224
  return BaseComponent
229
- })()
225
+ })
230
226
 
231
227
  if (process.env.NODE_ENV === 'development' && process.env.DEBUG === 'one') {
232
228
  console.groupCollapsed(`Render ${props.key} ${props.segment}`)
229
+ console.info(`res`, res)
233
230
  console.info(`value`, value)
231
+ console.info(`fromImport`, fromImport(res))
234
232
  console.info(`Component`, Component)
235
233
  console.groupEnd()
236
234
  }
237
235
 
238
- return <Component {...props} ref={ref} />
236
+ return (
237
+ // <Suspense fallback={null}>
238
+ <Component {...props} ref={ref} />
239
+ // </Suspense>
240
+ )
239
241
  })
240
242
 
241
243
  const wrapSuspense = (children: any) => {
242
- // so as far as i understand, adding suspense causes flickers on web during nav because
243
- // we can't seem to get react navigation to properly respect startTransition(() => {})
244
- // i tried a lot of things, but didn't find the root cause, but native needs suspense or
245
- // else it hits an error about no suspense boundary being set
246
-
247
244
  if (process.env.TAMAGUI_TARGET === 'native') {
248
- return <Suspense fallback={null}>{children}</Suspense>
245
+ return <Suspense fallback={<SuspenseFallback route={value} />}>{children}</Suspense>
249
246
  }
247
+ // on web avoiding suspense for now
248
+ // its causing page flickers, we need to make sure we wrap loaders + page nav
249
+ // in startTransition
250
250
  return children
251
251
  }
252
252
 
253
+ const getLoadable = (props: any, ref: any) => {
254
+ return (
255
+ <RootErrorBoundary>
256
+ {wrapSuspense(
257
+ <ScreenComponent
258
+ {...{
259
+ ...props,
260
+ ref,
261
+ // Expose the template segment path, e.g. `(home)`, `[foo]`, `index`
262
+ // the intention is to make it possible to deduce shared routes.
263
+ segment: value.route,
264
+ }}
265
+ />
266
+ )}
267
+ </RootErrorBoundary>
268
+ )
269
+ }
270
+
271
+ const SuspenseFallback = ({ route }: { route: RouteNode }) => {
272
+ useEffect(() => {
273
+ // console.info(`⚠️ Suspended:`, route)
274
+ }, [route])
275
+
276
+ return null
277
+ }
278
+
253
279
  const QualifiedRoute = React.forwardRef(
254
280
  (
255
281
  {
@@ -263,21 +289,10 @@ export function getQualifiedRouteComponent(value: RouteNode) {
263
289
  }: any,
264
290
  ref: any
265
291
  ) => {
292
+ const loadable = getLoadable(props, ref)
266
293
  return (
267
294
  <Route route={route} node={value}>
268
- <RootErrorBoundary>
269
- {wrapSuspense(
270
- <ScreenComponent
271
- {...{
272
- ...props,
273
- ref,
274
- // Expose the template segment path, e.g. `(home)`, `[foo]`, `index`
275
- // the intention is to make it possible to deduce shared routes.
276
- segment: value.route,
277
- }}
278
- />
279
- )}
280
- </RootErrorBoundary>
295
+ {loadable}
281
296
  </Route>
282
297
  )
283
298
  }
@@ -286,7 +301,7 @@ export function getQualifiedRouteComponent(value: RouteNode) {
286
301
  QualifiedRoute.displayName = `Route(${value.route})`
287
302
 
288
303
  qualifiedStore.set(value, QualifiedRoute)
289
- return memo(QualifiedRoute)
304
+ return QualifiedRoute
290
305
  }
291
306
 
292
307
  /** @returns a function which provides a screen id that matches the dynamic route name in params. */
@@ -351,20 +366,6 @@ function routeToScreen(route: RouteNode, { options, ...props }: Partial<ScreenPr
351
366
 
352
367
  return output
353
368
  }}
354
- // this doesn't work, also probably better to wrap suspense only on root layout in useScreens
355
- // but it doesnt seem to pick up our startTransitions which i wrapped in a few places.
356
- // now i thought this was due to our use of useSyncExternalStore, but i replaced that with
357
- // `use-sync-external-store/shim` and i also replaced the one in react-navigation that does
358
- // `use-sync-external-store/with-selector` to `use-sync-external-store/shim/with-selector`
359
- // but still it seems something else must be updating state outside a transition.
360
-
361
- // layout={({ children }) => {
362
- // console.log('route.contextKey', route.contextKey)
363
- // if (route.contextKey === '') {
364
- // return <Suspense fallback={null}>{children}</Suspense>
365
- // }
366
- // return children
367
- // }}
368
369
  getComponent={() => {
369
370
  // log here to see which route is rendered
370
371
  // console.log('getting', route, getQualifiedRouteComponent(route))
package/src/vite/one.ts CHANGED
@@ -74,8 +74,6 @@ export function one(options: One.PluginOptions = {}): PluginOption {
74
74
  })
75
75
  }
76
76
 
77
- const autoDepsOptions = options.ssr?.autoDepsOptimization
78
-
79
77
  const devAndProdPlugins: Plugin[] = [
80
78
  {
81
79
  name: 'one:config',
@@ -99,7 +97,7 @@ export function one(options: One.PluginOptions = {}): PluginOption {
99
97
  },
100
98
  },
101
99
 
102
- ...(autoDepsOptions === false
100
+ ...(options.ssr?.disableAutoDepsPreBundling === true
103
101
  ? []
104
102
  : [
105
103
  autoDepOptimizePlugin({
@@ -111,8 +109,9 @@ export function one(options: One.PluginOptions = {}): PluginOption {
111
109
  })
112
110
  },
113
111
  root,
114
- include: /node_modules/,
115
- ...(autoDepsOptions === true ? {} : autoDepsOptions),
112
+ exclude: Array.isArray(options.ssr?.disableAutoDepsPreBundling)
113
+ ? options.ssr?.disableAutoDepsPreBundling
114
+ : undefined,
116
115
  }),
117
116
  ]),
118
117
 
@@ -156,7 +155,7 @@ export function one(options: One.PluginOptions = {}): PluginOption {
156
155
  ),
157
156
 
158
157
  {
159
- name: 'one-aliases',
158
+ name: 'one-slim-deps',
160
159
  enforce: 'pre',
161
160
 
162
161
  config() {
@@ -178,11 +177,6 @@ export function one(options: One.PluginOptions = {}): PluginOption {
178
177
  return {
179
178
  resolve: {
180
179
  alias: {
181
- // testing getting transition between routes working
182
- // 'use-sync-external-store/with-selector': resolvePath(
183
- // 'use-sync-external-store/shim/with-selector'
184
- // ),
185
-
186
180
  ...(tslibLitePath && {
187
181
  tslib: tslibLitePath,
188
182
  }),