@apexnative/navigation 1.0.0-alpha.4 → 1.0.0-alpha.5

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 (77) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/android/CLAUDE.md +9 -2
  3. package/android/CORE.md +25 -15
  4. package/android/src/main/java/dev/apexnative/navigation/NavigationActivity.kt +25 -9
  5. package/android/src/main/java/dev/apexnative/navigation/options/AnimationsOptions.kt +2 -2
  6. package/android/src/main/java/dev/apexnative/navigation/options/HardwareBackButtonOptions.kt +9 -1
  7. package/android/src/main/java/dev/apexnative/navigation/options/StackAnimationOptions.kt +40 -2
  8. package/android/src/main/java/dev/apexnative/navigation/react/ArrangementStates.kt +6 -6
  9. package/android/src/main/java/dev/apexnative/navigation/react/CommandAnswer.kt +28 -13
  10. package/android/src/main/java/dev/apexnative/navigation/react/Hinge.kt +7 -4
  11. package/android/src/main/java/dev/apexnative/navigation/react/ReactView.kt +39 -20
  12. package/android/src/main/java/dev/apexnative/navigation/react/ReloadCoordinator.kt +7 -4
  13. package/android/src/main/java/dev/apexnative/navigation/react/ScreenInsets.kt +6 -6
  14. package/android/src/main/java/dev/apexnative/navigation/react/ScreenRegions.kt +10 -5
  15. package/android/src/main/java/dev/apexnative/navigation/react/events/AppearanceDispatcher.kt +30 -39
  16. package/android/src/main/java/dev/apexnative/navigation/react/events/EventEmitter.kt +34 -7
  17. package/android/src/main/java/dev/apexnative/navigation/react/events/NavigationState.kt +154 -0
  18. package/android/src/main/java/dev/apexnative/navigation/safearea/SafeAreaView.kt +6 -4
  19. package/android/src/main/java/dev/apexnative/navigation/slots/SlotScreenView.kt +12 -12
  20. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/arrangement/ArrangementController.kt +3 -2
  21. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/bottomtabs/BottomTabsController.kt +9 -11
  22. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/component/ComponentViewController.kt +6 -2
  23. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/component/ContentReadiness.kt +1 -1
  24. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/component/ScreenReadiness.kt +103 -56
  25. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/navigator/BackCallbackCheck.kt +50 -0
  26. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/navigator/BackCallbackState.kt +45 -14
  27. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/navigator/Navigator.kt +21 -5
  28. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/navigator/RootCoordinator.kt +2 -2
  29. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/splitview/SplitViewController.kt +3 -0
  30. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/StackController.kt +9 -5
  31. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/search/ScreenSearch.kt +3 -5
  32. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/search/StackSearchPresenter.kt +2 -5
  33. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/topbar/BarComponents.kt +5 -51
  34. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/topbar/TopBarPresenter.kt +4 -9
  35. package/android/src/main/java/dev/apexnative/navigation/views/bottomtabs/CustomBottomTabItemView.kt +0 -5
  36. package/cli/doctor/checks/splash.js +4 -22
  37. package/cli/splash/index.js +3 -1
  38. package/docs-md/containers/modals.md +2 -2
  39. package/docs-md/guides/cli.md +1 -2
  40. package/docs-md/help/troubleshooting.md +2 -2
  41. package/docs-md/screen-ui/back-and-gestures.md +22 -0
  42. package/docs-md/start/installation.md +1 -1
  43. package/ios/CORE.md +6 -6
  44. package/ios/Contract/ANNCommandAnswer.h +9 -2
  45. package/ios/Contract/ANNCommandAnswer.mm +25 -12
  46. package/ios/Core/ANNAppearanceDispatcher.h +5 -4
  47. package/ios/Core/ANNAppearanceDispatcher.mm +12 -1
  48. package/ios/Core/ANNNavigationState.h +4 -6
  49. package/ios/Core/ANNNavigationState.mm +0 -4
  50. package/ios/Layouts/Root/ANNSplashViewController.h +5 -3
  51. package/ios/Layouts/Root/ANNSplashViewController.mm +147 -0
  52. package/ios/Layouts/Stack/ANNPreviewPush.h +5 -5
  53. package/ios/Layouts/Stack/ANNPreviewPush.mm +85 -22
  54. package/lib/module/api/commands/commands.js +54 -6
  55. package/lib/module/api/commands/commands.js.map +1 -1
  56. package/lib/module/engine/places.js +8 -0
  57. package/lib/module/engine/places.js.map +1 -1
  58. package/lib/typescript/api/commands/commands.d.ts.map +1 -1
  59. package/lib/typescript/api/commands/presentation.d.ts +4 -3
  60. package/lib/typescript/api/commands/presentation.d.ts.map +1 -1
  61. package/lib/typescript/engine/places.d.ts +2 -0
  62. package/lib/typescript/engine/places.d.ts.map +1 -1
  63. package/lib/typescript/interfaces/Options.d.ts +1 -1
  64. package/lib/typescript/interfaces/Options.d.ts.map +1 -1
  65. package/lib/typescript/interfaces/options/animations.d.ts +18 -2
  66. package/lib/typescript/interfaces/options/animations.d.ts.map +1 -1
  67. package/lib/typescript/interfaces/options/stack.d.ts +9 -0
  68. package/lib/typescript/interfaces/options/stack.d.ts.map +1 -1
  69. package/package.json +1 -1
  70. package/src/api/commands/commands.ts +48 -7
  71. package/src/api/commands/presentation.ts +4 -3
  72. package/src/engine/places.ts +9 -0
  73. package/src/interfaces/Options.ts +1 -0
  74. package/src/interfaces/options/animations.ts +19 -2
  75. package/src/interfaces/options/stack.ts +9 -0
  76. package/android/src/main/java/dev/apexnative/navigation/react/events/NavigationStateReporter.kt +0 -62
  77. package/android/src/main/java/dev/apexnative/navigation/react/events/StateHold.kt +0 -62
@@ -34,9 +34,63 @@ static NSArray<NSString *> *ANNLegacyLaunchImageNames(CGFloat height) {
34
34
  return names;
35
35
  }
36
36
 
37
+ static NSDictionary *ANNDictionaryOrNil(id value) {
38
+ return [value isKindOfClass:NSDictionary.class] ? value : nil;
39
+ }
40
+
41
+ static NSString *ANNStringOrNil(id value) {
42
+ return [value isKindOfClass:NSString.class] && [value length] > 0 ? value : nil;
43
+ }
44
+
45
+ // The definition that a plural key (`UILaunchScreens`, `UILaunchStoryboards`) marks as its default.
46
+ static NSDictionary *ANNDefaultDefinition(id plural, NSString *definitionsKey,
47
+ NSString *identifierKey, NSString *defaultKey) {
48
+ NSDictionary *dictionary = ANNDictionaryOrNil(plural);
49
+ NSArray *definitions = dictionary[definitionsKey];
50
+ NSString *defaultIdentifier = ANNStringOrNil(dictionary[defaultKey]);
51
+ if (![definitions isKindOfClass:NSArray.class] || !defaultIdentifier) {
52
+ return nil;
53
+ }
54
+ for (id definition in definitions) {
55
+ NSDictionary *entry = ANNDictionaryOrNil(definition);
56
+ if ([entry[identifierKey] isEqual:defaultIdentifier]) {
57
+ return entry;
58
+ }
59
+ }
60
+ return nil;
61
+ }
62
+
63
+ // The launch screen that iOS builds from the Info.plist without a storyboard, or nil when it shows a storyboard. Of
64
+ // `UILaunchStoryboardName`, `UILaunchScreen`, the default of `UILaunchStoryboards` and the default of
65
+ // `UILaunchScreens`, the last one present wins (SplashBoard's `XBApplicationLaunchCompatibilityInfo`). A launch by a
66
+ // link that `UILaunchScreens` maps to a screen of its own still gets the default here.
67
+ static NSDictionary *ANNLaunchScreenConfiguration(NSBundle *bundle) {
68
+ NSDictionary *screen =
69
+ ANNDefaultDefinition([bundle objectForInfoDictionaryKey:@"UILaunchScreens"],
70
+ @"UILaunchScreenDefinitions", @"UILaunchScreenIdentifier",
71
+ @"UIDefaultLaunchScreen");
72
+ if (screen) {
73
+ return screen;
74
+ }
75
+ if (ANNDefaultDefinition([bundle objectForInfoDictionaryKey:@"UILaunchStoryboards"],
76
+ @"UILaunchStoryboardDefinitions", @"UILaunchStoryboardIdentifier",
77
+ @"UIDefaultLaunchStoryboard")) {
78
+ return nil;
79
+ }
80
+ return ANNDictionaryOrNil([bundle objectForInfoDictionaryKey:@"UILaunchScreen"]);
81
+ }
82
+
37
83
  @implementation ANNSplashViewController {
38
84
  UIViewController *_content;
39
85
  UIView *_contentView;
86
+ NSDictionary *_launchScreen;
87
+ // The parts of a launch screen built from `UILaunchScreen`, laid out once the safe area is known.
88
+ UIImageView *_imageView;
89
+ BOOL _imageRespectsSafeArea;
90
+ UINavigationBar *_navigationBar;
91
+ UIImageView *_navigationBarImageView;
92
+ UIView *_bottomBar;
93
+ UIImageView *_bottomBarImageView;
40
94
  }
