@react-navigation/native 8.0.0-alpha.40 → 8.0.0-alpha.41
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/assets/fonts/MaterialSymbolsOutlined.codepoints +11 -0
- package/assets/fonts/MaterialSymbolsOutlined_100.ttf +0 -0
- package/assets/fonts/MaterialSymbolsOutlined_200.ttf +0 -0
- package/assets/fonts/MaterialSymbolsOutlined_300.ttf +0 -0
- package/assets/fonts/MaterialSymbolsOutlined_400.ttf +0 -0
- package/assets/fonts/MaterialSymbolsOutlined_500.ttf +0 -0
- package/assets/fonts/MaterialSymbolsOutlined_600.ttf +0 -0
- package/assets/fonts/MaterialSymbolsOutlined_700.ttf +0 -0
- package/assets/fonts/MaterialSymbolsRounded.codepoints +11 -0
- package/assets/fonts/MaterialSymbolsRounded_100.ttf +0 -0
- package/assets/fonts/MaterialSymbolsRounded_200.ttf +0 -0
- package/assets/fonts/MaterialSymbolsRounded_300.ttf +0 -0
- package/assets/fonts/MaterialSymbolsRounded_400.ttf +0 -0
- package/assets/fonts/MaterialSymbolsRounded_500.ttf +0 -0
- package/assets/fonts/MaterialSymbolsRounded_600.ttf +0 -0
- package/assets/fonts/MaterialSymbolsRounded_700.ttf +0 -0
- package/assets/fonts/MaterialSymbolsSharp.codepoints +11 -0
- package/assets/fonts/MaterialSymbolsSharp_100.ttf +0 -0
- package/assets/fonts/MaterialSymbolsSharp_200.ttf +0 -0
- package/assets/fonts/MaterialSymbolsSharp_300.ttf +0 -0
- package/assets/fonts/MaterialSymbolsSharp_400.ttf +0 -0
- package/assets/fonts/MaterialSymbolsSharp_500.ttf +0 -0
- package/assets/fonts/MaterialSymbolsSharp_600.ttf +0 -0
- package/assets/fonts/MaterialSymbolsSharp_700.ttf +0 -0
- package/lib/module/NavigationContainer.js +55 -16
- package/lib/module/NavigationContainer.js.map +1 -1
- package/lib/module/checkSerializable.js +180 -0
- package/lib/module/checkSerializable.js.map +1 -0
- package/lib/module/getStateBreadcrumb.js +37 -0
- package/lib/module/getStateBreadcrumb.js.map +1 -0
- package/lib/module/native/CornerInset.js.map +1 -1
- package/lib/module/native/MaterialSymbol.android.js +4 -4
- package/lib/module/native/MaterialSymbol.android.js.map +1 -1
- package/lib/module/native/MaterialSymbol.js.map +1 -1
- package/lib/module/native/MaterialSymbolViewNativeComponent.ts +1 -1
- package/lib/module/native/ReactNavigationCornerInsetViewNativeComponent.ts +2 -4
- package/lib/module/native/SFSymbol.ios.js +2 -4
- package/lib/module/native/SFSymbol.ios.js.map +1 -1
- package/lib/module/native/SFSymbol.js.map +1 -1
- package/lib/module/native/SFSymbolViewNativeComponent.ts +1 -1
- package/lib/module/useLinkBuilder.js +3 -11
- package/lib/module/useLinkBuilder.js.map +1 -1
- package/lib/module/useScrollToTop.js +0 -6
- package/lib/module/useScrollToTop.js.map +1 -1
- package/lib/module/useThenable.js +8 -6
- package/lib/module/useThenable.js.map +1 -1
- package/lib/typescript/src/NavigationContainer.d.ts +6 -2
- package/lib/typescript/src/NavigationContainer.d.ts.map +1 -1
- package/lib/typescript/src/checkSerializable.d.ts +12 -0
- package/lib/typescript/src/checkSerializable.d.ts.map +1 -0
- package/lib/typescript/src/getStateBreadcrumb.d.ts +3 -0
- package/lib/typescript/src/getStateBreadcrumb.d.ts.map +1 -0
- package/lib/typescript/src/native/CornerInset.d.ts +6 -2
- package/lib/typescript/src/native/CornerInset.d.ts.map +1 -1
- package/lib/typescript/src/native/MaterialSymbol.android.d.ts +8 -3
- package/lib/typescript/src/native/MaterialSymbol.android.d.ts.map +1 -1
- package/lib/typescript/src/native/MaterialSymbol.d.ts +7 -2
- package/lib/typescript/src/native/MaterialSymbol.d.ts.map +1 -1
- package/lib/typescript/src/native/MaterialSymbolData.d.ts +1 -1
- package/lib/typescript/src/native/MaterialSymbolData.d.ts.map +1 -1
- package/lib/typescript/src/native/MaterialSymbolViewNativeComponent.d.ts +1 -1
- package/lib/typescript/src/native/MaterialSymbolViewNativeComponent.d.ts.map +1 -1
- package/lib/typescript/src/native/ReactNavigationCornerInsetViewNativeComponent.d.ts +2 -2
- package/lib/typescript/src/native/ReactNavigationCornerInsetViewNativeComponent.d.ts.map +1 -1
- package/lib/typescript/src/native/SFSymbol.d.ts +7 -2
- package/lib/typescript/src/native/SFSymbol.d.ts.map +1 -1
- package/lib/typescript/src/native/SFSymbol.ios.d.ts +8 -3
- package/lib/typescript/src/native/SFSymbol.ios.d.ts.map +1 -1
- package/lib/typescript/src/native/SFSymbolViewNativeComponent.d.ts +1 -1
- package/lib/typescript/src/native/SFSymbolViewNativeComponent.d.ts.map +1 -1
- package/lib/typescript/src/types.d.ts +14 -5
- package/lib/typescript/src/types.d.ts.map +1 -1
- package/lib/typescript/src/useLinkBuilder.d.ts.map +1 -1
- package/lib/typescript/src/useScrollToTop.d.ts +0 -2
- package/lib/typescript/src/useScrollToTop.d.ts.map +1 -1
- package/lib/typescript/src/useThenable.d.ts +1 -1
- package/lib/typescript/src/useThenable.d.ts.map +1 -1
- package/package.json +5 -4
- package/src/NavigationContainer.tsx +88 -26
- package/src/checkSerializable.tsx +246 -0
- package/src/getStateBreadcrumb.tsx +44 -0
- package/src/native/CornerInset.ios.tsx +1 -1
- package/src/native/CornerInset.tsx +6 -2
- package/src/native/MaterialSymbol.android.tsx +9 -4
- package/src/native/MaterialSymbol.tsx +7 -2
- package/src/native/MaterialSymbolData.tsx +11 -0
- package/src/native/MaterialSymbolViewNativeComponent.ts +1 -1
- package/src/native/ReactNavigationCornerInsetViewNativeComponent.ts +2 -4
- package/src/native/SFSymbol.ios.tsx +7 -4
- package/src/native/SFSymbol.tsx +7 -2
- package/src/native/SFSymbolViewNativeComponent.ts +1 -1
- package/src/types.tsx +14 -5
- package/src/useLinkBuilder.tsx +3 -18
- package/src/useScrollToTop.tsx +0 -7
- package/src/useThenable.tsx +9 -7
|
@@ -1227,6 +1227,7 @@ drive_fusiontable e678
|
|
|
1227
1227
|
drone f25a
|
|
1228
1228
|
drone_2 f259
|
|
1229
1229
|
dropdown e9a4
|
|
1230
|
+
dropdown_menu ffef0
|
|
1230
1231
|
dropper_eye f351
|
|
1231
1232
|
dry f1b3
|
|
1232
1233
|
dry_cleaning ea58
|
|
@@ -1383,6 +1384,7 @@ eyebrow eeb3
|
|
|
1383
1384
|
eyeglasses f6ee
|
|
1384
1385
|
eyeglasses_2 f2c7
|
|
1385
1386
|
eyeglasses_2_sound f265
|
|
1387
|
+
eyeglasses_3 ffef1
|
|
1386
1388
|
face f008
|
|
1387
1389
|
face_2 f8da
|
|
1388
1390
|
face_3 f8db
|
|
@@ -1854,6 +1856,7 @@ hide_source f023
|
|
|
1854
1856
|
high_chair f29a
|
|
1855
1857
|
high_density f79c
|
|
1856
1858
|
high_quality e024
|
|
1859
|
+
high_quality_off ffed6
|
|
1857
1860
|
high_res f54b
|
|
1858
1861
|
highlight e25f
|
|
1859
1862
|
highlight_alt ef52
|
|
@@ -2011,6 +2014,7 @@ jamboard_kiosk e9b5
|
|
|
2011
2014
|
japanese_curry f284
|
|
2012
2015
|
japanese_flag f283
|
|
2013
2016
|
javascript eb7c
|
|
2017
|
+
jewelry ffedb
|
|
2014
2018
|
join f84f
|
|
2015
2019
|
join_full f84f
|
|
2016
2020
|
join_inner eaf4
|
|
@@ -3096,6 +3100,7 @@ report_problem f083
|
|
|
3096
3100
|
request_page f22c
|
|
3097
3101
|
request_quote f1b6
|
|
3098
3102
|
reset_brightness f482
|
|
3103
|
+
reset_colors ffee2
|
|
3099
3104
|
reset_exposure f266
|
|
3100
3105
|
reset_focus f481
|
|
3101
3106
|
reset_image f824
|
|
@@ -3230,8 +3235,10 @@ seat_cool_left f331
|
|
|
3230
3235
|
seat_cool_right f330
|
|
3231
3236
|
seat_heat_left f32f
|
|
3232
3237
|
seat_heat_right f32e
|
|
3238
|
+
seat_read ffeda
|
|
3233
3239
|
seat_vent_left f32d
|
|
3234
3240
|
seat_vent_right f32c
|
|
3241
|
+
seat_window ffee1
|
|
3235
3242
|
security e32a
|
|
3236
3243
|
security_key f503
|
|
3237
3244
|
security_update f2cd
|
|
@@ -3305,6 +3312,7 @@ settings_phone e8c5
|
|
|
3305
3312
|
settings_photo_camera f834
|
|
3306
3313
|
settings_power e8c6
|
|
3307
3314
|
settings_remote e8c7
|
|
3315
|
+
settings_screen ffedf
|
|
3308
3316
|
settings_seating ef2d
|
|
3309
3317
|
settings_slow_motion f623
|
|
3310
3318
|
settings_suggest f05e
|
|
@@ -3373,6 +3381,7 @@ sick f220
|
|
|
3373
3381
|
side_navigation e9e2
|
|
3374
3382
|
sign_language ebe5
|
|
3375
3383
|
sign_language_2 f258
|
|
3384
|
+
sign_language_off ffee4
|
|
3376
3385
|
signal_cellular_0_bar f0a8
|
|
3377
3386
|
signal_cellular_1_bar f0a9
|
|
3378
3387
|
signal_cellular_2_bar f0aa
|
|
@@ -3406,6 +3415,7 @@ sim_card e32b
|
|
|
3406
3415
|
sim_card_alert f057
|
|
3407
3416
|
sim_card_download f068
|
|
3408
3417
|
simulation f3e1
|
|
3418
|
+
single_arrow ffed9
|
|
3409
3419
|
single_bed ea48
|
|
3410
3420
|
sip f069
|
|
3411
3421
|
siren f3a7
|
|
@@ -3442,6 +3452,7 @@ smoke_free eb4a
|
|
|
3442
3452
|
smoking_rooms eb4b
|
|
3443
3453
|
sms e625
|
|
3444
3454
|
sms_failed e87f
|
|
3455
|
+
snail ffede
|
|
3445
3456
|
snippet_folder f1c7
|
|
3446
3457
|
snooze e046
|
|
3447
3458
|
snowboarding e513
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1227,6 +1227,7 @@ drive_fusiontable e678
|
|
|
1227
1227
|
drone f25a
|
|
1228
1228
|
drone_2 f259
|
|
1229
1229
|
dropdown e9a4
|
|
1230
|
+
dropdown_menu ffef0
|
|
1230
1231
|
dropper_eye f351
|
|
1231
1232
|
dry f1b3
|
|
1232
1233
|
dry_cleaning ea58
|
|
@@ -1383,6 +1384,7 @@ eyebrow eeb3
|
|
|
1383
1384
|
eyeglasses f6ee
|
|
1384
1385
|
eyeglasses_2 f2c7
|
|
1385
1386
|
eyeglasses_2_sound f265
|
|
1387
|
+
eyeglasses_3 ffef1
|
|
1386
1388
|
face f008
|
|
1387
1389
|
face_2 f8da
|
|
1388
1390
|
face_3 f8db
|
|
@@ -1854,6 +1856,7 @@ hide_source f023
|
|
|
1854
1856
|
high_chair f29a
|
|
1855
1857
|
high_density f79c
|
|
1856
1858
|
high_quality e024
|
|
1859
|
+
high_quality_off ffed6
|
|
1857
1860
|
high_res f54b
|
|
1858
1861
|
highlight e25f
|
|
1859
1862
|
highlight_alt ef52
|
|
@@ -2011,6 +2014,7 @@ jamboard_kiosk e9b5
|
|
|
2011
2014
|
japanese_curry f284
|
|
2012
2015
|
japanese_flag f283
|
|
2013
2016
|
javascript eb7c
|
|
2017
|
+
jewelry ffedb
|
|
2014
2018
|
join f84f
|
|
2015
2019
|
join_full f84f
|
|
2016
2020
|
join_inner eaf4
|
|
@@ -3096,6 +3100,7 @@ report_problem f083
|
|
|
3096
3100
|
request_page f22c
|
|
3097
3101
|
request_quote f1b6
|
|
3098
3102
|
reset_brightness f482
|
|
3103
|
+
reset_colors ffee2
|
|
3099
3104
|
reset_exposure f266
|
|
3100
3105
|
reset_focus f481
|
|
3101
3106
|
reset_image f824
|
|
@@ -3230,8 +3235,10 @@ seat_cool_left f331
|
|
|
3230
3235
|
seat_cool_right f330
|
|
3231
3236
|
seat_heat_left f32f
|
|
3232
3237
|
seat_heat_right f32e
|
|
3238
|
+
seat_read ffeda
|
|
3233
3239
|
seat_vent_left f32d
|
|
3234
3240
|
seat_vent_right f32c
|
|
3241
|
+
seat_window ffee1
|
|
3235
3242
|
security e32a
|
|
3236
3243
|
security_key f503
|
|
3237
3244
|
security_update f2cd
|
|
@@ -3305,6 +3312,7 @@ settings_phone e8c5
|
|
|
3305
3312
|
settings_photo_camera f834
|
|
3306
3313
|
settings_power e8c6
|
|
3307
3314
|
settings_remote e8c7
|
|
3315
|
+
settings_screen ffedf
|
|
3308
3316
|
settings_seating ef2d
|
|
3309
3317
|
settings_slow_motion f623
|
|
3310
3318
|
settings_suggest f05e
|
|
@@ -3373,6 +3381,7 @@ sick f220
|
|
|
3373
3381
|
side_navigation e9e2
|
|
3374
3382
|
sign_language ebe5
|
|
3375
3383
|
sign_language_2 f258
|
|
3384
|
+
sign_language_off ffee4
|
|
3376
3385
|
signal_cellular_0_bar f0a8
|
|
3377
3386
|
signal_cellular_1_bar f0a9
|
|
3378
3387
|
signal_cellular_2_bar f0aa
|
|
@@ -3406,6 +3415,7 @@ sim_card e32b
|
|
|
3406
3415
|
sim_card_alert f057
|
|
3407
3416
|
sim_card_download f068
|
|
3408
3417
|
simulation f3e1
|
|
3418
|
+
single_arrow ffed9
|
|
3409
3419
|
single_bed ea48
|
|
3410
3420
|
sip f069
|
|
3411
3421
|
siren f3a7
|
|
@@ -3442,6 +3452,7 @@ smoke_free eb4a
|
|
|
3442
3452
|
smoking_rooms eb4b
|
|
3443
3453
|
sms e625
|
|
3444
3454
|
sms_failed e87f
|
|
3455
|
+
snail ffede
|
|
3445
3456
|
snippet_folder f1c7
|
|
3446
3457
|
snooze e046
|
|
3447
3458
|
snowboarding e513
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1227,6 +1227,7 @@ drive_fusiontable e678
|
|
|
1227
1227
|
drone f25a
|
|
1228
1228
|
drone_2 f259
|
|
1229
1229
|
dropdown e9a4
|
|
1230
|
+
dropdown_menu ffef0
|
|
1230
1231
|
dropper_eye f351
|
|
1231
1232
|
dry f1b3
|
|
1232
1233
|
dry_cleaning ea58
|
|
@@ -1383,6 +1384,7 @@ eyebrow eeb3
|
|
|
1383
1384
|
eyeglasses f6ee
|
|
1384
1385
|
eyeglasses_2 f2c7
|
|
1385
1386
|
eyeglasses_2_sound f265
|
|
1387
|
+
eyeglasses_3 ffef1
|
|
1386
1388
|
face f008
|
|
1387
1389
|
face_2 f8da
|
|
1388
1390
|
face_3 f8db
|
|
@@ -1854,6 +1856,7 @@ hide_source f023
|
|
|
1854
1856
|
high_chair f29a
|
|
1855
1857
|
high_density f79c
|
|
1856
1858
|
high_quality e024
|
|
1859
|
+
high_quality_off ffed6
|
|
1857
1860
|
high_res f54b
|
|
1858
1861
|
highlight e25f
|
|
1859
1862
|
highlight_alt ef52
|
|
@@ -2011,6 +2014,7 @@ jamboard_kiosk e9b5
|
|
|
2011
2014
|
japanese_curry f284
|
|
2012
2015
|
japanese_flag f283
|
|
2013
2016
|
javascript eb7c
|
|
2017
|
+
jewelry ffedb
|
|
2014
2018
|
join f84f
|
|
2015
2019
|
join_full f84f
|
|
2016
2020
|
join_inner eaf4
|
|
@@ -3096,6 +3100,7 @@ report_problem f083
|
|
|
3096
3100
|
request_page f22c
|
|
3097
3101
|
request_quote f1b6
|
|
3098
3102
|
reset_brightness f482
|
|
3103
|
+
reset_colors ffee2
|
|
3099
3104
|
reset_exposure f266
|
|
3100
3105
|
reset_focus f481
|
|
3101
3106
|
reset_image f824
|
|
@@ -3230,8 +3235,10 @@ seat_cool_left f331
|
|
|
3230
3235
|
seat_cool_right f330
|
|
3231
3236
|
seat_heat_left f32f
|
|
3232
3237
|
seat_heat_right f32e
|
|
3238
|
+
seat_read ffeda
|
|
3233
3239
|
seat_vent_left f32d
|
|
3234
3240
|
seat_vent_right f32c
|
|
3241
|
+
seat_window ffee1
|
|
3235
3242
|
security e32a
|
|
3236
3243
|
security_key f503
|
|
3237
3244
|
security_update f2cd
|
|
@@ -3305,6 +3312,7 @@ settings_phone e8c5
|
|
|
3305
3312
|
settings_photo_camera f834
|
|
3306
3313
|
settings_power e8c6
|
|
3307
3314
|
settings_remote e8c7
|
|
3315
|
+
settings_screen ffedf
|
|
3308
3316
|
settings_seating ef2d
|
|
3309
3317
|
settings_slow_motion f623
|
|
3310
3318
|
settings_suggest f05e
|
|
@@ -3373,6 +3381,7 @@ sick f220
|
|
|
3373
3381
|
side_navigation e9e2
|
|
3374
3382
|
sign_language ebe5
|
|
3375
3383
|
sign_language_2 f258
|
|
3384
|
+
sign_language_off ffee4
|
|
3376
3385
|
signal_cellular_0_bar f0a8
|
|
3377
3386
|
signal_cellular_1_bar f0a9
|
|
3378
3387
|
signal_cellular_2_bar f0aa
|
|
@@ -3406,6 +3415,7 @@ sim_card e32b
|
|
|
3406
3415
|
sim_card_alert f057
|
|
3407
3416
|
sim_card_download f068
|
|
3408
3417
|
simulation f3e1
|
|
3418
|
+
single_arrow ffed9
|
|
3409
3419
|
single_bed ea48
|
|
3410
3420
|
sip f069
|
|
3411
3421
|
siren f3a7
|
|
@@ -3442,6 +3452,7 @@ smoke_free eb4a
|
|
|
3442
3452
|
smoking_rooms eb4b
|
|
3443
3453
|
sms e625
|
|
3444
3454
|
sms_failed e87f
|
|
3455
|
+
snail ffede
|
|
3445
3456
|
snippet_folder f1c7
|
|
3446
3457
|
snooze e046
|
|
3447
3458
|
snowboarding e513
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -2,7 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
import { BaseNavigationContainer, getActionFromState, getPathFromState, getStateFromPath, ThemeProvider, validatePathConfig } from '@react-navigation/core';
|
|
4
4
|
import * as React from 'react';
|
|
5
|
+
import warnOnce from 'warn-once';
|
|
6
|
+
import { checkSerializable } from "./checkSerializable.js";
|
|
5
7
|
import { DEFAULT_DIRECTION, IS_NATIVE } from './constants';
|
|
8
|
+
import { getStateBreadcrumb } from "./getStateBreadcrumb.js";
|
|
6
9
|
import { LinkingContext } from "./LinkingContext.js";
|
|
7
10
|
import { LocaleDirContext } from "./LocaleDirContext.js";
|
|
8
11
|
import { LightTheme } from "./theming/LightTheme.js";
|
|
@@ -13,6 +16,9 @@ import { useThenable } from "./useThenable.js";
|
|
|
13
16
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
14
17
|
globalThis.REACT_NAVIGATION_DEVTOOLS = new WeakMap();
|
|
15
18
|
const RESTORE_STATE_ERROR = 'Failed to restore navigation state. The state will be initialized based on the navigation tree.';
|
|
19
|
+
const PARSE_STATE_ERROR = 'Failed to parse the restored navigation state. The state will be initialized based on the navigation tree.';
|
|
20
|
+
const PERSIST_STATE_ERROR = 'Failed to persist the navigation state.';
|
|
21
|
+
const STRINGIFY_STATE_ERROR = 'Failed to stringify the navigation state. The state will not be persisted.';
|
|
16
22
|
|
|
17
23
|
/**
|
|
18
24
|
* Container component that manages the navigation state.
|
|
@@ -86,29 +92,61 @@ export function NavigationContainer({
|
|
|
86
92
|
if (isPersistenceSupported === false || rest.initialState != null || persistor == null) {
|
|
87
93
|
return undefined;
|
|
88
94
|
}
|
|
89
|
-
|
|
95
|
+
const parse = serializedState => {
|
|
96
|
+
if (serializedState == null) {
|
|
97
|
+
return undefined;
|
|
98
|
+
}
|
|
99
|
+
try {
|
|
100
|
+
return persistor.parse ? persistor.parse(serializedState) : JSON.parse(serializedState);
|
|
101
|
+
} catch (e) {
|
|
102
|
+
console.error(PARSE_STATE_ERROR, e);
|
|
103
|
+
return undefined;
|
|
104
|
+
}
|
|
105
|
+
};
|
|
90
106
|
try {
|
|
91
|
-
|
|
107
|
+
const result = persistor.restore();
|
|
108
|
+
return result != null && typeof result === 'object' && 'then' in result ? result.then(parse, e => {
|
|
109
|
+
console.error(RESTORE_STATE_ERROR, e);
|
|
110
|
+
return undefined;
|
|
111
|
+
}) : parse(result);
|
|
92
112
|
} catch (e) {
|
|
93
113
|
console.error(RESTORE_STATE_ERROR, e);
|
|
94
114
|
return undefined;
|
|
95
115
|
}
|
|
96
|
-
|
|
97
|
-
|
|
116
|
+
});
|
|
117
|
+
const onPersistState = state => {
|
|
118
|
+
if (persistor == null) {
|
|
119
|
+
return;
|
|
98
120
|
}
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
121
|
+
let serializedState;
|
|
122
|
+
try {
|
|
123
|
+
serializedState = persistor.stringify ? persistor.stringify(state) : JSON.stringify(state);
|
|
124
|
+
} catch (e) {
|
|
125
|
+
console.error(STRINGIFY_STATE_ERROR, e);
|
|
126
|
+
return;
|
|
104
127
|
}
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
128
|
+
try {
|
|
129
|
+
const value = persistor.persist(serializedState);
|
|
130
|
+
if (value != null && typeof value === 'object' && 'then' in value) {
|
|
131
|
+
// eslint-disable-next-line promise/catch-or-return
|
|
132
|
+
value.then(undefined, e => {
|
|
133
|
+
console.error(PERSIST_STATE_ERROR, e);
|
|
134
|
+
});
|
|
108
135
|
}
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
|
|
136
|
+
} catch (e) {
|
|
137
|
+
console.error(PERSIST_STATE_ERROR, e);
|
|
138
|
+
}
|
|
139
|
+
};
|
|
140
|
+
const onSerializableCheck = state => {
|
|
141
|
+
if (process.env.NODE_ENV !== 'production' && state != null) {
|
|
142
|
+
const result = checkSerializable(state);
|
|
143
|
+
if (!result.serializable) {
|
|
144
|
+
const breadcrumb = getStateBreadcrumb(state, result.location);
|
|
145
|
+
const message = `Non-serializable values were found in the navigation state. Check:\n\n${breadcrumb} (${result.reason})\n\nThis can break usage such as persisting and restoring state. This might happen if you passed non-serializable values such as function, class instances etc. in params. If you need to use components with callbacks in your options, you can use 'navigation.setOptions' instead. See https://reactnavigation.org/docs/troubleshooting#i-get-the-warning-non-serializable-values-were-found-in-the-navigation-state for more details.`;
|
|
146
|
+
warnOnce(true, message);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
};
|
|
112
150
|
|
|
113
151
|
// FIXME
|
|
114
152
|
// @ts-expect-error not sure why this is not working
|
|
@@ -133,7 +171,8 @@ export function NavigationContainer({
|
|
|
133
171
|
initialState: rest.initialState ?? initialStateFromLink ?? initialStateFromPersisted,
|
|
134
172
|
onStateChange: state => {
|
|
135
173
|
onStateChange?.(state);
|
|
136
|
-
|
|
174
|
+
onPersistState(state);
|
|
175
|
+
onSerializableCheck(state);
|
|
137
176
|
},
|
|
138
177
|
ref: refContainer
|
|
139
178
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["BaseNavigationContainer","getActionFromState","getPathFromState","getStateFromPath","ThemeProvider","validatePathConfig","React","DEFAULT_DIRECTION","IS_NATIVE","LinkingContext","LocaleDirContext","LightTheme","useBackButton","useDocumentTitle","useLinking","useThenable","jsx","_jsx","globalThis","REACT_NAVIGATION_DEVTOOLS","WeakMap","RESTORE_STATE_ERROR","NavigationContainer","direction","theme","linking","persistor","fallback","documentTitle","onStateChange","ref","rest","refContainer","useRef","linkingConfig","useMemo","options","enabled","config","prefixes","getInitialState","useEffect","current","previous","get","listeners","Set","set","isLinkStateResolved","initialStateFromLink","initialState","undefined","isPersistenceSupported","isPersistedStateResolved","initialStateFromPersisted","
|
|
1
|
+
{"version":3,"names":["BaseNavigationContainer","getActionFromState","getPathFromState","getStateFromPath","ThemeProvider","validatePathConfig","React","warnOnce","checkSerializable","DEFAULT_DIRECTION","IS_NATIVE","getStateBreadcrumb","LinkingContext","LocaleDirContext","LightTheme","useBackButton","useDocumentTitle","useLinking","useThenable","jsx","_jsx","globalThis","REACT_NAVIGATION_DEVTOOLS","WeakMap","RESTORE_STATE_ERROR","PARSE_STATE_ERROR","PERSIST_STATE_ERROR","STRINGIFY_STATE_ERROR","NavigationContainer","direction","theme","linking","persistor","fallback","documentTitle","onStateChange","ref","rest","refContainer","useRef","linkingConfig","useMemo","options","enabled","config","prefixes","getInitialState","useEffect","current","previous","get","listeners","Set","set","isLinkStateResolved","initialStateFromLink","initialState","undefined","isPersistenceSupported","isPersistedStateResolved","initialStateFromPersisted","parse","serializedState","JSON","e","console","error","result","restore","then","onPersistState","state","stringify","value","persist","onSerializableCheck","process","env","NODE_ENV","serializable","breadcrumb","location","message","reason","useImperativeHandle","isStateReady","Provider","children"],"sourceRoot":"../../src","sources":["NavigationContainer.tsx"],"mappings":";;AAAA,SACEA,uBAAuB,EACvBC,kBAAkB,EAClBC,gBAAgB,EAChBC,gBAAgB,EAOhBC,aAAa,EACbC,kBAAkB,QACb,wBAAwB;AAC/B,OAAO,KAAKC,KAAK,MAAM,OAAO;AAC9B,OAAOC,QAAQ,MAAM,WAAW;AAEhC,SAASC,iBAAiB,QAAQ,wBAAqB;AACvD,SAASC,iBAAiB,EAAEC,SAAS,QAAQ,aAAa;AAC1D,SAASC,kBAAkB,QAAQ,yBAAsB;AACzD,SAASC,cAAc,QAAQ,qBAAkB;AACjD,SAASC,gBAAgB,QAAQ,uBAAoB;AACrD,SAASC,UAAU,QAAQ,yBAAsB;AAOjD,SAASC,aAAa,QAAQ,iBAAiB;AAC/C,SAASC,gBAAgB,QAAQ,oBAAoB;AACrD,SAASC,UAAU,QAAQ,cAAc;AACzC,SAAwBC,WAAW,QAAQ,kBAAe;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAkB3DC,UAAU,CAACC,yBAAyB,GAAG,IAAIC,OAAO,CAAC,CAAC;AAsEpD,MAAMC,mBAAmB,GACvB,iGAAiG;AAEnG,MAAMC,iBAAiB,GACrB,4GAA4G;AAE9G,MAAMC,mBAAmB,GAAG,yCAAyC;AAErE,MAAMC,qBAAqB,GACzB,4EAA4E;;AAE9E;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,mBAAmBA,CAAuC;EACxEC,SAAS,GAAGpB,iBAAiB;EAC7BqB,KAAK,GAAGhB,UAAU;EAClBiB,OAAO;EACPC,SAAS;EACTC,QAAQ,GAAG,IAAI;EACfC,aAAa;EACbC,aAAa;EACbC,GAAG;EACH,GAAGC;AACa,CAAC,EAAE;EACnB,MAAMC,YAAY,GAAGhC,KAAK,CAACiC,MAAM,CAAoC,IAAI,CAAC;EAE1ExB,aAAa,CAACuB,YAAY,CAAC;EAC3BtB,gBAAgB,CAACsB,YAAY,EAAEJ,aAAa,CAAC;EAE7C,MAAMM,aAAa,GAAGlC,KAAK,CAACmC,OAAO,CAAC,MAAM;IACxC,IAAIV,OAAO,IAAI,IAAI,EAAE;MACnB,OAAO;QACLW,OAAO,EAAE;UACPC,OAAO,EAAE;QACX;MACF,CAAC;IACH;IAEA,IAAIZ,OAAO,EAAEa,MAAM,EAAE;MACnBvC,kBAAkB,CAAC0B,OAAO,CAACa,MAAM,CAAC;IACpC;IAEA,OAAO;MACLF,OAAO,EAAE;QACP,GAAGX,OAAO;QACVY,OAAO,EAAEZ,OAAO,CAACY,OAAO,KAAK,KAAK;QAClCE,QAAQ,EAAEd,OAAO,CAACc,QAAQ,IAAI,CAAC,GAAG,CAAC;QACnC1C,gBAAgB,EAAE4B,OAAO,EAAE5B,gBAAgB,IAAIA,gBAAgB;QAC/DD,gBAAgB,EAAE6B,OAAO,EAAE7B,gBAAgB,IAAIA,gBAAgB;QAC/DD,kBAAkB,EAAE8B,OAAO,EAAE9B,kBAAkB,IAAIA;MACrD;IACF,CAAC;EACH,CAAC,EAAE,CAAC8B,OAAO,CAAC,CAAC;EAEb,MAAM;IAAEe;EAAgB,CAAC,GAAG7B,UAAU,CAACqB,YAAY,EAAEE,aAAa,CAACE,OAAO,CAAC;;EAE3E;EACA;EACApC,KAAK,CAACyC,SAAS,CAAC,MAAM;IACpB,IAAIT,YAAY,CAACU,OAAO,EAAE;MACxB,MAAMC,QAAQ,GAAG3B,yBAAyB,CAAC4B,GAAG,CAACZ,YAAY,CAACU,OAAO,CAAC;MACpE,MAAMG,SAAS,GAAGF,QAAQ,EAAEE,SAAS,IAAI,IAAIC,GAAG,CAAC,CAAC;MAElD9B,yBAAyB,CAAC+B,GAAG,CAACf,YAAY,CAACU,OAAO,EAAE;QAClD,IAAIjB,OAAOA,CAAA,EAAG;UACZ,OAAOS,aAAa,CAACE,OAAO;QAC9B,CAAC;QACD,IAAIS,SAASA,CAAA,EAAG;UACd,OAAOA,SAAS;QAClB;MACF,CAAC,CAAC;IACJ;EACF,CAAC,CAAC;EAEF,MAAM,CAACG,mBAAmB,EAAEC,oBAAoB,CAAC,GAAGrC,WAAW,CAAC,MAAM;IACpE,IAAImB,IAAI,CAACmB,YAAY,IAAI,IAAI,IAAI,CAAChB,aAAa,CAACE,OAAO,CAACC,OAAO,EAAE;MAC/D,OAAOc,SAAS;IAClB;IAEA,OAAOX,eAAe,CAAC,CAAC;EAC1B,CAAC,CAAC;EAEF,MAAMY,sBAAsB,GAAGhD,SAAS,IAAI,CAAC8B,aAAa,CAACE,OAAO,CAACC,OAAO;EAE1E,MAAM,CAACgB,wBAAwB,EAAEC,yBAAyB,CAAC,GAAG1C,WAAW,CACvE,MAAqE;IACnE,IACEwC,sBAAsB,KAAK,KAAK,IAChCrB,IAAI,CAACmB,YAAY,IAAI,IAAI,IACzBxB,SAAS,IAAI,IAAI,EACjB;MACA,OAAOyB,SAAS;IAClB;IAEA,MAAMI,KAAK,GACTC,eAAmC,IACN;MAC7B,IAAIA,eAAe,IAAI,IAAI,EAAE;QAC3B,OAAOL,SAAS;MAClB;MAEA,IAAI;QACF,OAAOzB,SAAS,CAAC6B,KAAK,GAClB7B,SAAS,CAAC6B,KAAK,CAACC,eAAe,CAAC,GAChCC,IAAI,CAACF,KAAK,CAACC,eAAe,CAAC;MACjC,CAAC,CAAC,OAAOE,CAAC,EAAE;QACVC,OAAO,CAACC,KAAK,CAACzC,iBAAiB,EAAEuC,CAAC,CAAC;QAEnC,OAAOP,SAAS;MAClB;IACF,CAAC;IAED,IAAI;MACF,MAAMU,MAAM,GAAGnC,SAAS,CAACoC,OAAO,CAAC,CAAC;MAElC,OAAOD,MAAM,IAAI,IAAI,IAAI,OAAOA,MAAM,KAAK,QAAQ,IAAI,MAAM,IAAIA,MAAM,GACnEA,MAAM,CAACE,IAAI,CAACR,KAAK,EAAGG,CAAC,IAAK;QACxBC,OAAO,CAACC,KAAK,CAAC1C,mBAAmB,EAAEwC,CAAC,CAAC;QAErC,OAAOP,SAAS;MAClB,CAAC,CAAC,GACFI,KAAK,CAACM,MAAM,CAAC;IACnB,CAAC,CAAC,OAAOH,CAAC,EAAE;MACVC,OAAO,CAACC,KAAK,CAAC1C,mBAAmB,EAAEwC,CAAC,CAAC;MAErC,OAAOP,SAAS;IAClB;EACF,CACF,CAAC;EAED,MAAMa,cAAc,GAAIC,KAA4C,IAAK;IACvE,IAAIvC,SAAS,IAAI,IAAI,EAAE;MACrB;IACF;IAEA,IAAI8B,eAAmC;IAEvC,IAAI;MACFA,eAAe,GAAG9B,SAAS,CAACwC,SAAS,GACjCxC,SAAS,CAACwC,SAAS,CAACD,KAAK,CAAC,GAC1BR,IAAI,CAACS,SAAS,CAACD,KAAK,CAAC;IAC3B,CAAC,CAAC,OAAOP,CAAC,EAAE;MACVC,OAAO,CAACC,KAAK,CAACvC,qBAAqB,EAAEqC,CAAC,CAAC;MAEvC;IACF;IAEA,IAAI;MACF,MAAMS,KAAK,GAAGzC,SAAS,CAAC0C,OAAO,CAACZ,eAAe,CAAC;MAEhD,IAAIW,KAAK,IAAI,IAAI,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAI,MAAM,IAAIA,KAAK,EAAE;QACjE;QACAA,KAAK,CAACJ,IAAI,CAACZ,SAAS,EAAGO,CAAC,IAAK;UAC3BC,OAAO,CAACC,KAAK,CAACxC,mBAAmB,EAAEsC,CAAC,CAAC;QACvC,CAAC,CAAC;MACJ;IACF,CAAC,CAAC,OAAOA,CAAC,EAAE;MACVC,OAAO,CAACC,KAAK,CAACxC,mBAAmB,EAAEsC,CAAC,CAAC;IACvC;EACF,CAAC;EAED,MAAMW,mBAAmB,GACvBJ,KAA4C,IACzC;IACH,IAAIK,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,IAAIP,KAAK,IAAI,IAAI,EAAE;MAC1D,MAAMJ,MAAM,GAAG3D,iBAAiB,CAAC+D,KAAK,CAAC;MAEvC,IAAI,CAACJ,MAAM,CAACY,YAAY,EAAE;QACxB,MAAMC,UAAU,GAAGrE,kBAAkB,CAAC4D,KAAK,EAAEJ,MAAM,CAACc,QAAQ,CAAC;QAE7D,MAAMC,OAAO,GAAG,yEAAyEF,UAAU,KAAKb,MAAM,CAACgB,MAAM,4aAA4a;QAEjiB5E,QAAQ,CAAC,IAAI,EAAE2E,OAAO,CAAC;MACzB;IACF;EACF,CAAC;;EAED;EACA;EACA5E,KAAK,CAAC8E,mBAAmB,CAAChD,GAAG,EAAE,MAAME,YAAY,CAACU,OAAO,CAAC;EAE1D,MAAMqC,YAAY,GAChBhD,IAAI,CAACmB,YAAY,IAAI,IAAI,IACxBF,mBAAmB,IAAIK,wBAAyB;EAEnD,IAAI,CAAC0B,YAAY,EAAE;IACjB,oBACEjE,IAAA,CAACP,gBAAgB,CAACyE,QAAQ;MAACb,KAAK,EAAE5C,SAAU;MAAA0D,QAAA,eAC1CnE,IAAA,CAAChB,aAAa;QAACqE,KAAK,EAAE3C,KAAM;QAAAyD,QAAA,EAAEtD;MAAQ,CAAgB;IAAC,CAC9B,CAAC;EAEhC;EAEA,oBACEb,IAAA,CAACP,gBAAgB,CAACyE,QAAQ;IAACb,KAAK,EAAE5C,SAAU;IAAA0D,QAAA,eAC1CnE,IAAA,CAACR,cAAc,CAAC0E,QAAQ;MAACb,KAAK,EAAEjC,aAAc;MAAA+C,QAAA,eAC5CnE,IAAA,CAACpB,uBAAuB;QAAA,GAClBqC,IAAI;QACRP,KAAK,EAAEA,KAAM;QACb0B,YAAY,EACVnB,IAAI,CAACmB,YAAY,IACjBD,oBAAoB,IACpBK,yBACD;QACDzB,aAAa,EAAGoC,KAAK,IAAK;UACxBpC,aAAa,GAAGoC,KAAK,CAAC;UACtBD,cAAc,CAACC,KAAK,CAAC;UACrBI,mBAAmB,CAACJ,KAAK,CAAC;QAC5B,CAAE;QACFnC,GAAG,EAAEE;MAAa,CACnB;IAAC,CACqB;EAAC,CACD,CAAC;AAEhC","ignoreList":[]}
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const SERIALIZABLE = {
|
|
4
|
+
serializable: true
|
|
5
|
+
};
|
|
6
|
+
const isPlainObject = o => {
|
|
7
|
+
const prototype = Object.getPrototypeOf(o);
|
|
8
|
+
return prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null;
|
|
9
|
+
};
|
|
10
|
+
const isSerializablePrimitive = o => typeof o === 'boolean' || typeof o === 'string' || typeof o === 'number' && Number.isFinite(o) && !Object.is(o, -0);
|
|
11
|
+
const checkValue = (o, ancestors) => {
|
|
12
|
+
switch (typeof o) {
|
|
13
|
+
case 'boolean':
|
|
14
|
+
case 'string':
|
|
15
|
+
return undefined;
|
|
16
|
+
case 'number':
|
|
17
|
+
if (Number.isFinite(o) && !Object.is(o, -0)) {
|
|
18
|
+
return undefined;
|
|
19
|
+
}
|
|
20
|
+
return {
|
|
21
|
+
serializable: false,
|
|
22
|
+
location: [],
|
|
23
|
+
reason: Object.is(o, -0) ? 'Negative zero' : String(o)
|
|
24
|
+
};
|
|
25
|
+
case 'function':
|
|
26
|
+
return {
|
|
27
|
+
serializable: false,
|
|
28
|
+
location: [],
|
|
29
|
+
reason: 'Function'
|
|
30
|
+
};
|
|
31
|
+
case 'bigint':
|
|
32
|
+
return {
|
|
33
|
+
serializable: false,
|
|
34
|
+
location: [],
|
|
35
|
+
reason: 'BigInt'
|
|
36
|
+
};
|
|
37
|
+
case 'undefined':
|
|
38
|
+
return {
|
|
39
|
+
serializable: false,
|
|
40
|
+
location: [],
|
|
41
|
+
reason: 'Undefined'
|
|
42
|
+
};
|
|
43
|
+
case 'object':
|
|
44
|
+
if (o === null) {
|
|
45
|
+
return undefined;
|
|
46
|
+
}
|
|
47
|
+
break;
|
|
48
|
+
default:
|
|
49
|
+
return {
|
|
50
|
+
serializable: false,
|
|
51
|
+
location: [],
|
|
52
|
+
reason: String(o)
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
const isArray = Array.isArray(o);
|
|
56
|
+
const isPlainArray = isArray && (Object.getPrototypeOf(o) === Array.prototype || Array.isArray(Object.getPrototypeOf(o)));
|
|
57
|
+
if (isArray && !isPlainArray || !isArray && !isPlainObject(o)) {
|
|
58
|
+
const objectType = Object.prototype.toString.call(o).slice(8, -1);
|
|
59
|
+
let reason = objectType;
|
|
60
|
+
if (isArray) {
|
|
61
|
+
reason = 'Array subclass';
|
|
62
|
+
} else if (objectType === 'Object') {
|
|
63
|
+
reason = 'Object with a custom prototype';
|
|
64
|
+
}
|
|
65
|
+
return {
|
|
66
|
+
serializable: false,
|
|
67
|
+
location: [],
|
|
68
|
+
reason
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
if (ancestors.includes(o)) {
|
|
72
|
+
return {
|
|
73
|
+
serializable: false,
|
|
74
|
+
reason: 'Circular reference',
|
|
75
|
+
location: []
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
ancestors.push(o);
|
|
79
|
+
if (isArray) {
|
|
80
|
+
const keys = Object.keys(o);
|
|
81
|
+
const isClean = keys.length === o.length && (o.length === 0 || keys[o.length - 1] === String(o.length - 1));
|
|
82
|
+
if (isClean) {
|
|
83
|
+
const symbols = Object.getOwnPropertySymbols(o);
|
|
84
|
+
if (symbols.length > 0) {
|
|
85
|
+
return {
|
|
86
|
+
serializable: false,
|
|
87
|
+
location: [String(symbols[0])],
|
|
88
|
+
reason: 'Extra array property'
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
} else {
|
|
92
|
+
const names = Object.getOwnPropertyNames(o);
|
|
93
|
+
const symbols = Object.getOwnPropertySymbols(o);
|
|
94
|
+
if (names.length + symbols.length > o.length + 1) {
|
|
95
|
+
for (const key of names) {
|
|
96
|
+
if (key === 'length') {
|
|
97
|
+
continue;
|
|
98
|
+
}
|
|
99
|
+
const index = Number(key);
|
|
100
|
+
if (!Number.isInteger(index) || index < 0 || index >= o.length || String(index) !== key) {
|
|
101
|
+
return {
|
|
102
|
+
serializable: false,
|
|
103
|
+
location: [key],
|
|
104
|
+
reason: 'Extra array property'
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
if (symbols.length > 0) {
|
|
109
|
+
return {
|
|
110
|
+
serializable: false,
|
|
111
|
+
location: [String(symbols[0])],
|
|
112
|
+
reason: 'Extra array property'
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
for (let i = 0; i < o.length; i++) {
|
|
118
|
+
if (!isClean && !Object.hasOwn(o, i)) {
|
|
119
|
+
return {
|
|
120
|
+
serializable: false,
|
|
121
|
+
location: [i],
|
|
122
|
+
reason: 'Sparse array'
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
const value = o[i];
|
|
126
|
+
if (value === null || isSerializablePrimitive(value)) {
|
|
127
|
+
continue;
|
|
128
|
+
}
|
|
129
|
+
const childResult = checkValue(value, ancestors);
|
|
130
|
+
if (childResult) {
|
|
131
|
+
childResult.location.push(i);
|
|
132
|
+
return childResult;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
} else {
|
|
136
|
+
const keys = Object.keys(o);
|
|
137
|
+
const names = Object.getOwnPropertyNames(o);
|
|
138
|
+
if (keys.length !== names.length) {
|
|
139
|
+
for (const key of names) {
|
|
140
|
+
if (!Object.prototype.propertyIsEnumerable.call(o, key)) {
|
|
141
|
+
return {
|
|
142
|
+
serializable: false,
|
|
143
|
+
location: [key],
|
|
144
|
+
reason: 'Non-enumerable property'
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
const symbols = Object.getOwnPropertySymbols(o);
|
|
150
|
+
if (symbols.length > 0) {
|
|
151
|
+
return {
|
|
152
|
+
serializable: false,
|
|
153
|
+
location: [String(symbols[0])],
|
|
154
|
+
reason: 'Symbol key'
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
for (const key of keys) {
|
|
158
|
+
const value = o[key];
|
|
159
|
+
if (value == null || isSerializablePrimitive(value)) {
|
|
160
|
+
continue;
|
|
161
|
+
}
|
|
162
|
+
const childResult = checkValue(value, ancestors);
|
|
163
|
+
if (childResult) {
|
|
164
|
+
childResult.location.push(key);
|
|
165
|
+
return childResult;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
ancestors.pop();
|
|
170
|
+
return undefined;
|
|
171
|
+
};
|
|
172
|
+
export function checkSerializable(o) {
|
|
173
|
+
const result = checkValue(o, []);
|
|
174
|
+
if (!result) {
|
|
175
|
+
return SERIALIZABLE;
|
|
176
|
+
}
|
|
177
|
+
result.location.reverse();
|
|
178
|
+
return result;
|
|
179
|
+
}
|
|
180
|
+
//# sourceMappingURL=checkSerializable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["SERIALIZABLE","serializable","isPlainObject","o","prototype","Object","getPrototypeOf","isSerializablePrimitive","Number","isFinite","is","checkValue","ancestors","undefined","location","reason","String","isArray","Array","isPlainArray","objectType","toString","call","slice","includes","push","keys","isClean","length","symbols","getOwnPropertySymbols","names","getOwnPropertyNames","key","index","isInteger","i","hasOwn","value","childResult","propertyIsEnumerable","pop","checkSerializable","result","reverse"],"sourceRoot":"../../src","sources":["checkSerializable.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
export function getStateBreadcrumb(state, location) {
|
|
4
|
+
let breadcrumb = '';
|
|
5
|
+
let pointer = state;
|
|
6
|
+
let params = false;
|
|
7
|
+
for (let i = 0; i < location.length; i++) {
|
|
8
|
+
const curr = location[i];
|
|
9
|
+
const prev = location[i - 1];
|
|
10
|
+
if (curr == null) {
|
|
11
|
+
continue;
|
|
12
|
+
}
|
|
13
|
+
pointer = pointer[curr];
|
|
14
|
+
if (!params && curr === 'state') {
|
|
15
|
+
continue;
|
|
16
|
+
} else if (!params && curr === 'routes') {
|
|
17
|
+
if (breadcrumb) {
|
|
18
|
+
breadcrumb += ' > ';
|
|
19
|
+
}
|
|
20
|
+
} else if (!params && typeof curr === 'number' && prev === 'routes') {
|
|
21
|
+
breadcrumb += pointer?.name;
|
|
22
|
+
} else if (!params) {
|
|
23
|
+
breadcrumb += ` > ${curr}`;
|
|
24
|
+
params = true;
|
|
25
|
+
} else {
|
|
26
|
+
if (typeof curr === 'number' || /^[0-9]+$/.test(curr)) {
|
|
27
|
+
breadcrumb += `[${curr}]`;
|
|
28
|
+
} else if (/^[a-z$_]+$/i.test(curr)) {
|
|
29
|
+
breadcrumb += `.${curr}`;
|
|
30
|
+
} else {
|
|
31
|
+
breadcrumb += `[${JSON.stringify(curr)}]`;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return breadcrumb;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=getStateBreadcrumb.js.map
|