one 1.1.460 → 1.1.462
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/dist/cjs/createApp.native.js +1 -1
- package/dist/cjs/createApp.native.js.map +1 -1
- package/dist/cjs/router/useScreens.cjs +108 -3
- package/dist/cjs/router/useScreens.js +81 -3
- package/dist/cjs/router/useScreens.js.map +1 -1
- package/dist/cjs/router/useScreens.native.js +200 -4
- package/dist/cjs/router/useScreens.native.js.map +2 -2
- package/dist/cjs/setup.js.map +1 -1
- package/dist/cjs/vite/types.native.js.map +1 -1
- package/dist/esm/createApp.native.js +1 -1
- package/dist/esm/createApp.native.js.map +1 -1
- package/dist/esm/router/useScreens.js +81 -2
- package/dist/esm/router/useScreens.js.map +1 -1
- package/dist/esm/router/useScreens.mjs +108 -3
- package/dist/esm/router/useScreens.mjs.map +1 -1
- package/dist/esm/router/useScreens.native.js +177 -3
- package/dist/esm/router/useScreens.native.js.map +1 -1
- package/dist/esm/setup.js.map +1 -1
- package/dist/esm/setup.mjs.map +1 -1
- package/package.json +19 -11
- package/src/createApp.native.tsx +1 -9
- package/src/router/useScreens.tsx +106 -4
- package/src/setup.ts +1 -0
- package/src/vite/types.ts +14 -1
- package/types/createApp.native.d.ts.map +1 -1
- package/types/router/useScreens.d.ts.map +1 -1
- package/types/setup.d.ts.map +1 -1
- package/types/vite/types.d.ts +13 -1
- package/types/vite/types.d.ts.map +1 -1
package/src/createApp.native.tsx
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
import { AppRegistry, LogBox } from 'react-native' // This should be the first import as it might set up global variables that are needed for the other imports
|
2
2
|
import './polyfills-mobile'
|
3
|
-
import './setup'
|
4
3
|
import { Root } from './Root'
|
5
|
-
|
4
|
+
import './setup'
|
6
5
|
|
7
6
|
export type CreateAppProps = { routes: Record<string, () => Promise<unknown>> }
|
8
7
|
|
@@ -13,13 +12,6 @@ export function createApp(options: CreateAppProps): void {
|
|
13
12
|
const App = () => {
|
14
13
|
let contents = <Root isClient routes={options.routes} path="/" />
|
15
14
|
|
16
|
-
// if (process.env.ONE_ENABLE_REACT_SCAN) {
|
17
|
-
// console.warn(`React Scan enabled with options: ${process.env.ONE_ENABLE_REACT_SCAN}`)
|
18
|
-
// contents = (
|
19
|
-
// <ReactScan options={JSON.parse(process.env.ONE_ENABLE_REACT_SCAN)}>{contents}</ReactScan>
|
20
|
-
// )
|
21
|
-
// }
|
22
|
-
|
23
15
|
return contents
|
24
16
|
}
|
25
17
|
|
@@ -8,6 +8,7 @@ import type {
|
|
8
8
|
ScreenListeners,
|
9
9
|
} from '@react-navigation/native'
|
10
10
|
import React, { memo, Suspense, useId } from 'react'
|
11
|
+
import { SafeAreaView, ScrollView, View, TouchableOpacity, Text } from 'react-native'
|
11
12
|
import { ServerContextScript } from '../server/ServerContextScript'
|
12
13
|
import { getPageExport } from '../utils/getPageExport'
|
13
14
|
import { EmptyRoute } from '../views/EmptyRoute'
|
@@ -31,7 +32,7 @@ export const { Screen, Group } = createNavigatorFactory({} as any)()
|
|
31
32
|
export type ScreenProps<
|
32
33
|
TOptions extends Record<string, any> = Record<string, any>,
|
33
34
|
State extends NavigationState = NavigationState,
|
34
|
-
EventMap extends EventMapBase = EventMapBase
|
35
|
+
EventMap extends EventMapBase = EventMapBase
|
35
36
|
> = {
|
36
37
|
/** Name is required when used inside a Layout component. */
|
37
38
|
name?: string
|
@@ -70,7 +71,9 @@ function getSortedChildren(
|
|
70
71
|
const ordered = order
|
71
72
|
.map(({ name, redirect, initialParams, listeners, options, getId }) => {
|
72
73
|
if (!entries.length) {
|
73
|
-
console.warn(
|
74
|
+
console.warn(
|
75
|
+
`[Layout children]: Too many screens defined. Route "${name}" is extraneous.`
|
76
|
+
)
|
74
77
|
return null
|
75
78
|
}
|
76
79
|
const matchIndex = entries.findIndex((child) => child.route === name)
|
@@ -225,7 +228,11 @@ export function getQualifiedRouteComponent(value: RouteNode) {
|
|
225
228
|
)
|
226
229
|
}
|
227
230
|
|
228
|
-
return
|
231
|
+
return (
|
232
|
+
<RouteErrorBoundary routeName={value.route}>
|
233
|
+
<Component {...props} ref={ref} />
|
234
|
+
</RouteErrorBoundary>
|
235
|
+
)
|
229
236
|
})
|
230
237
|
|
231
238
|
const wrapSuspense = (children: any) => {
|
@@ -313,7 +320,10 @@ export function createGetIdForRoute(
|
|
313
320
|
}
|
314
321
|
}
|
315
322
|
|
316
|
-
function routeToScreen(
|
323
|
+
function routeToScreen(
|
324
|
+
route: RouteNode,
|
325
|
+
{ options, ...props }: Partial<ScreenProps> = {}
|
326
|
+
) {
|
317
327
|
return (
|
318
328
|
<Screen
|
319
329
|
// Users can override the screen getId function.
|
@@ -363,3 +373,95 @@ function routeToScreen(route: RouteNode, { options, ...props }: Partial<ScreenPr
|
|
363
373
|
/>
|
364
374
|
)
|
365
375
|
}
|
376
|
+
|
377
|
+
type RouteErrorBoundaryState = { hasError: boolean; error: any; errorInfo: any }
|
378
|
+
|
379
|
+
const ROUTE_ERROR_BOUNDARY_INITIAL_STATE = {
|
380
|
+
hasError: false,
|
381
|
+
error: null,
|
382
|
+
errorInfo: null,
|
383
|
+
}
|
384
|
+
|
385
|
+
class RouteErrorBoundary extends React.Component<
|
386
|
+
{ children: React.ReactNode; routeName: string },
|
387
|
+
RouteErrorBoundaryState
|
388
|
+
> {
|
389
|
+
constructor(props) {
|
390
|
+
super(props)
|
391
|
+
this.state = ROUTE_ERROR_BOUNDARY_INITIAL_STATE
|
392
|
+
}
|
393
|
+
|
394
|
+
static getDerivedStateFromError(error) {
|
395
|
+
return { hasError: true, error }
|
396
|
+
}
|
397
|
+
|
398
|
+
componentDidCatch(error, errorInfo) {
|
399
|
+
console.error(
|
400
|
+
`Error occurred while running route "${this.props.routeName}": ${
|
401
|
+
error instanceof Error ? error.message : error
|
402
|
+
}\n\n${error.stack}\n\nComponent Stack:\n${errorInfo.componentStack}`
|
403
|
+
)
|
404
|
+
this.setState({ errorInfo })
|
405
|
+
}
|
406
|
+
|
407
|
+
clearError() {
|
408
|
+
this.setState(ROUTE_ERROR_BOUNDARY_INITIAL_STATE)
|
409
|
+
}
|
410
|
+
|
411
|
+
render() {
|
412
|
+
if (this.state.hasError) {
|
413
|
+
const { error, errorInfo } = this.state
|
414
|
+
return (
|
415
|
+
<SafeAreaView style={{ backgroundColor: '#000' }}>
|
416
|
+
<View style={{ margin: 16, gap: 16 }}>
|
417
|
+
<Text
|
418
|
+
style={{
|
419
|
+
alignSelf: 'flex-start',
|
420
|
+
padding: 5,
|
421
|
+
margin: -5,
|
422
|
+
backgroundColor: 'red',
|
423
|
+
color: 'white',
|
424
|
+
fontSize: 20,
|
425
|
+
fontFamily: 'monospace',
|
426
|
+
}}
|
427
|
+
>
|
428
|
+
Error on route "{this.props.routeName}"
|
429
|
+
</Text>
|
430
|
+
<Text style={{ color: 'white', fontSize: 16, fontFamily: 'monospace' }}>
|
431
|
+
{error instanceof Error ? error.message : error}
|
432
|
+
</Text>
|
433
|
+
<TouchableOpacity onPress={this.clearError.bind(this)}>
|
434
|
+
<Text
|
435
|
+
style={{
|
436
|
+
alignSelf: 'flex-start',
|
437
|
+
margin: -6,
|
438
|
+
padding: 6,
|
439
|
+
backgroundColor: 'white',
|
440
|
+
color: 'black',
|
441
|
+
fontSize: 14,
|
442
|
+
fontFamily: 'monospace',
|
443
|
+
}}
|
444
|
+
>
|
445
|
+
Retry
|
446
|
+
</Text>
|
447
|
+
</TouchableOpacity>
|
448
|
+
<ScrollView contentContainerStyle={{ gap: 12 }}>
|
449
|
+
{error instanceof Error ? (
|
450
|
+
<Text style={{ color: 'white', fontSize: 12, fontFamily: 'monospace' }}>
|
451
|
+
{error.stack}
|
452
|
+
</Text>
|
453
|
+
) : null}
|
454
|
+
{errorInfo?.componentStack ? (
|
455
|
+
<Text style={{ color: 'white', fontSize: 12, fontFamily: 'monospace' }}>
|
456
|
+
Component Stack: {errorInfo.componentStack}
|
457
|
+
</Text>
|
458
|
+
) : null}
|
459
|
+
</ScrollView>
|
460
|
+
</View>
|
461
|
+
</SafeAreaView>
|
462
|
+
)
|
463
|
+
}
|
464
|
+
|
465
|
+
return this.props.children
|
466
|
+
}
|
467
|
+
}
|
package/src/setup.ts
CHANGED
package/src/vite/types.ts
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
import type { GetTransform } from '@vxrn/compiler'
|
2
|
-
import type { Options as ReactScanOptions } from 'react-scan'
|
3
2
|
import type { PluginOptions as TSConfigPluginOptions } from 'vite-tsconfig-paths'
|
4
3
|
import type {
|
5
4
|
AutoDepOptimizationOptions,
|
@@ -23,6 +22,15 @@ export type RouteInfo<TRegex = string> = {
|
|
23
22
|
isNotFound?: boolean
|
24
23
|
}
|
25
24
|
|
25
|
+
interface ReactScanOptions {
|
26
|
+
log?: boolean
|
27
|
+
showToolbar?: boolean
|
28
|
+
animationSpeed?: 'slow' | 'fast' | 'off'
|
29
|
+
trackUnnecessaryRenders?: boolean
|
30
|
+
showFPS?: boolean
|
31
|
+
_debug?: 'verbose' | false
|
32
|
+
}
|
33
|
+
|
26
34
|
export namespace One {
|
27
35
|
export type Options = Omit<VXRNOptions, keyof PluginOptions> & PluginOptions
|
28
36
|
|
@@ -104,6 +112,11 @@ export namespace One {
|
|
104
112
|
|
105
113
|
react?: {
|
106
114
|
compiler?: boolean | PluginPlatformTarget
|
115
|
+
|
116
|
+
/**
|
117
|
+
* Enable react-scan, we've given a minimal subset of options here
|
118
|
+
* So long as the options can be serialized they should work here
|
119
|
+
*/
|
107
120
|
scan?:
|
108
121
|
| boolean
|
109
122
|
| PluginPlatformTarget
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"createApp.native.d.ts","sourceRoot":"","sources":["../src/createApp.native.tsx"],"names":[],"mappings":"AACA,OAAO,oBAAoB,CAAA;
|
1
|
+
{"version":3,"file":"createApp.native.d.ts","sourceRoot":"","sources":["../src/createApp.native.tsx"],"names":[],"mappings":"AACA,OAAO,oBAAoB,CAAA;AAE3B,OAAO,SAAS,CAAA;AAEhB,MAAM,MAAM,cAAc,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC,CAAA;CAAE,CAAA;AAK/E,wBAAgB,SAAS,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAYvD"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"useScreens.d.ts","sourceRoot":"","sources":["../../src/router/useScreens.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,YAAY,EACZ,eAAe,EACf,aAAa,EACb,SAAS,EACT,eAAe,EAChB,MAAM,0BAA0B,CAAA;AACjC,OAAO,KAAgC,MAAM,OAAO,CAAA;
|
1
|
+
{"version":3,"file":"useScreens.d.ts","sourceRoot":"","sources":["../../src/router/useScreens.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,YAAY,EACZ,eAAe,EACf,aAAa,EACb,SAAS,EACT,eAAe,EAChB,MAAM,0BAA0B,CAAA;AACjC,OAAO,KAAgC,MAAM,OAAO,CAAA;AASpD,OAAO,EAKL,KAAK,SAAS,EACf,MAAM,SAAS,CAAA;AAKhB,eAAO,MAAQ,MAAM,OAAE,KAAK,KAAwC,CAAA;AAEpE,MAAM,MAAM,WAAW,CACrB,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC1D,KAAK,SAAS,eAAe,GAAG,eAAe,EAC/C,QAAQ,SAAS,YAAY,GAAG,YAAY,IAC1C;IACF,4DAA4D;IAC5D,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACnC,OAAO,CAAC,EAAE,QAAQ,CAAA;IAElB,SAAS,CAAC,EACN,eAAe,CAAC,KAAK,EAAE,QAAQ,CAAC,GAChC,CAAC,CAAC,IAAI,EAAE;QACN,KAAK,EAAE,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC,CAAA;QACvC,UAAU,EAAE,GAAG,CAAA;KAChB,KAAK,eAAe,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAA;IAE3C,KAAK,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KAAE,KAAK,MAAM,GAAG,SAAS,CAAA;CAC7E,CAAA;AAkED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,WAAW,EAAE,EACpB,OAAO,CAAC,EAAE;IAAE,YAAY,CAAC,EAAE,OAAO,CAAA;CAAE,GACnC,KAAK,CAAC,SAAS,EAAE,CAYnB;AA4BD,mFAAmF;AACnF,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,SAAS,0IAuH1D;AAED,oGAAoG;AACpG,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,GAAG,YAAY,GAAG,UAAU,CAAC;aAU5B,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;aAoB/D"}
|
package/types/setup.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AAUA,OAAO,wCAAwC,CAAA"}
|
package/types/vite/types.d.ts
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
import type { GetTransform } from '@vxrn/compiler';
|
2
|
-
import type { Options as ReactScanOptions } from 'react-scan';
|
3
2
|
import type { PluginOptions as TSConfigPluginOptions } from 'vite-tsconfig-paths';
|
4
3
|
import type { AutoDepOptimizationOptions, DepOptimize, DepPatch, AfterBuildProps as VXRNAfterBuildProps, VXRNBuildOptions, VXRNOptions } from 'vxrn';
|
5
4
|
import type { RouteNode } from '../router/Route';
|
@@ -14,6 +13,14 @@ export type RouteInfo<TRegex = string> = {
|
|
14
13
|
type: One.RouteType;
|
15
14
|
isNotFound?: boolean;
|
16
15
|
};
|
16
|
+
interface ReactScanOptions {
|
17
|
+
log?: boolean;
|
18
|
+
showToolbar?: boolean;
|
19
|
+
animationSpeed?: 'slow' | 'fast' | 'off';
|
20
|
+
trackUnnecessaryRenders?: boolean;
|
21
|
+
showFPS?: boolean;
|
22
|
+
_debug?: 'verbose' | false;
|
23
|
+
}
|
17
24
|
export declare namespace One {
|
18
25
|
export type Options = Omit<VXRNOptions, keyof PluginOptions> & PluginOptions;
|
19
26
|
export type RouteRenderMode = 'ssg' | 'spa' | 'ssr';
|
@@ -84,6 +91,10 @@ export declare namespace One {
|
|
84
91
|
transform?: GetTransform;
|
85
92
|
react?: {
|
86
93
|
compiler?: boolean | PluginPlatformTarget;
|
94
|
+
/**
|
95
|
+
* Enable react-scan, we've given a minimal subset of options here
|
96
|
+
* So long as the options can be serialized they should work here
|
97
|
+
*/
|
87
98
|
scan?: boolean | PluginPlatformTarget | (Record<PluginPlatformTarget, ReactScanOptions> & {
|
88
99
|
options?: ReactScanOptions;
|
89
100
|
});
|
@@ -253,4 +264,5 @@ export declare namespace One {
|
|
253
264
|
};
|
254
265
|
export {};
|
255
266
|
}
|
267
|
+
export {};
|
256
268
|
//# sourceMappingURL=types.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/vite/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAClD,OAAO,KAAK,EAAE,
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/vite/types.ts"],"names":[],"mappings":"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"}
|