41
95
 
42
96
  - (instancetype)initWithContent:(UIViewController *)content
@@ -52,6 +106,12 @@ static NSArray<NSString *> *ANNLegacyLaunchImageNames(CGFloat height) {
52
106
 
53
107
  + (instancetype)launchScreenCopyWithBounds:(CGRect)bounds {
54
108
  NSBundle *bundle = NSBundle.mainBundle;
109
+ NSDictionary *launchScreen = ANNLaunchScreenConfiguration(bundle);
110
+ if (launchScreen) {
111
+ ANNSplashViewController *copy = [[self alloc] initWithContent:nil contentView:nil blank:NO];
112
+ copy->_launchScreen = launchScreen;
113
+ return copy;
114
+ }
55
115
  NSString *storyboardName = [bundle objectForInfoDictionaryKey:@"UILaunchStoryboardName"];
56
116
  if ([storyboardName isKindOfClass:NSString.class] && storyboardName.length > 0) {
57
117
  UIViewController *initial = nil;
@@ -97,6 +157,10 @@ static NSArray<NSString *> *ANNLegacyLaunchImageNames(CGFloat height) {
97
157
  view.backgroundColor = windowHasColor ? UIColor.clearColor : UIColor.systemBackgroundColor;
98
158
  return;
99
159
  }
160
+ if (_launchScreen) {
161
+ [self buildLaunchScreen];
162
+ return;
163
+ }
100
164
  UIView *contentView = _contentView;
101
165
  if (_content) {
102
166
  [self addChildViewController:_content];
@@ -109,6 +173,89 @@ static NSArray<NSString *> *ANNLegacyLaunchImageNames(CGFloat height) {
109
173
  [_content didMoveToParentViewController:self];
110
174
  }
111
175
 
176
+ #pragma mark - The launch screen of `UILaunchScreen`
177
+
178
+ // Built as SplashBoard builds it: the named color over the whole screen, else the system background; the named image
179
+ // at its own size in the middle of the screen or of its safe area, stretched instead when the asset has slicing; a tab
180
+ // bar or a toolbar at the bottom and a navigation bar at the top, the system's own bars, or the bar's named image
181
+ // stretched over the bar's place. A name the asset catalog doesn't have leaves its part out, as iOS does.
182
+ - (void)buildLaunchScreen {
183
+ UIView *view = self.view;
184
+ NSString *colorName = ANNStringOrNil(_launchScreen[@"UIColorName"]);
185
+ UIColor *color = colorName ? [UIColor colorNamed:colorName] : nil;
186
+ view.backgroundColor = color ?: UIColor.systemBackgroundColor;
187
+
188
+ NSString *imageName = ANNStringOrNil(_launchScreen[@"UIImageName"]);
189
+ UIImage *image = imageName ? [UIImage imageNamed:imageName] : nil;
190
+ if (image) {
191
+ _imageView = [[UIImageView alloc] initWithImage:image];
192
+ _imageView.contentMode = UIEdgeInsetsEqualToEdgeInsets(image.capInsets, UIEdgeInsetsZero)
193
+ ? UIViewContentModeCenter
194
+ : UIViewContentModeScaleToFill;
195
+ id respects = _launchScreen[@"UIImageRespectsSafeAreaInsets"];
196
+ _imageRespectsSafeArea = [respects respondsToSelector:@selector(boolValue)] &&
197
+ [respects boolValue];
198
+ [view addSubview:_imageView];
199
+ }
200
+
201
+ // A toolbar takes the bottom before a tab bar; a navigation bar comes on top of either.
202
+ id toolbar = _launchScreen[@"UIToolbar"];
203
+ id tabBar = _launchScreen[@"UITabBar"];
204
+ if (toolbar || tabBar) {
205
+ _bottomBar = toolbar ? [UIToolbar new] : [UITabBar new];
206
+ _bottomBarImageView = [self addBar:_bottomBar configuration:toolbar ?: tabBar];
207
+ }
208
+ id navigationBar = _launchScreen[@"UINavigationBar"];
209
+ if (navigationBar) {
210
+ _navigationBar = [UINavigationBar new];
211
+ _navigationBarImageView = [self addBar:_navigationBar configuration:navigationBar];
212
+ }
213
+ }
214
+
215
+ // Adds the bar, or its image in its place when its configuration names one that loads.
216
+ - (UIImageView *)addBar:(UIView *)bar configuration:(id)configuration {
217
+ NSString *name = ANNStringOrNil(ANNDictionaryOrNil(configuration)[@"UIImageName"]);
218
+ UIImage *image = name ? [UIImage imageNamed:name] : nil;
219
+ UIImageView *imageView = image ? [[UIImageView alloc] initWithImage:image] : nil;
220
+ bar.hidden = imageView != nil;
221
+ [self.view addSubview:bar];
222
+ if (imageView) {
223
+ [self.view addSubview:imageView];
224
+ }
225
+ return imageView;
226
+ }
227
+
228
+ // The safe area is known only in the window, so the parts are laid out here, after every change of it.
229
+ - (void)viewDidLayoutSubviews {
230
+ [super viewDidLayoutSubviews];
231
+ if (!_launchScreen) {
232
+ return;
233
+ }
234
+ CGRect bounds = self.view.bounds;
235
+ UIEdgeInsets safeArea = self.view.safeAreaInsets;
236
+ _imageView.frame =
237
+ _imageRespectsSafeArea ? UIEdgeInsetsInsetRect(bounds, safeArea) : bounds;
238
+ [self layOutBar:_bottomBar imageView:_bottomBarImageView atBottom:YES];
239
+ [self layOutBar:_navigationBar imageView:_navigationBarImageView atBottom:NO];
240
+ }
241
+
242
+ // A bar is as tall as UIKit makes it, plus the safe area on its edge of the screen, and as wide as the screen.
243
+ - (void)layOutBar:(UIView *)bar
244
+ imageView:(UIImageView *)imageView
245
+ atBottom:(BOOL)atBottom {
246
+ if (!bar) {
247
+ return;
248
+ }
249
+ CGRect bounds = self.view.bounds;
250
+ UIEdgeInsets safeArea = self.view.safeAreaInsets;
251
+ CGFloat height = [bar sizeThatFits:bounds.size].height +
252
+ (atBottom ? safeArea.bottom : safeArea.top);
253
+ CGFloat y = atBottom ? CGRectGetMaxY(bounds) - height : CGRectGetMinY(bounds);
254
+ CGRect frame = CGRectMake(CGRectGetMinX(bounds), y, CGRectGetWidth(bounds), height);
255
+ bar.frame = frame;
256
+ imageView.frame = frame;
257
+ }
258
+
112
259
  #pragma mark - The status bar, as the launch screen had it
113
260
 
114
261
  - (UIStatusBarStyle)preferredStatusBarStyle {
@@ -6,11 +6,11 @@
6
6
  NS_ASSUME_NONNULL_BEGIN
7
7
 
8
8
  /// The preview of a push (`usePreview`): a push that waits for a tap on its preview. Its screen is made and renders
9
- /// unseen, out of the stack, its key kept; the view with `preview.nativeID` is looked for on the source screen at once
10
- /// and on the next frames, 30 tries in all; found, the preview module (`ANNPreviewInteraction`) shows the screen from
11
- /// it on a long press. A tap that commits pushes the screen without an animation and without a wait, or goes back to
12
- /// the entry with its key; a preview that goes without being opened destroys its screen and rejects the push. Main
13
- /// queue.
9
+ /// unseen, out of the stack, its key kept; the view with `preview.nativeID` is looked for on the source screen at once,
10
+ /// then at each mount of the source's content (on each frame for a slot screen), for at most 0.5 s; found, the preview module (`ANNPreviewInteraction`)
11
+ /// shows the screen from it on a long press. A tap that commits pushes the screen without an animation and without a
12
+ /// wait, or goes back to the entry with its key; a preview that goes without being opened destroys its screen and
13
+ /// rejects the push. Main queue.
14
14
  @interface ANNPreviewPush : NSObject
15
15
 
16
16
  - (instancetype)init NS_UNAVAILABLE;
@@ -6,14 +6,16 @@
6
6
  #import "ANNPopoverPresenter.h"
7
7
  #import "ANNPreviewInteraction.h"
8
8
  #import "ANNReloadCoordinator.h"
9
+ #import "ANNSlotScreenView.h"
9
10
  #import "ANNStackCommands.h"
10
11
  #import "ANNStackController.h"
11
12
  #import "ApexNavigation+Internal.h"
12
13
  #import "UIViewController+LayoutProtocol.h"
13
14
 
14
- // The view of a component mounts a frame or so after the command that rendered it: it is looked for this many times,
15
- // a frame apart.
16
- static const NSUInteger ANNPreviewSearchTries = 30;
15
+ // The view of a component mounts a frame or so after the command that rendered it: it is looked for at each mount of
16
+ // the source's content until this limit (30 frames), then the preview goes, as with a `nativeID` no view has.
17
+ static const NSTimeInterval ANNPreviewSearchLimit = 30.0 / 60;
18
+ // Where the source's mounts can't be heard, a frame apart.
17
19
  static const NSTimeInterval ANNPreviewSearchInterval = 1.0 / 60;
18
20
 
19
21
  // One preview from its push to its end: the tap took it, or it went.
@@ -28,7 +30,8 @@ static const NSTimeInterval ANNPreviewSearchInterval = 1.0 / 60;
28
30
  @property(nonatomic, copy) NSString *componentId;
29
31
  @property(nonatomic, copy) NSString *what;
30
32
  @property(nonatomic) NSUInteger generation;
31
- @property(nonatomic) NSUInteger tries;
33
+ // The content whose mounts the search hears, while it looks.
34
+ @property(nonatomic, weak, nullable) UIView<ANNComponentProtocol> *watched;
32
35
  @property(nonatomic) BOOL attached;
33
36
  @property(nonatomic) BOOL done;
34
37
  // The screen's unseen place in the main window, at its preview size, until UIKit takes its view for the menu.
@@ -84,7 +87,7 @@ static NSMutableDictionary<NSString *, ANNPreviewRecord *> *ANNPreviewRecords(vo
84
87
  [screen destroy];
85
88
  @throw;
86
89
  }
87
- [self search:record];
90
+ [self startSearch:record];
88
91
  }
89
92
 
90
93
  // The screen renders as now: its view waits unseen in the main window, at the size of the preview, so that its content
@@ -110,41 +113,99 @@ static NSMutableDictionary<NSString *, ANNPreviewRecord *> *ANNPreviewRecords(vo
110
113
 
111
114
  #pragma mark - The search
112
115
 
113
- // Each try asks first whether the preview still lives: a source that went makes it go, a reload stops it silently.
114
- + (void)search:(ANNPreviewRecord *)record {
115
- if (record.done || record.attached) {
116
+ // The view is looked for at once; else again at each mount of the source's content, where it comes with one of them,
117
+ // and a last time at the limit, when the preview goes. Both later steps keep the generation they were made with: after
118
+ // a reload they do nothing.
119
+ + (void)startSearch:(ANNPreviewRecord *)record {
120
+ if ([self search:record last:NO]) {
116
121
  return;
117
122
  }
123
+ UIViewController *source = record.source;
124
+ // A source that is a container (a stack) is heard through the screen it shows.
125
+ UIView<ANNComponentProtocol> *content =
126
+ source.reactView ?: source.presentedComponentViewController.reactView;
127
+ __weak ANNPreviewRecord *weakRecord = record;
128
+ NSUInteger generation = record.generation;
129
+ // A slot screen hears only the first mount of its slot, not those deeper in it, and a container may show no React
130
+ // content yet: there the view is looked for on each frame until the limit.
131
+ if (!content || [content isKindOfClass:ANNSlotScreenView.class]) {
132
+ [self searchNextFrame:record];
133
+ } else {
134
+ record.watched = content;
135
+ [content setContentDidMount:^{
136
+ ANNPreviewRecord *searching = weakRecord;
137
+ if (searching && generation == ANNReloadCoordinator.generation) {
138
+ [ANNPreviewPush search:searching last:NO];
139
+ }
140
+ }
141
+ forKey:[self mountKeyOf:record]];
142
+ }
143
+ int64_t delay = (int64_t)(ANNPreviewSearchLimit * NSEC_PER_SEC);
144
+ dispatch_after(dispatch_time(DISPATCH_TIME_NOW, delay), dispatch_get_main_queue(), ^{
145
+ ANNPreviewRecord *searching = weakRecord;
146
+ if (searching && generation == ANNReloadCoordinator.generation) {
147
+ [ANNPreviewPush search:searching last:YES];
148
+ }
149
+ });
150
+ }
151
+
152
+ // One more search on the next frame, and so on until the view is found or the preview goes; after a reload, none.
153
+ + (void)searchNextFrame:(ANNPreviewRecord *)record {
154
+ __weak ANNPreviewRecord *weakRecord = record;
155
+ NSUInteger generation = record.generation;
156
+ int64_t delay = (int64_t)(ANNPreviewSearchInterval * NSEC_PER_SEC);
157
+ dispatch_after(dispatch_time(DISPATCH_TIME_NOW, delay), dispatch_get_main_queue(), ^{
158
+ ANNPreviewRecord *searching = weakRecord;
159
+ if (searching && generation == ANNReloadCoordinator.generation &&
160
+ ![ANNPreviewPush search:searching last:NO]) {
161
+ [ANNPreviewPush searchNextFrame:searching];
162
+ }
163
+ });
164
+ }
165
+
166
+ // YES when the search is over: the view was found, or the preview went or stopped. Each search asks first whether the
167
+ // preview still lives: a source that went makes it go, a reload stops it silently. The last one, not finding the view,
168
+ // makes the preview go.
169
+ + (BOOL)search:(ANNPreviewRecord *)record last:(BOOL)last {
170
+ if (record.done || record.attached) {
171
+ return YES;
172
+ }
118
173
  if (record.generation != ANNReloadCoordinator.generation) {
119
- return;
174
+ return YES;
120
175
  }
121
176
  UIViewController *source = record.source;
122
177
  if (!source || source.nodeHelper.destroyed) {
123
178
  [self gone:record];
124
- return;
179
+ return YES;
125
180
  }
126
181
  // Read only: the view is found by its `nativeID`, and its tag is its current Fabric tag.
127
182
  UIView *view = [ANNPopoverPresenter viewWithNativeID:record.nativeID in:source.viewIfLoaded];
128
183
  if (view) {
129
184
  [self attach:record toView:view source:source];
130
- return;
185
+ return YES;
131
186
  }
132
- if (++record.tries >= ANNPreviewSearchTries) {
187
+ if (last) {
133
188
  [self gone:record];
134
- return;
189
+ return YES;
135
190
  }
136
- __weak ANNPreviewRecord *weakRecord = record;
137
- int64_t delay = (int64_t)(ANNPreviewSearchInterval * NSEC_PER_SEC);
138
- dispatch_after(dispatch_time(DISPATCH_TIME_NOW, delay), dispatch_get_main_queue(), ^{
139
- ANNPreviewRecord *searching = weakRecord;
140
- if (searching) {
141
- [ANNPreviewPush search:searching];
142
- }
143
- });
191
+ return NO;
192
+ }
193
+
194
+ // The key of the search's mount handler: one per preview, so that two previews of one source don't replace each other.
195
+ + (NSString *)mountKeyOf:(ANNPreviewRecord *)record {
196
+ return [@"preview." stringByAppendingString:record.previewId];
197
+ }
198
+
199
+ // The search stops hearing the mounts: only its own handler goes.
200
+ + (void)stopWatching:(ANNPreviewRecord *)record {
201
+ UIView<ANNComponentProtocol> *content = record.watched;
202
+ record.watched = nil;
203
+ [content setContentDidMount:nil forKey:[self mountKeyOf:record]];
144
204
  }
145
205
 
146
206
  + (void)attach:(ANNPreviewRecord *)record toView:(UIView *)view source:(UIViewController *)source {
147
207
  record.attached = YES;
208
+ [self stopWatching:record];
148
209
  __weak ANNPreviewRecord *weakRecord = record;
149
210
  BOOL (^commit)(void) = ^BOOL {
150
211
  return [ANNPreviewPush commit:weakRecord];
@@ -231,9 +292,10 @@ static NSMutableDictionary<NSString *, ANNPreviewRecord *> *ANNPreviewRecords(vo
231
292
  [record.answer reject:[ANNErrorTexts previewGone:record.previewId]];
232
293
  }
233
294
 
234
- // The record is done: the screen leaves its unseen place, the table forgets it.
295
+ // The record is done: the search stops, the screen leaves its unseen place, the table forgets it.
235
296
  + (void)finish:(ANNPreviewRecord *)record {
236
297
  record.done = YES;
298
+ [self stopWatching:record];
237
299
  [self unpark:record];
238
300
  if (ANNPreviewRecords()[record.previewId] == record) {
239
301
  [ANNPreviewRecords() removeObjectForKey:record.previewId];
@@ -286,6 +348,7 @@ static NSMutableDictionary<NSString *, ANNPreviewRecord *> *ANNPreviewRecords(vo
286
348
  NSMutableArray<UIViewController *> *screens = [NSMutableArray new];
287
349
  for (ANNPreviewRecord *record in ANNPreviewRecords().allValues) {
288
350
  record.done = YES;
351
+ [self stopWatching:record];
289
352
  [self unpark:record];
290
353
  if (!record.attached) {
291
354
  [screens addObject:record.screen];
@@ -13,7 +13,7 @@ import { stackChild } from "../layout/Stack.js";
13
13
  import { badgeText } from "../layout/Tabs.js";
14
14
  import { mergeOptions } from "../../engine/mergeOptions.js";
15
15
  import { buildScreenOptions } from "../screens/defineScreen.js";
16
- import { coversColumn, placeOf } from "../../engine/places.js";
16
+ import { coversColumn, firstScreenOf, placeOf } from "../../engine/places.js";
17
17
  import { command, placeFor } from "./errors.js";
18
18
  import { defined, modalAnimations, pushAnimations } from "./transitions.js";
19
19
 
@@ -23,6 +23,10 @@ const CLOSE_BUTTON = 'CloseButton';
23
23
  // The modals shown by `showModal`, for the ids of their first screens.
24
24
  let modals = 0;
25
25
 
26
+ // The stacks of the modals shown with a close button, by id: `setStack` and `replace` there give it to the new first
27
+ // screen. A stack's id is its modal's layer.
28
+ const closeButtonStacks = new Set();
29
+
26
30
  // The settings of a command with the props of the screen it shows.
27
31
 
28
32
  // `replace` comes in with the push's animation, not that of `setStackRoot` (Android's fade through).
@@ -114,7 +118,25 @@ export function setStack(fromId, entries) {
114
118
  placeFor('setStack', fromId, {
115
119
  stack: true
116
120
  });
117
- return withSlots(() => engine.setStackRoot(fromId, entries.map(stackChild)));
121
+ const children = entries.map(stackChild);
122
+ const first = children[0]?.component;
123
+ if (!first || !hasCloseButton(placeOf(fromId))) {
124
+ return withSlots(() => engine.setStackRoot(fromId, children));
125
+ }
126
+ return afterLoading([first.name], () => {
127
+ // The screen's own buttons stay after the close button: the options of the layout replace them.
128
+ const id = first.id ?? nextId('Component');
129
+ const own = screenOptions(first.name, first.passProps ?? {});
130
+ const options = withCloseButton(mergeOptions(own, first.options ?? {}), id);
131
+ const withButton = {
132
+ component: {
133
+ ...first,
134
+ id,
135
+ options
136
+ }
137
+ };
138
+ return withSlots(() => engine.setStackRoot(fromId, [withButton, ...children.slice(1)]));
139
+ });
118
140
  });
119
141
  }
120
142
 
@@ -132,11 +154,12 @@ export function replace(fromId, name, config = {}) {
132
154
  props
133
155
  } = config;
134
156
  const base = getActiveApp()?.presentation?.push;
135
- const options = showOptions(name, props, AS_PUSH, base?.options, config.options, {
157
+ const id = nextId('Component');
158
+ let options = showOptions(name, props, AS_PUSH, base?.options, config.options, {
136
159
  app: pushAnimations(base?.transition),
137
160
  call: pushAnimations(config.transition)
138
161
  });
139
- const id = nextId('Component');
162
+ if (hasCloseButton(placeOf(fromId))) options = withCloseButton(options, id);
140
163
  return withSlots(() => engine.setStackRoot(fromId, [screenLayout(name, props, options, id)])).then(() => id);
141
164
  });
142
165
  });
@@ -191,17 +214,28 @@ function showModalNow(name, config) {
191
214
  app: modalAnimations(base.transition),
192
215
  call: modalAnimations(call.transition)
193
216
  });
194
- if (settings.closeButton && settings.stack !== false) options = withCloseButton(options, screenId);
217
+ // The stack gets its id here, so that the commands in it later know the modal had a close button.
218
+ const stackId = nextId('Stack');
219
+ const closeButton = settings.closeButton && settings.stack !== false;
220
+ if (closeButton) {
221
+ options = withCloseButton(options, screenId);
222
+ closeButtonStacks.add(stackId);
223
+ forgetWithStack(stackId, screenId);
224
+ }
195
225
  if (call.onDismiss) whenScreenUnmounts(screenId, call.onDismiss);
196
226
  const screen = screenLayout(name, props, options, screenId);
197
227
  const presentation = presentationOptions(settings);
198
228
  const layout = settings.stack === false ? mergeLayoutOptions(screen, presentation) : {
199
229
  stack: {
230
+ id: stackId,
200
231
  children: [screen],
201
232
  options: presentation
202
233
  }
203
234
  };
204
- return withSlots(() => engine.showModal(layout));
235
+ const shown = withSlots(() => engine.showModal(layout));
236
+ // A modal that never showed has no stack to remember.
237
+ if (closeButton) shown.catch(() => closeButtonStacks.delete(stackId));
238
+ return shown;
205
239
  }
206
240
  export function dismissModal(modalId) {
207
241
  return command('dismissModal', () => engine.dismissModal(modalId));
@@ -338,6 +372,20 @@ export function holdLeave(screenId, onAttempt) {
338
372
  };
339
373
  }
340
374
 
375
+ // Whether a screen is in the stack of a modal shown with a close button: the modal's own stack, not one in it.
376
+ function hasCloseButton(place) {
377
+ return place?.stack != null && place.stack === place.layer && closeButtonStacks.has(place.stack);
378
+ }
379
+
380
+ // The stack of a modal is gone with its last first screen: one that unmounts with no other first screen noted after
381
+ // it (`setStack`, `replace` note theirs before the old one goes).
382
+ function forgetWithStack(stackId, screenId) {
383
+ whenScreenUnmounts(screenId, () => {
384
+ const next = firstScreenOf(stackId);
385
+ if (next) forgetWithStack(stackId, next);else closeButtonStacks.delete(stackId);
386
+ });
387
+ }
388
+
341
389
  /** The options with a close button first at the leading edge, which dismisses the modal of the screen. */
342
390
  function withCloseButton(options, screenId) {
343
391
  const close = {
@@ -1 +1 @@
1
- {"version":3,"names":["takeButtonHandlers","engine","nextId","propsOf","afterLoading","screenOptions","withSlots","getActiveApp","whenScreenUnmounts","mergeLayoutOptions","stackChild","badgeText","mergeOptions","buildScreenOptions","coversColumn","placeOf","command","placeFor","defined","modalAnimations","pushAnimations","CLOSE_BUTTON","modals","AS_PUSH","animations","setStackRoot","asPush","OVERLAY_OPTIONS","layout","backgroundColor","componentBackgroundColor","push","fromId","name","config","stack","pushNow","props","base","presentation","options","showOptions","app","transition","call","screenLayout","pushPreview","preview","id","wanted","Error","undefined","pop","below","popTo","screenId","popToRoot","setStack","entries","map","replace","then","showInColumn","column","setColumnShown","shown","showModal","showModalNow","modal","settings","onDismiss","closeButton","withCloseButton","screen","presentationOptions","children","dismissModal","modalId","dismissAllModals","showOverlay","showOverlayNow","overlay","interceptTouchOutside","blockTouches","dismissOverlay","overlayId","canPop","place","index","canDismiss","container","goBack","dismiss","dismissible","dismissAllOverlays","selectTab","tab","bottomTabs","currentTabIndex","currentTabId","setTabBadge","badge","bottomTab","setOptions","show","transitions","screenProps","animationsOf","reduce","component","passProps","leaveHolds","Map","holdLeave","onAttempt","set","get","delete","close","testID","systemItem","onPress","held","leftButtons","topBar","style","popover","sheet","contentSize","modalPresentationStyle","Object","keys","length"],"sourceRoot":"../../../../src","sources":["api/commands/commands.ts"],"mappings":";;AAAA,SAASA,kBAAkB,QAAQ,yBAAsB;AAEzD,OAAO,KAAKC,MAAM,MAAM,0BAAuB;AAC/C,SAASC,MAAM,QAAQ,qBAAkB;AACzC,SAASC,OAAO,QAAQ,uBAAoB;AAC5C,SAASC,YAAY,EAAEC,aAAa,QAAQ,yBAAsB;AAClE,SAASC,SAAS,QAAQ,uBAAoB;AAQ9C,SAASC,YAAY,QAAQ,qBAAkB;AAC/C,SAASC,kBAAkB,QAAQ,8BAA2B;AAC9D,SAASC,kBAAkB,QAAQ,sBAAmB;AACtD,SAASC,UAAU,QAAyB,oBAAiB;AAC7D,SAASC,SAAS,QAAQ,mBAAgB;AAC1C,SAASC,YAAY,QAAQ,8BAA2B;AACxD,SAASC,kBAAkB,QAAiC,4BAAyB;AACrF,SAASC,YAAY,EAAEC,OAAO,QAAQ,wBAAqB;AAC3D,SAASC,OAAO,EAAEC,QAAQ,QAAQ,aAAU;AAE5C,SAASC,OAAO,EAAEC,eAAe,EAAEC,cAAc,QAAQ,kBAAe;;AAExE;AACA,MAAMC,YAAY,GAAG,aAAa;;AAElC;AACA,IAAIC,MAAM,GAAG,CAAC;;AAEd;;AAGA;AACA,MAAMC,OAAO,GAAG;EAAEC,UAAU,EAAE;IAAEC,YAAY,EAAE;MAAEC,MAAM,EAAE;IAAK;EAAE;AAAE,CAAY;;AAE7E;AACA,MAAMC,eAAwB,GAAG;EAC/BC,MAAM,EAAE;IAAEC,eAAe,EAAE,aAAa;IAAEC,wBAAwB,EAAE;EAAc;AACpF,CAAC;;AAED;;AAEA,OAAO,SAASC,IAAIA,CAClBC,MAAc,EACdC,IAAY,EACZC,MAA6B,GAAG,CAAC,CAAC,EACjB;EACjB,OAAOlB,OAAO,CAAC,MAAM,EAAE,MAAM;IAC3BC,QAAQ,CAAC,MAAM,EAAEe,MAAM,EAAE;MAAEG,KAAK,EAAE;IAAK,CAAC,CAAC;IACzC,OAAO/B,YAAY,CAAC,CAAC6B,IAAI,CAAC,EAAE,MAAMG,OAAO,CAACJ,MAAM,EAAEC,IAAI,EAAEC,MAAM,CAAC,CAAC;EAClE,CAAC,CAAC;AACJ;AAEA,SAASE,OAAOA,CAACJ,MAAc,EAAEC,IAAY,EAAEC,MAA6B,EAAmB;EAC7F,MAAM;IAAEG;EAAM,CAAC,GAAGH,MAAM;EACxB,MAAMI,IAAI,GAAG/B,YAAY,CAAC,CAAC,EAAEgC,YAAY,EAAER,IAAI;EAC/C,MAAMS,OAAO,GAAGC,WAAW,CAACR,IAAI,EAAEI,KAAK,EAAE,CAAC,CAAC,EAAEC,IAAI,EAAEE,OAAO,EAAEN,MAAM,CAACM,OAAO,EAAE;IAC1EE,GAAG,EAAEtB,cAAc,CAACkB,IAAI,EAAEK,UAAU,CAAC;IACrCC,IAAI,EAAExB,cAAc,CAACc,MAAM,CAACS,UAAU;EACxC,CAAC,CAAC;EACF,OAAOrC,SAAS,CAAC,MAAML,MAAM,CAAC8B,IAAI,CAACC,MAAM,EAAEa,YAAY,CAACZ,IAAI,EAAEI,KAAK,EAAEG,OAAO,CAAC,CAAC,CAAC;AACjF;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASM,WAAWA,CACzBd,MAAc,EACdC,IAAY,EACZI,KAAyB,EACzBU,OAAe,EACfC,EAAU,EACVC,MAAqB,EACJ;EACjB,OAAOjC,OAAO,CAAC,MAAM,EAAE,MAAM;IAC3BC,QAAQ,CAAC,MAAM,EAAEe,MAAM,EAAE;MAAEG,KAAK,EAAE;IAAK,CAAC,CAAC;IACzC,OAAO/B,YAAY,CAAC,CAAC6B,IAAI,CAAC,EAAE,MAAM;MAChC;MACA,IAAI,CAACgB,MAAM,CAAC,CAAC,EAAE,MAAM,IAAIC,KAAK,CAAC,yDAAyD,CAAC;MACzF,MAAMV,OAAO,GAAG5B,YAAY,CAAC6B,WAAW,CAACR,IAAI,EAAEI,KAAK,EAAE,CAAC,CAAC,EAAEc,SAAS,EAAEA,SAAS,CAAC,EAAE;QAC/EJ;MACF,CAAY,CAAC;MACb,OAAOzC,SAAS,CAAC,MAAML,MAAM,CAAC8B,IAAI,CAACC,MAAM,EAAEa,YAAY,CAACZ,IAAI,EAAEI,KAAK,EAAEG,OAAO,EAAEQ,EAAE,CAAC,EAAEC,MAAM,CAAC,CAAC;IAC7F,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ;AAEA,OAAO,SAASG,GAAGA,CAACpB,MAAc,EAAmB;EACnD,OAAOhB,OAAO,CAAC,KAAK,EAAE,MAAM;IAC1B;IACA,IAAI,CAACF,YAAY,CAACkB,MAAM,CAAC,EAAEf,QAAQ,CAAC,KAAK,EAAEe,MAAM,EAAE;MAAEqB,KAAK,EAAE;IAAK,CAAC,CAAC;IACnE,OAAOpD,MAAM,CAACmD,GAAG,CAACpB,MAAM,CAAC;EAC3B,CAAC,CAAC;AACJ;AAEA,OAAO,SAASsB,KAAKA,CAACC,QAAgB,EAAmB;EACvD,OAAOvC,OAAO,CAAC,OAAO,EAAE,MAAM;IAC5BC,QAAQ,CAAC,OAAO,EAAEsC,QAAQ,EAAE;MAAEpB,KAAK,EAAE;IAAK,CAAC,CAAC;IAC5C,OAAOlC,MAAM,CAACqD,KAAK,CAACC,QAAQ,CAAC;EAC/B,CAAC,CAAC;AACJ;AAEA,OAAO,SAASC,SAASA,CAACxB,MAAc,EAAmB;EACzD,OAAOhB,OAAO,CAAC,WAAW,EAAE,MAAM;IAChCC,QAAQ,CAAC,WAAW,EAAEe,MAAM,EAAE;MAAEG,KAAK,EAAE;IAAK,CAAC,CAAC;IAC9C,OAAOlC,MAAM,CAACuD,SAAS,CAACxB,MAAM,CAAC;EACjC,CAAC,CAAC;AACJ;AAEA,OAAO,SAASyB,QAAQA,CAACzB,MAAc,EAAE0B,OAAqB,EAAmB;EAC/E,OAAO1C,OAAO,CAAC,UAAU,EAAE,MAAM;IAC/BC,QAAQ,CAAC,UAAU,EAAEe,MAAM,EAAE;MAAEG,KAAK,EAAE;IAAK,CAAC,CAAC;IAC7C,OAAO7B,SAAS,CAAC,MAAML,MAAM,CAACwB,YAAY,CAACO,MAAM,EAAE0B,OAAO,CAACC,GAAG,CAACjD,UAAU,CAAC,CAAC,CAAC;EAC9E,CAAC,CAAC;AACJ;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASkD,OAAOA,CACrB5B,MAAc,EACdC,IAAY,EACZC,MAA6B,GAAG,CAAC,CAAC,EACjB;EACjB,OAAOlB,OAAO,CAAC,SAAS,EAAE,MAAM;IAC9BC,QAAQ,CAAC,SAAS,EAAEe,MAAM,EAAE;MAAEG,KAAK,EAAE;IAAK,CAAC,CAAC;IAC5C,OAAO/B,YAAY,CAAC,CAAC6B,IAAI,CAAC,EAAE,MAAM;MAChC,MAAM;QAAEI;MAAM,CAAC,GAAGH,MAAM;MACxB,MAAMI,IAAI,GAAG/B,YAAY,CAAC,CAAC,EAAEgC,YAAY,EAAER,IAAI;MAC/C,MAAMS,OAAO,GAAGC,WAAW,CAACR,IAAI,EAAEI,KAAK,EAAEd,OAAO,EAAEe,IAAI,EAAEE,OAAO,EAAEN,MAAM,CAACM,OAAO,EAAE;QAC/EE,GAAG,EAAEtB,cAAc,CAACkB,IAAI,EAAEK,UAAU,CAAC;QACrCC,IAAI,EAAExB,cAAc,CAACc,MAAM,CAACS,UAAU;MACxC,CAAC,CAAC;MACF,MAAMK,EAAE,GAAG9C,MAAM,CAAC,WAAW,CAAC;MAC9B,OAAOI,SAAS,CAAC,MACfL,MAAM,CAACwB,YAAY,CAACO,MAAM,EAAE,CAACa,YAAY,CAACZ,IAAI,EAAEI,KAAK,EAAEG,OAAO,EAAEQ,EAAE,CAAC,CAAC,CACtE,CAAC,CAACa,IAAI,CAAC,MAAMb,EAAE,CAAC;IAClB,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ;AAEA,OAAO,SAASc,YAAYA,CAC1B9B,MAAc,EACdC,IAAY,EACZC,MAA+B,GAAG,CAAC,CAAC,EACnB;EACjB,OAAOlB,OAAO,CAAC,cAAc,EAAE,MAAM;IACnCC,QAAQ,CAAC,cAAc,EAAEe,MAAM,CAAC;IAChC,OAAO5B,YAAY,CAAC,CAAC6B,IAAI,CAAC,EAAE,MAAM;MAChC,MAAM;QAAEI,KAAK;QAAE0B,MAAM,GAAG;MAAY,CAAC,GAAG7B,MAAM;MAC9C,MAAMM,OAAO,GAAGC,WAAW,CAACR,IAAI,EAAEI,KAAK,EAAE,CAAC,CAAC,EAAEc,SAAS,EAAEjB,MAAM,CAACM,OAAO,CAAC;MACvE,OAAOlC,SAAS,CAAC,MACfL,MAAM,CAAC6D,YAAY,CAAC9B,MAAM,EAAE+B,MAAM,EAAElB,YAAY,CAACZ,IAAI,EAAEI,KAAK,EAAEG,OAAO,CAAC,CACxE,CAAC;IACH,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ;;AAEA;;AAGA;AACA,OAAO,SAASwB,cAAcA,CAAChC,MAAc,EAAE+B,MAAmB,EAAEE,KAAc,EAAiB;EACjG,MAAMhC,IAAI,GAAGgC,KAAK,GAAG,YAAY,GAAG,YAAY;EAChD,OAAOjD,OAAO,CAACiB,IAAI,EAAE,MAAM;IACzBhB,QAAQ,CAACgB,IAAI,EAAED,MAAM,CAAC;IACtB,OAAO/B,MAAM,CAAC+D,cAAc,CAAChC,MAAM,EAAE+B,MAAM,EAAEE,KAAK,CAAC;EACrD,CAAC,CAAC;AACJ;AAEA,OAAO,SAASC,SAASA,CAACjC,IAAY,EAAEC,MAA8B,GAAG,CAAC,CAAC,EAAmB;EAC5F,OAAOlB,OAAO,CAAC,WAAW,EAAE,MAAMZ,YAAY,CAAC,CAAC6B,IAAI,CAAC,EAAE,MAAMkC,YAAY,CAAClC,IAAI,EAAEC,MAAM,CAAC,CAAC,CAAC;AAC3F;AAEA,SAASiC,YAAYA,CAAClC,IAAY,EAAEC,MAA8B,EAAmB;EACnF,MAAM;IAAEG,KAAK;IAAE,GAAGO;EAAK,CAAC,GAAGV,MAAM;EACjC,MAAMI,IAAI,GAAG/B,YAAY,CAAC,CAAC,EAAEgC,YAAY,EAAE6B,KAAK,IAAI,CAAC,CAAC;EACtD;EACA,MAAMC,QAAQ,GAAGzD,YAAY,CAC3B;IAAE,GAAG0B,IAAI;IAAEE,OAAO,EAAEW,SAAS;IAAER,UAAU,EAAEQ;EAAU,CAAC,EACtD;IAAE,GAAGP,IAAI;IAAEJ,OAAO,EAAEW,SAAS;IAAEmB,SAAS,EAAEnB,SAAS;IAAER,UAAU,EAAEQ;EAAU,CAC7E,CAAC;EACD;EACA,MAAMI,QAAQ,GAAG,cAAc,EAAEjC,MAAM,EAAE;EACzC,IAAIkB,OAAO,GAAGC,WAAW,CAACR,IAAI,EAAEI,KAAK,EAAE,CAAC,CAAC,EAAEC,IAAI,CAACE,OAAO,EAAEI,IAAI,CAACJ,OAAO,EAAE;IACrEE,GAAG,EAAEvB,eAAe,CAACmB,IAAI,CAACK,UAAU,CAAC;IACrCC,IAAI,EAAEzB,eAAe,CAACyB,IAAI,CAACD,UAAU;EACvC,CAAC,CAAC;EACF,IAAI0B,QAAQ,CAACE,WAAW,IAAIF,QAAQ,CAAClC,KAAK,KAAK,KAAK,EAClDK,OAAO,GAAGgC,eAAe,CAAChC,OAAO,EAAEe,QAAQ,CAAC;EAC9C,IAAIX,IAAI,CAAC0B,SAAS,EAAE9D,kBAAkB,CAAC+C,QAAQ,EAAEX,IAAI,CAAC0B,SAAS,CAAC;EAChE,MAAMG,MAAM,GAAG5B,YAAY,CAACZ,IAAI,EAAEI,KAAK,EAAEG,OAAO,EAAEe,QAAQ,CAAC;EAC3D,MAAMhB,YAAY,GAAGmC,mBAAmB,CAACL,QAAQ,CAAC;EAClD,MAAMzC,MAAc,GAClByC,QAAQ,CAAClC,KAAK,KAAK,KAAK,GACpB1B,kBAAkB,CAACgE,MAAM,EAAElC,YAAY,CAAC,GACxC;IAAEJ,KAAK,EAAE;MAAEwC,QAAQ,EAAE,CAACF,MAAM,CAAC;MAAEjC,OAAO,EAAED;IAAa;EAAE,CAAC;EAC9D,OAAOjC,SAAS,CAAC,MAAML,MAAM,CAACiE,SAAS,CAACtC,MAAM,CAAC,CAAC;AAClD;AAEA,OAAO,SAASgD,YAAYA,CAACC,OAAe,EAAmB;EAC7D,OAAO7D,OAAO,CAAC,cAAc,EAAE,MAAMf,MAAM,CAAC2E,YAAY,CAACC,OAAO,CAAC,CAAC;AACpE;AAEA,OAAO,SAASC,gBAAgBA,CAAA,EAAoB;EAClD,OAAO9D,OAAO,CAAC,kBAAkB,EAAE,MAAMf,MAAM,CAAC6E,gBAAgB,CAAC,CAAC,CAAC;AACrE;AAEA,OAAO,SAASC,WAAWA,CAAC9C,IAAY,EAAEC,MAAgC,GAAG,CAAC,CAAC,EAAmB;EAChG,OAAOlB,OAAO,CAAC,aAAa,EAAE,MAAMZ,YAAY,CAAC,CAAC6B,IAAI,CAAC,EAAE,MAAM+C,cAAc,CAAC/C,IAAI,EAAEC,MAAM,CAAC,CAAC,CAAC;AAC/F;AAEA,SAAS8C,cAAcA,CAAC/C,IAAY,EAAEC,MAAgC,EAAmB;EACvF,MAAM;IAAEG,KAAK;IAAE,GAAGO;EAAK,CAAC,GAAGV,MAAM;EACjC,MAAMI,IAAI,GAAG/B,YAAY,CAAC,CAAC,EAAEgC,YAAY,EAAE0C,OAAO,IAAI,CAAC,CAAC;EACxD,MAAMZ,QAAQ,GAAG;IAAE,GAAG/B,IAAI;IAAE,GAAGM;EAAK,CAAC;EACrC,MAAMJ,OAAO,GAAGC,WAAW,CAACR,IAAI,EAAEI,KAAK,EAAEV,eAAe,EAAEW,IAAI,CAACE,OAAO,EAAEI,IAAI,CAACJ,OAAO,CAAC;EACrF,MAAMyC,OAAO,GAAG/D,OAAO,CAAC;IAAEgE,qBAAqB,EAAEb,QAAQ,CAACc;EAAa,CAAC,CAAC;EACzE,MAAMvD,MAAM,GAAGiB,YAAY,CAACZ,IAAI,EAAEI,KAAK,EAAEzB,YAAY,CAAC4B,OAAO,EAAE;IAAEyC;EAAQ,CAAC,CAAC,CAAC;EAC5E,OAAO3E,SAAS,CAAC,MAAML,MAAM,CAAC8E,WAAW,CAACnD,MAAM,CAAC,CAAC;AACpD;AAEA,OAAO,SAASwD,cAAcA,CAACC,SAAiB,EAAmB;EACjE,OAAOrE,OAAO,CAAC,gBAAgB,EAAE,MAAMf,MAAM,CAACmF,cAAc,CAACC,SAAS,CAAC,CAAC;AAC1E;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASC,MAAMA,CAAC/B,QAAgB,EAAW;EAChD,MAAMgC,KAAK,GAAGxE,OAAO,CAACwC,QAAQ,CAAC;EAC/B,OAAQgC,KAAK,KAAKpC,SAAS,IAAIoC,KAAK,CAACpD,KAAK,KAAK,IAAI,IAAIoD,KAAK,CAACC,KAAK,GAAG,CAAC,IAAK1E,YAAY,CAACyC,QAAQ,CAAC;AACnG;;AAEA;AACA,OAAO,SAASkC,UAAUA,CAAClC,QAAgB,EAAW;EACpD,MAAMgC,KAAK,GAAGxE,OAAO,CAACwC,QAAQ,CAAC;EAC/B,OAAOgC,KAAK,KAAKpC,SAAS,IAAIoC,KAAK,CAACG,SAAS,KAAK,MAAM;AAC1D;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASC,MAAMA,CAACpC,QAAgB,EAAmB;EACxD,IAAI+B,MAAM,CAAC/B,QAAQ,CAAC,EAAE,OAAOH,GAAG,CAACG,QAAQ,CAAC;EAC1C,IAAIkC,UAAU,CAAClC,QAAQ,CAAC,EAAE,OAAOqC,OAAO,CAACrC,QAAQ,CAAC;EAClD,OAAOvC,OAAO,CAAC,QAAQ,EAAE,MAAM;IAC7B,MAAMuE,KAAK,GAAGtE,QAAQ,CAAC,QAAQ,EAAEsC,QAAQ,CAAC;IAC1C,MAAM,IAAIL,KAAK,CACb,wBAAwBqC,KAAK,EAAEtD,IAAI,IAAIsB,QAAQ,kEACjD,CAAC;EACH,CAAC,CAAC;AACJ;;AAEA;AACA,OAAO,SAASqC,OAAOA,CAACrC,QAAgB,EAAmB;EACzD,OAAOvC,OAAO,CAAC,SAAS,EAAE,MACxBC,QAAQ,CAAC,SAAS,EAAEsC,QAAQ,EAAE;IAAEsC,WAAW,EAAE;EAAK,CAAC,CAAC,EAAEH,SAAS,KAAK,SAAS,GACzEzF,MAAM,CAACmF,cAAc,CAAC7B,QAAQ,CAAC,GAC/BtD,MAAM,CAAC2E,YAAY,CAACrB,QAAQ,CAClC,CAAC;AACH;AAEA,OAAO,SAASuC,kBAAkBA,CAAA,EAAoB;EACpD,OAAO9E,OAAO,CAAC,oBAAoB,EAAE,MAAMf,MAAM,CAAC6F,kBAAkB,CAAC,CAAC,CAAC;AACzE;;AAEA;AACA,OAAO,SAASC,SAASA,CAACxC,QAAgB,EAAEyC,GAAoB,EAAQ;EACtE/F,MAAM,CAACW,YAAY,CAAC2C,QAAQ,EAAE;IAC5B0C,UAAU,EAAE,OAAOD,GAAG,KAAK,QAAQ,GAAG;MAAEE,eAAe,EAAEF;IAAI,CAAC,GAAG;MAAEG,YAAY,EAAEH;IAAI;EACvF,CAAC,CAAC;AACJ;;AAEA;AACA,OAAO,SAASI,WAAWA,CAAC7C,QAAgB,EAAE8C,KAA6B,EAAEL,GAAY,EAAQ;EAC/F/F,MAAM,CAACW,YAAY,CAACoF,GAAG,IAAIzC,QAAQ,EAAE;IAAE+C,SAAS,EAAE;MAAED,KAAK,EAAE1F,SAAS,CAAC0F,KAAK;IAAE;EAAE,CAAC,CAAC;AAClF;;AAEA;AACA,OAAO,SAASE,UAAUA,CAAChD,QAAgB,EAAEf,OAAmC,EAAQ;EACtFvC,MAAM,CAACW,YAAY,CACjB2C,QAAQ,EACRvD,kBAAkB,CAACuD,QAAQ,EAAE1C,kBAAkB,CAAC2B,OAAO,EAAErC,OAAO,CAACoD,QAAQ,CAAC,CAAC,CAC7E,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA,SAASd,WAAWA,CAClBR,IAAY,EACZI,KAAyB,EACzBC,IAAa,EACbC,YAAoD,EACpDiE,IAA4C,EAC5CC,WAAgE,GAAG,CAAC,CAAC,EAC5D;EACT,MAAMC,WAAW,GAAGrE,KAAK,IAAI,CAAC,CAAC;EAC/B;EACA,OAAO,CACLxB,kBAAkB,CAAC0B,YAAY,EAAEmE,WAAW,CAAC,EAC7CC,YAAY,CAACF,WAAW,CAAC/D,GAAG,CAAC,EAC7BrC,aAAa,CAAC4B,IAAI,EAAEyE,WAAW,CAAC,EAChCC,YAAY,CAACF,WAAW,CAAC7D,IAAI,CAAC,EAC9B/B,kBAAkB,CAAC2F,IAAI,EAAEE,WAAW,CAAC,CACtC,CAACE,MAAM,CAAChG,YAAY,EAAE0B,IAAI,CAAC;AAC9B;AAEA,SAASqE,YAAYA,CAACnF,UAAwC,EAAW;EACvE,OAAOA,UAAU,GAAG;IAAEA;EAAW,CAAC,GAAG,CAAC,CAAC;AACzC;AAEA,SAASqB,YAAYA,CACnBZ,IAAY,EACZI,KAAyB,EACzBG,OAAgB,EAChBQ,EAAW,EACH;EACR,OAAO;IAAE6D,SAAS,EAAE;MAAE,IAAI7D,EAAE,IAAI;QAAEA;MAAG,CAAC,CAAC;MAAEf,IAAI;MAAE,IAAII,KAAK,IAAI;QAAEyE,SAAS,EAAEzE;MAAM,CAAC,CAAC;MAAEG;IAAQ;EAAE,CAAC;AAChG;;AAEA;AACA,MAAMuE,UAAU,GAAG,IAAIC,GAAG,CAAqB,CAAC;;AAEhD;AACA,OAAO,SAASC,SAASA,CAAC1D,QAAgB,EAAE2D,SAAqB,EAAc;EAC7EH,UAAU,CAACI,GAAG,CAAC5D,QAAQ,EAAE2D,SAAS,CAAC;EACnC,OAAO,MAAM;IACX,IAAIH,UAAU,CAACK,GAAG,CAAC7D,QAAQ,CAAC,KAAK2D,SAAS,EAAEH,UAAU,CAACM,MAAM,CAAC9D,QAAQ,CAAC;EACzE,CAAC;AACH;;AAEA;AACA,SAASiB,eAAeA,CAAChC,OAAgB,EAAEe,QAAgB,EAAW;EACpE,MAAM+D,KAAuB,GAAG;IAC9BtE,EAAE,EAAE3B,YAAY;IAChBkG,MAAM,EAAElG,YAAY;IACpBmG,UAAU,EAAE,OAAO;IACnBC,OAAO,EAAEA,CAAA,KAAM;MACb,MAAMC,IAAI,GAAGX,UAAU,CAACK,GAAG,CAAC7D,QAAQ,CAAC;MACrC,IAAImE,IAAI,EAAEA,IAAI,CAAC,CAAC,CAAC,KACZ9C,YAAY,CAACrB,QAAQ,CAAC;IAC7B;EACF,CAAC;EACD,MAAMoE,WAAW,GAAG,CAACL,KAAK,EAAE,IAAI9E,OAAO,CAACoF,MAAM,EAAED,WAAW,IAAI,EAAE,CAAC,CAAC;EACnE,OAAO/G,YAAY,CAAC4B,OAAO,EAAE;IAAEoF,MAAM,EAAE;MAAED;IAAY;EAAE,CAAC,CAAC;AAC3D;AAEA,SAASjD,mBAAmBA,CAACL,QAAqB,EAAW;EAC3D,MAAMwD,KAAK,GACTxD,QAAQ,CAACwD,KAAK,KAAKxD,QAAQ,CAACyD,OAAO,GAAG,SAAS,GAAGzD,QAAQ,CAAC0D,KAAK,GAAG,WAAW,GAAG5E,SAAS,CAAC;EAC7F,MAAMiB,KAAmB,GAAGlD,OAAO,CAAC;IAClC6G,KAAK,EAAE1D,QAAQ,CAAC0D,KAAK;IACrBC,WAAW,EAAE3D,QAAQ,CAAC2D,WAAW;IACjCF,OAAO,EAAEzD,QAAQ,CAACyD;EACpB,CAAC,CAAC;EACF,OAAO;IACL,IAAID,KAAK,IAAI;MAAEI,sBAAsB,EAAEJ;IAAuC,CAAC,CAAC;IAChF,IAAIK,MAAM,CAACC,IAAI,CAAC/D,KAAK,CAAC,CAACgE,MAAM,GAAG,CAAC,IAAI;MAAEhE;IAAM,CAAC;EAChD,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"names":["takeButtonHandlers","engine","nextId","propsOf","afterLoading","screenOptions","withSlots","getActiveApp","whenScreenUnmounts","mergeLayoutOptions","stackChild","badgeText","mergeOptions","buildScreenOptions","coversColumn","firstScreenOf","placeOf","command","placeFor","defined","modalAnimations","pushAnimations","CLOSE_BUTTON","modals","closeButtonStacks","Set","AS_PUSH","animations","setStackRoot","asPush","OVERLAY_OPTIONS","layout","backgroundColor","componentBackgroundColor","push","fromId","name","config","stack","pushNow","props","base","presentation","options","showOptions","app","transition","call","screenLayout","pushPreview","preview","id","wanted","Error","undefined","pop","below","popTo","screenId","popToRoot","setStack","entries","children","map","first","component","hasCloseButton","own","passProps","withCloseButton","withButton","slice","replace","then","showInColumn","column","setColumnShown","shown","showModal","showModalNow","modal","settings","onDismiss","stackId","closeButton","add","forgetWithStack","screen","presentationOptions","catch","delete","dismissModal","modalId","dismissAllModals","showOverlay","showOverlayNow","overlay","interceptTouchOutside","blockTouches","dismissOverlay","overlayId","canPop","place","index","canDismiss","container","goBack","dismiss","dismissible","dismissAllOverlays","selectTab","tab","bottomTabs","currentTabIndex","currentTabId","setTabBadge","badge","bottomTab","setOptions","show","transitions","screenProps","animationsOf","reduce","leaveHolds","Map","holdLeave","onAttempt","set","get","layer","has","next","close","testID","systemItem","onPress","held","leftButtons","topBar","style","popover","sheet","contentSize","modalPresentationStyle","Object","keys","length"],"sourceRoot":"../../../../src","sources":["api/commands/commands.ts"],"mappings":"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","ignoreList":[]}
@@ -41,6 +41,14 @@ export function placeOf(screenId) {
41
41
  return places.get(screenId);
42
42
  }
43
43
 
44
+ /** The first screen of a stack, as the engine noted it; with a pair first, its primary. */
45
+ export function firstScreenOf(stack) {
46
+ for (const [id, place] of places) {
47
+ if (place.stack === stack && place.index === 0 && place.arrangement?.placement !== 'secondary') return id;
48
+ }
49
+ return undefined;
50
+ }
51
+
44
52
  /** Notes that a screen is the primary of a pair shown alone, where the native side shows no pairs. */
45
53
  export function noteAlone(screenId) {
46
54
  alone.add(screenId);
@@ -1 +1 @@
1
- {"version":3,"names":["onNativeEvent","forgetProps","screenNameOf","MENU_PARTS","SideMenuLeft","SideMenuCenter","SideMenuRight","places","Map","columnOfStack","columnOfScreen","stacksOfSplit","stackedSplits","Set","listeningToSplitViews","alone","layoutsOfScreen","screensInLayout","gone","GONE_KEPT","placeOf","screenId","get","noteAlone","add","isGone","has","layoutsOf","notePlaces","node","container","stack","index","menu","layer","id","within","type","name","data","delete","noteLayouts","set","arrangement","placement","children","forEach","child","childIndex","place","forgetSplit","columns","stacks","column","noteColumn","split","part","side","parts","leaveLayouts","layouts","layout","count","columnOf","undefined","stackOfColumn","coversColumn","listenToSplitViews","componentId","stacked","forgetPlace","size","values","next","value"],"sourceRoot":"../../../src","sources":["engine/places.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["onNativeEvent","forgetProps","screenNameOf","MENU_PARTS","SideMenuLeft","SideMenuCenter","SideMenuRight","places","Map","columnOfStack","columnOfScreen","stacksOfSplit","stackedSplits","Set","listeningToSplitViews","alone","layoutsOfScreen","screensInLayout","gone","GONE_KEPT","placeOf","screenId","get","firstScreenOf","stack","id","place","index","arrangement","placement","undefined","noteAlone","add","isGone","has","layoutsOf","notePlaces","node","container","menu","layer","within","type","name","data","delete","noteLayouts","set","children","forEach","child","childIndex","forgetSplit","columns","stacks","column","noteColumn","split","part","side","parts","leaveLayouts","layouts","layout","count","columnOf","stackOfColumn","coversColumn","listenToSplitViews","componentId","stacked","forgetPlace","size","values","next","value"],"sourceRoot":"../../../src","sources":["engine/places.ts"],"mappings":"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","ignoreList":[]}