@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.
Files changed (95) hide show
  1. package/assets/fonts/MaterialSymbolsOutlined.codepoints +11 -0
  2. package/assets/fonts/MaterialSymbolsOutlined_100.ttf +0 -0
  3. package/assets/fonts/MaterialSymbolsOutlined_200.ttf +0 -0
  4. package/assets/fonts/MaterialSymbolsOutlined_300.ttf +0 -0
  5. package/assets/fonts/MaterialSymbolsOutlined_400.ttf +0 -0
  6. package/assets/fonts/MaterialSymbolsOutlined_500.ttf +0 -0
  7. package/assets/fonts/MaterialSymbolsOutlined_600.ttf +0 -0
  8. package/assets/fonts/MaterialSymbolsOutlined_700.ttf +0 -0
  9. package/assets/fonts/MaterialSymbolsRounded.codepoints +11 -0
  10. package/assets/fonts/MaterialSymbolsRounded_100.ttf +0 -0
  11. package/assets/fonts/MaterialSymbolsRounded_200.ttf +0 -0
  12. package/assets/fonts/MaterialSymbolsRounded_300.ttf +0 -0
  13. package/assets/fonts/MaterialSymbolsRounded_400.ttf +0 -0
  14. package/assets/fonts/MaterialSymbolsRounded_500.ttf +0 -0
  15. package/assets/fonts/MaterialSymbolsRounded_600.ttf +0 -0
  16. package/assets/fonts/MaterialSymbolsRounded_700.ttf +0 -0
  17. package/assets/fonts/MaterialSymbolsSharp.codepoints +11 -0
  18. package/assets/fonts/MaterialSymbolsSharp_100.ttf +0 -0
  19. package/assets/fonts/MaterialSymbolsSharp_200.ttf +0 -0
  20. package/assets/fonts/MaterialSymbolsSharp_300.ttf +0 -0
  21. package/assets/fonts/MaterialSymbolsSharp_400.ttf +0 -0
  22. package/assets/fonts/MaterialSymbolsSharp_500.ttf +0 -0
  23. package/assets/fonts/MaterialSymbolsSharp_600.ttf +0 -0
  24. package/assets/fonts/MaterialSymbolsSharp_700.ttf +0 -0
  25. package/lib/module/NavigationContainer.js +55 -16
  26. package/lib/module/NavigationContainer.js.map +1 -1
  27. package/lib/module/checkSerializable.js +180 -0
  28. package/lib/module/checkSerializable.js.map +1 -0
  29. package/lib/module/getStateBreadcrumb.js +37 -0
  30. package/lib/module/getStateBreadcrumb.js.map +1 -0
  31. package/lib/module/native/CornerInset.js.map +1 -1
  32. package/lib/module/native/MaterialSymbol.android.js +4 -4
  33. package/lib/module/native/MaterialSymbol.android.js.map +1 -1
  34. package/lib/module/native/MaterialSymbol.js.map +1 -1
  35. package/lib/module/native/MaterialSymbolViewNativeComponent.ts +1 -1
  36. package/lib/module/native/ReactNavigationCornerInsetViewNativeComponent.ts +2 -4
  37. package/lib/module/native/SFSymbol.ios.js +2 -4
  38. package/lib/module/native/SFSymbol.ios.js.map +1 -1
  39. package/lib/module/native/SFSymbol.js.map +1 -1
  40. package/lib/module/native/SFSymbolViewNativeComponent.ts +1 -1
  41. package/lib/module/useLinkBuilder.js +3 -11
  42. package/lib/module/useLinkBuilder.js.map +1 -1
  43. package/lib/module/useScrollToTop.js +0 -6
  44. package/lib/module/useScrollToTop.js.map +1 -1
  45. package/lib/module/useThenable.js +8 -6
  46. package/lib/module/useThenable.js.map +1 -1
  47. package/lib/typescript/src/NavigationContainer.d.ts +6 -2
  48. package/lib/typescript/src/NavigationContainer.d.ts.map +1 -1
  49. package/lib/typescript/src/checkSerializable.d.ts +12 -0
  50. package/lib/typescript/src/checkSerializable.d.ts.map +1 -0
  51. package/lib/typescript/src/getStateBreadcrumb.d.ts +3 -0
  52. package/lib/typescript/src/getStateBreadcrumb.d.ts.map +1 -0
  53. package/lib/typescript/src/native/CornerInset.d.ts +6 -2
  54. package/lib/typescript/src/native/CornerInset.d.ts.map +1 -1
  55. package/lib/typescript/src/native/MaterialSymbol.android.d.ts +8 -3
  56. package/lib/typescript/src/native/MaterialSymbol.android.d.ts.map +1 -1
  57. package/lib/typescript/src/native/MaterialSymbol.d.ts +7 -2
  58. package/lib/typescript/src/native/MaterialSymbol.d.ts.map +1 -1
  59. package/lib/typescript/src/native/MaterialSymbolData.d.ts +1 -1
  60. package/lib/typescript/src/native/MaterialSymbolData.d.ts.map +1 -1
  61. package/lib/typescript/src/native/MaterialSymbolViewNativeComponent.d.ts +1 -1
  62. package/lib/typescript/src/native/MaterialSymbolViewNativeComponent.d.ts.map +1 -1
  63. package/lib/typescript/src/native/ReactNavigationCornerInsetViewNativeComponent.d.ts +2 -2
  64. package/lib/typescript/src/native/ReactNavigationCornerInsetViewNativeComponent.d.ts.map +1 -1
  65. package/lib/typescript/src/native/SFSymbol.d.ts +7 -2
  66. package/lib/typescript/src/native/SFSymbol.d.ts.map +1 -1
  67. package/lib/typescript/src/native/SFSymbol.ios.d.ts +8 -3
  68. package/lib/typescript/src/native/SFSymbol.ios.d.ts.map +1 -1
  69. package/lib/typescript/src/native/SFSymbolViewNativeComponent.d.ts +1 -1
  70. package/lib/typescript/src/native/SFSymbolViewNativeComponent.d.ts.map +1 -1
  71. package/lib/typescript/src/types.d.ts +14 -5
  72. package/lib/typescript/src/types.d.ts.map +1 -1
  73. package/lib/typescript/src/useLinkBuilder.d.ts.map +1 -1
  74. package/lib/typescript/src/useScrollToTop.d.ts +0 -2
  75. package/lib/typescript/src/useScrollToTop.d.ts.map +1 -1
  76. package/lib/typescript/src/useThenable.d.ts +1 -1
  77. package/lib/typescript/src/useThenable.d.ts.map +1 -1
  78. package/package.json +5 -4
  79. package/src/NavigationContainer.tsx +88 -26
  80. package/src/checkSerializable.tsx +246 -0
  81. package/src/getStateBreadcrumb.tsx +44 -0
  82. package/src/native/CornerInset.ios.tsx +1 -1
  83. package/src/native/CornerInset.tsx +6 -2
  84. package/src/native/MaterialSymbol.android.tsx +9 -4
  85. package/src/native/MaterialSymbol.tsx +7 -2
  86. package/src/native/MaterialSymbolData.tsx +11 -0
  87. package/src/native/MaterialSymbolViewNativeComponent.ts +1 -1
  88. package/src/native/ReactNavigationCornerInsetViewNativeComponent.ts +2 -4
  89. package/src/native/SFSymbol.ios.tsx +7 -4
  90. package/src/native/SFSymbol.tsx +7 -2
  91. package/src/native/SFSymbolViewNativeComponent.ts +1 -1
  92. package/src/types.tsx +14 -5
  93. package/src/useLinkBuilder.tsx +3 -18
  94. package/src/useScrollToTop.tsx +0 -7
  95. 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
@@ -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
@@ -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
@@ -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
- let restoredState;
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
- restoredState = persistor.restore();
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
- if (restoredState == null) {
97
- return undefined;
116
+ });
117
+ const onPersistState = state => {
118
+ if (persistor == null) {
119
+ return;
98
120
  }
99
- if ('then' in restoredState) {
100
- return restoredState.then(state => state, error => {
101
- console.error(RESTORE_STATE_ERROR, error);
102
- return undefined;
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
- const thenable = {
106
- then(onfulfilled) {
107
- return Promise.resolve(onfulfilled ? onfulfilled(restoredState) : restoredState);
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
- return thenable;
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
- persistor?.persist(state);
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","restoredState","restore","e","console","error","then","state","thenable","onfulfilled","Promise","resolve","useImperativeHandle","isStateReady","Provider","value","children","persist"],"sourceRoot":"../../src","sources":["NavigationContainer.tsx"],"mappings":"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","ignoreList":[]}
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":"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","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