@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.
- package/CHANGELOG.md +13 -0
- package/android/CLAUDE.md +9 -2
- package/android/CORE.md +25 -15
- package/android/src/main/java/dev/apexnative/navigation/NavigationActivity.kt +25 -9
- package/android/src/main/java/dev/apexnative/navigation/options/AnimationsOptions.kt +2 -2
- package/android/src/main/java/dev/apexnative/navigation/options/HardwareBackButtonOptions.kt +9 -1
- package/android/src/main/java/dev/apexnative/navigation/options/StackAnimationOptions.kt +40 -2
- package/android/src/main/java/dev/apexnative/navigation/react/ArrangementStates.kt +6 -6
- package/android/src/main/java/dev/apexnative/navigation/react/CommandAnswer.kt +28 -13
- package/android/src/main/java/dev/apexnative/navigation/react/Hinge.kt +7 -4
- package/android/src/main/java/dev/apexnative/navigation/react/ReactView.kt +39 -20
- package/android/src/main/java/dev/apexnative/navigation/react/ReloadCoordinator.kt +7 -4
- package/android/src/main/java/dev/apexnative/navigation/react/ScreenInsets.kt +6 -6
- package/android/src/main/java/dev/apexnative/navigation/react/ScreenRegions.kt +10 -5
- package/android/src/main/java/dev/apexnative/navigation/react/events/AppearanceDispatcher.kt +30 -39
- package/android/src/main/java/dev/apexnative/navigation/react/events/EventEmitter.kt +34 -7
- package/android/src/main/java/dev/apexnative/navigation/react/events/NavigationState.kt +154 -0
- package/android/src/main/java/dev/apexnative/navigation/safearea/SafeAreaView.kt +6 -4
- package/android/src/main/java/dev/apexnative/navigation/slots/SlotScreenView.kt +12 -12
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/arrangement/ArrangementController.kt +3 -2
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/bottomtabs/BottomTabsController.kt +9 -11
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/component/ComponentViewController.kt +6 -2
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/component/ContentReadiness.kt +1 -1
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/component/ScreenReadiness.kt +103 -56
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/navigator/BackCallbackCheck.kt +50 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/navigator/BackCallbackState.kt +45 -14
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/navigator/Navigator.kt +21 -5
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/navigator/RootCoordinator.kt +2 -2
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/splitview/SplitViewController.kt +3 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/StackController.kt +9 -5
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/search/ScreenSearch.kt +3 -5
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/search/StackSearchPresenter.kt +2 -5
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/topbar/BarComponents.kt +5 -51
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/topbar/TopBarPresenter.kt +4 -9
- package/android/src/main/java/dev/apexnative/navigation/views/bottomtabs/CustomBottomTabItemView.kt +0 -5
- package/cli/doctor/checks/splash.js +4 -22
- package/cli/splash/index.js +3 -1
- package/docs-md/containers/modals.md +2 -2
- package/docs-md/guides/cli.md +1 -2
- package/docs-md/help/troubleshooting.md +2 -2
- package/docs-md/screen-ui/back-and-gestures.md +22 -0
- package/docs-md/start/installation.md +1 -1
- package/ios/CORE.md +6 -6
- package/ios/Contract/ANNCommandAnswer.h +9 -2
- package/ios/Contract/ANNCommandAnswer.mm +25 -12
- package/ios/Core/ANNAppearanceDispatcher.h +5 -4
- package/ios/Core/ANNAppearanceDispatcher.mm +12 -1
- package/ios/Core/ANNNavigationState.h +4 -6
- package/ios/Core/ANNNavigationState.mm +0 -4
- package/ios/Layouts/Root/ANNSplashViewController.h +5 -3
- package/ios/Layouts/Root/ANNSplashViewController.mm +147 -0
- package/ios/Layouts/Stack/ANNPreviewPush.h +5 -5
- package/ios/Layouts/Stack/ANNPreviewPush.mm +85 -22
- package/lib/module/api/commands/commands.js +54 -6
- package/lib/module/api/commands/commands.js.map +1 -1
- package/lib/module/engine/places.js +8 -0
- package/lib/module/engine/places.js.map +1 -1
- package/lib/typescript/api/commands/commands.d.ts.map +1 -1
- package/lib/typescript/api/commands/presentation.d.ts +4 -3
- package/lib/typescript/api/commands/presentation.d.ts.map +1 -1
- package/lib/typescript/engine/places.d.ts +2 -0
- package/lib/typescript/engine/places.d.ts.map +1 -1
- package/lib/typescript/interfaces/Options.d.ts +1 -1
- package/lib/typescript/interfaces/Options.d.ts.map +1 -1
- package/lib/typescript/interfaces/options/animations.d.ts +18 -2
- package/lib/typescript/interfaces/options/animations.d.ts.map +1 -1
- package/lib/typescript/interfaces/options/stack.d.ts +9 -0
- package/lib/typescript/interfaces/options/stack.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/api/commands/commands.ts +48 -7
- package/src/api/commands/presentation.ts +4 -3
- package/src/engine/places.ts +9 -0
- package/src/interfaces/Options.ts +1 -0
- package/src/interfaces/options/animations.ts +19 -2
- package/src/interfaces/options/stack.ts +9 -0
- package/android/src/main/java/dev/apexnative/navigation/react/events/NavigationStateReporter.kt +0 -62
- 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
|
-
///
|
|
11
|
-
/// it on a long press. A tap that commits pushes the screen without an animation and without a
|
|
12
|
-
/// the entry with its key; a preview that goes without being opened destroys its screen and
|
|
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
|
|
15
|
-
// a
|
|
16
|
-
static const
|
|
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
|
-
|
|
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
|
|
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
|
-
//
|
|
114
|
-
|
|
115
|
-
|
|
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 (
|
|
187
|
+
if (last) {
|
|
133
188
|
[self gone:record];
|
|
134
|
-
return;
|
|
189
|
+
return YES;
|
|
135
190
|
}
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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":"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","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","
|
|
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":[]}
|