@apexnative/navigation 1.0.0-alpha.2 → 1.0.0-alpha.4
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 +31 -0
- package/android/CLAUDE.md +38 -9
- package/android/CORE.md +11 -4
- package/android/RECIPES.md +9 -3
- package/android/src/main/java/dev/apexnative/navigation/NavigationActivity.kt +29 -1
- package/android/src/main/java/dev/apexnative/navigation/NavigationApplication.kt +34 -13
- package/android/src/main/java/dev/apexnative/navigation/layout/LayoutChecks.kt +5 -1
- package/android/src/main/java/dev/apexnative/navigation/layout/LayoutNode.kt +6 -2
- package/android/src/main/java/dev/apexnative/navigation/nativescreen/NativeScreenContext.kt +2 -2
- package/android/src/main/java/dev/apexnative/navigation/options/ButtonMenuOptions.kt +2 -2
- package/android/src/main/java/dev/apexnative/navigation/options/ButtonOptions.kt +2 -2
- package/android/src/main/java/dev/apexnative/navigation/options/OptionsCache.kt +8 -4
- package/android/src/main/java/dev/apexnative/navigation/options/StatusBarOptions.kt +7 -3
- package/android/src/main/java/dev/apexnative/navigation/options/UserChoices.kt +159 -0
- package/android/src/main/java/dev/apexnative/navigation/react/CommandAnswer.kt +2 -24
- package/android/src/main/java/dev/apexnative/navigation/react/CommandContract.kt +59 -0
- package/android/src/main/java/dev/apexnative/navigation/react/Hinge.kt +27 -19
- package/android/src/main/java/dev/apexnative/navigation/react/NavigationTurboModule.kt +5 -4
- package/android/src/main/java/dev/apexnative/navigation/react/PendingCalls.kt +48 -0
- package/android/src/main/java/dev/apexnative/navigation/react/events/AppearanceDispatcher.kt +17 -7
- package/android/src/main/java/dev/apexnative/navigation/slots/SlotContainers.kt +10 -7
- package/android/src/main/java/dev/apexnative/navigation/slots/SlotView.kt +4 -3
- package/android/src/main/java/dev/apexnative/navigation/slots/SlotViews.kt +40 -0
- package/android/src/main/java/dev/apexnative/navigation/utils/ImageKey.kt +66 -0
- package/android/src/main/java/dev/apexnative/navigation/utils/ImageLoader.kt +7 -89
- package/android/src/main/java/dev/apexnative/navigation/utils/ImageRequests.kt +76 -0
- package/android/src/main/java/dev/apexnative/navigation/utils/OptionImages.kt +262 -0
- package/android/src/main/java/dev/apexnative/navigation/utils/ViewController.kt +3 -1
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/arrangement/SecondaryScreenPresenter.kt +13 -5
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/bottomtabs/AppliedTabCalls.kt +49 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/bottomtabs/BottomTabsController.kt +92 -19
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/bottomtabs/BottomTabsPresenter.kt +25 -24
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/component/ComponentPresenter.kt +28 -7
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/component/ContentReadiness.kt +1 -1
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/component/RenderWait.kt +27 -7
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/component/ScreenFrame.kt +1 -1
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/modal/ModalAnimations.kt +22 -24
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/modal/ModalCoordinator.kt +79 -13
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/modal/ModalRecord.kt +21 -6
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/modal/ModalSheet.kt +29 -12
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/modal/ModalViews.kt +22 -18
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/navigator/BackCallbackState.kt +4 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/navigator/Navigator.kt +45 -6
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/navigator/RootCoordinator.kt +35 -9
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/overlay/OverlayCoordinator.kt +10 -8
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/parent/Capabilities.kt +11 -4
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/parent/ContainerBackground.kt +3 -3
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/parent/ParentController.kt +3 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/sidemenu/SideMenuController.kt +5 -1
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/splitview/SplitPanes.kt +23 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/splitview/SplitViewController.kt +72 -16
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/BackPreview.kt +287 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/StackCommands.kt +28 -18
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/StackController.kt +164 -13
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/StackDisplay.kt +26 -1
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/StackQueue.kt +136 -40
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/StackTransitions.kt +26 -8
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/StackViews.kt +107 -4
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/fab/FabPresenter.kt +7 -5
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/search/StackSearchPresenter.kt +3 -3
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/topbar/MenuChecks.kt +13 -56
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/topbar/TopBarPresenter.kt +131 -9
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/viewcontroller/ViewController.kt +75 -21
- package/android/src/main/java/dev/apexnative/navigation/views/animations/Curves.kt +29 -11
- package/android/src/main/java/dev/apexnative/navigation/views/bottomtabs/BottomTabs.kt +4 -2
- package/android/src/main/java/dev/apexnative/navigation/views/stack/ScreenEdge.kt +15 -0
- package/android/src/main/java/dev/apexnative/navigation/views/stack/StackLayout.kt +137 -1
- package/android/src/main/java/dev/apexnative/navigation/views/stack/fab/Fab.kt +14 -10
- package/android/src/main/java/dev/apexnative/navigation/views/stack/topbar/TitleBar.kt +8 -1
- package/android/src/main/java/dev/apexnative/navigation/views/stack/topbar/TopBar.kt +26 -4
- package/cli/doctor/checks/app.js +61 -13
- package/cli/migrate/native.js +18 -0
- package/cli/setup/source.js +2 -1
- package/cli/setup/steps/mainApplication.js +134 -19
- package/docs-md/architecture/transitions.md +12 -7
- package/docs-md/containers/modals.md +4 -2
- package/docs-md/containers/overlays.md +3 -1
- package/docs-md/containers/side-menu.md +4 -2
- package/docs-md/containers/tabs.md +2 -0
- package/docs-md/flows/forms-in-a-modal.md +1 -1
- package/docs-md/help/glossary.md +2 -2
- package/docs-md/help/troubleshooting.md +20 -3
- package/docs-md/index.json +12 -0
- package/docs-md/migration/from-react-native-navigation.md +8 -2
- package/docs-md/screen-ui/back-and-gestures.md +8 -2
- package/docs-md/screen-ui/system-ui.md +1 -1
- package/docs-md/start/installation.md +3 -1
- package/ios/CLAUDE.md +17 -5
- package/ios/CORE.md +13 -8
- package/ios/Contract/ANNCommandAnswer.mm +5 -20
- package/ios/Contract/ANNCommandContract.h +15 -0
- package/ios/Contract/ANNCommandContract.mm +78 -0
- package/ios/Core/ANNAppearanceDispatcher.mm +1 -1
- package/ios/Core/ANNErrorHandler.h +1 -1
- package/ios/Core/ANNErrorHandler.mm +3 -1
- package/ios/Core/ANNEventEmitter.h +1 -1
- package/ios/Core/ANNEventEmitter.mm +2 -2
- package/ios/Core/ANNJavaScriptCalls.h +34 -0
- package/ios/Core/ANNJavaScriptCalls.mm +61 -0
- package/ios/Core/ANNNavigationState.h +7 -3
- package/ios/Core/ANNNavigationState.mm +10 -5
- package/ios/Core/ANNNodeHelper.h +32 -12
- package/ios/Core/ANNNodeHelper.mm +100 -3
- package/ios/Core/ANNRenderWait.h +15 -1
- package/ios/Core/ANNRenderWait.mm +119 -17
- package/ios/Core/UIViewController+LayoutProtocol.h +9 -2
- package/ios/Core/UIViewController+LayoutProtocol.mm +8 -0
- package/ios/Layouts/Modal/ANNModalCoordinator.h +1 -1
- package/ios/Layouts/Modal/ANNModalCoordinator.mm +55 -14
- package/ios/Layouts/Screen/ANNComponentViewController.h +8 -0
- package/ios/Layouts/Screen/ANNComponentViewController.mm +32 -5
- package/ios/Layouts/Screen/ANNScreenPlace.h +41 -0
- package/ios/Layouts/Screen/ANNScreenPlace.mm +175 -0
- package/ios/Layouts/SplitView/ANNSplitViewCommands.h +3 -2
- package/ios/Layouts/SplitView/ANNSplitViewCommands.mm +105 -39
- package/ios/Layouts/SplitView/ANNSplitViewController.mm +4 -2
- package/ios/Layouts/Stack/ANNStackCommands.mm +1 -0
- package/ios/Layouts/Stack/ANNStackController.mm +26 -3
- package/ios/Layouts/Stack/ANNStackQueue.h +3 -1
- package/ios/Layouts/Stack/ANNStackQueue.mm +56 -43
- package/ios/Layouts/Stack/UINavigationController+ANNCommands.h +4 -2
- package/ios/Layouts/Stack/UINavigationController+ANNCommands.mm +2 -3
- package/ios/Layouts/Tabs/ANNBottomTabItemBuilder.h +4 -0
- package/ios/Layouts/Tabs/ANNBottomTabItemBuilder.mm +11 -0
- package/ios/Layouts/Tabs/ANNBottomTabsController.mm +13 -5
- package/ios/Layouts/Tabs/ANNBottomTabsPresenter.h +2 -2
- package/ios/Layouts/Tabs/ANNBottomTabsPresenter.mm +109 -7
- package/ios/Options/ANNOptionsCache.h +7 -6
- package/ios/Options/ANNSearchBarOptions.h +4 -3
- package/ios/Options/ANNUserChoice.h +57 -0
- package/ios/Options/ANNUserChoice.mm +44 -0
- package/ios/Options/Params/ANNImageSource.h +61 -0
- package/ios/Options/Params/ANNImageSource.mm +101 -0
- package/ios/Options/Params/ANNOptionImages.h +37 -0
- package/ios/Options/Params/ANNOptionImages.mm +284 -0
- package/ios/Options/Params/Image.h +11 -2
- package/ios/Options/Params/Image.mm +15 -2
- package/ios/Options/Params/ImageParser.h +5 -5
- package/ios/Options/Params/ImageParser.mm +28 -46
- package/ios/Public/ApexNavigation/ApexNavigation.h +1 -1
- package/ios/RECIPES.md +11 -5
- package/ios/React/Slots/ANNSlotComponentView.mm +24 -17
- package/ios/React/Slots/ANNSlotContainers.h +14 -6
- package/ios/React/Slots/ANNSlotContainers.mm +75 -2
- package/ios/TopBar/ANNBarButtons.h +9 -5
- package/ios/TopBar/ANNBarButtons.mm +211 -63
- package/ios/TopBar/ANNIconButtonImage.h +1 -0
- package/ios/TopBar/ANNIconButtonImage.mm +34 -1
- package/ios/TopBar/ANNLargeTitlePresenter.h +13 -0
- package/ios/TopBar/ANNLargeTitlePresenter.mm +26 -3
- package/ios/TopBar/ANNSearchPresenter.mm +170 -19
- package/ios/TopBar/ANNTopBarPresenter.h +5 -0
- package/ios/TopBar/ANNTopBarPresenter.mm +60 -11
- package/ios/TurboModules/ANNTurboModule.mm +39 -21
- package/lib/module/ARCHITECTURE.md +18 -18
- package/lib/module/adapters/NativeANNTurboModule.js.map +1 -1
- package/lib/module/api/hooks/useNavigation.js +8 -3
- package/lib/module/api/hooks/useNavigation.js.map +1 -1
- package/lib/module/api/navigation.js.map +1 -1
- package/lib/module/engine/commands.js +9 -7
- package/lib/module/engine/commands.js.map +1 -1
- package/lib/module/engine/layout.js +13 -9
- package/lib/module/engine/layout.js.map +1 -1
- package/lib/module/engine/options.js +44 -11
- package/lib/module/engine/options.js.map +1 -1
- package/lib/module/engine/places.js +44 -7
- package/lib/module/engine/places.js.map +1 -1
- package/lib/module/engine/props.js +30 -1
- package/lib/module/engine/props.js.map +1 -1
- package/lib/module/engine/rememberedOptions.js +1 -1
- package/lib/module/engine/rememberedOptions.js.map +1 -1
- package/lib/module/engine/screens.js +22 -12
- package/lib/module/engine/screens.js.map +1 -1
- package/lib/module/interfaces/contract/commands.json +101 -0
- package/lib/typescript/adapters/NativeANNTurboModule.d.ts +5 -2
- package/lib/typescript/adapters/NativeANNTurboModule.d.ts.map +1 -1
- package/lib/typescript/api/events/navigationEvents.d.ts +1 -1
- package/lib/typescript/api/events/navigationEvents.d.ts.map +1 -1
- package/lib/typescript/api/hooks/useNavigation.d.ts +1 -1
- package/lib/typescript/api/hooks/useNavigation.d.ts.map +1 -1
- package/lib/typescript/api/navigation.d.ts +4 -1
- package/lib/typescript/api/navigation.d.ts.map +1 -1
- package/lib/typescript/engine/commands.d.ts.map +1 -1
- package/lib/typescript/engine/options.d.ts +5 -2
- package/lib/typescript/engine/options.d.ts.map +1 -1
- package/lib/typescript/engine/places.d.ts +5 -2
- package/lib/typescript/engine/places.d.ts.map +1 -1
- package/lib/typescript/engine/props.d.ts +8 -1
- package/lib/typescript/engine/props.d.ts.map +1 -1
- package/lib/typescript/engine/rememberedOptions.d.ts.map +1 -1
- package/lib/typescript/engine/screens.d.ts.map +1 -1
- package/lib/typescript/interfaces/ComponentEvents.d.ts +2 -2
- package/lib/typescript/interfaces/ComponentEvents.d.ts.map +1 -1
- package/lib/typescript/interfaces/Events.d.ts +19 -10
- package/lib/typescript/interfaces/Events.d.ts.map +1 -1
- package/lib/typescript/interfaces/options/animations.d.ts +15 -7
- package/lib/typescript/interfaces/options/animations.d.ts.map +1 -1
- package/lib/typescript/interfaces/options/buttons.d.ts +13 -5
- package/lib/typescript/interfaces/options/buttons.d.ts.map +1 -1
- package/lib/typescript/interfaces/options/modals.d.ts +18 -13
- package/lib/typescript/interfaces/options/modals.d.ts.map +1 -1
- package/lib/typescript/interfaces/options/system.d.ts +6 -3
- package/lib/typescript/interfaces/options/system.d.ts.map +1 -1
- package/lib/typescript/interfaces/options/topBar.d.ts +22 -9
- package/lib/typescript/interfaces/options/topBar.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/ARCHITECTURE.md +18 -18
- package/src/adapters/NativeANNTurboModule.ts +5 -2
- package/src/api/events/navigationEvents.ts +1 -1
- package/src/api/hooks/useNavigation.ts +9 -4
- package/src/api/navigation.ts +4 -1
- package/src/engine/commands.ts +19 -7
- package/src/engine/layout.ts +16 -9
- package/src/engine/options.ts +39 -11
- package/src/engine/places.ts +56 -7
- package/src/engine/props.ts +30 -1
- package/src/engine/rememberedOptions.ts +4 -1
- package/src/engine/screens.tsx +23 -13
- package/src/interfaces/ComponentEvents.ts +2 -2
- package/src/interfaces/Events.ts +19 -10
- package/src/interfaces/contract/commands.json +101 -0
- package/src/interfaces/options/animations.ts +15 -7
- package/src/interfaces/options/buttons.ts +13 -5
- package/src/interfaces/options/modals.ts +18 -13
- package/src/interfaces/options/system.ts +6 -3
- package/src/interfaces/options/topBar.ts +22 -9
|
@@ -85,24 +85,24 @@ form of `src/api/events/navigationEvents.ts`. Everything in `src/engine` is inte
|
|
|
85
85
|
|
|
86
86
|
## `src/engine` — the engine
|
|
87
87
|
|
|
88
|
-
| Module | What it does
|
|
89
|
-
| --------------------------- |
|
|
90
|
-
| `native.ts` | `commands`: the TurboModule (`src/adapters/NativeANNTurboModule.ts`). `onNativeEvent(name, listener)`: one native event, `ANN.<name>`. iOS sends events through `ANNTurboEventEmitter`; Android without a module. `getLaunchLink()`: the URL that launched the native side, null without the native side (Jest). `getStartInfo()`: `{ coldStart, splashLogo, arrangements }`, asked once; without the native side a cold start without a logo and without arrangements.
|
|
91
|
-
| `layout.ts` | `toNativeLayout(layout)`: a `LayoutNode`, `{ id, type, data: { name, options, passProps?, functions?, key?, columns? }, children }`. For a screen, in this order: a name that shows a pair becomes an `Arrangement` node (see Pairs, regions and the hinge), an unknown name fails, its id, its own options under those of the show, the press handlers of its buttons taken out; then a native screen goes as an external component (`showNativeScreen`), a React screen with its `key`, its props kept here, as a slot in one tree.
|
|
92
|
-
| `options.ts` | `toNativeOptions(options)`: colors (iOS: a number, `DynamicColorIOS` or `'NoColor'`; Android: `{ light, dark }`), images (`require` resolved), components in options (`componentId`, their props kept here), the props of buttons with a component, the roots of the bar buttons' components (`*Buttons`, the toolbar's `buttons`) remembered. Options come in their own form only.
|
|
93
|
-
| `commands.ts` | `setRoot`, `push`, `pop`, `popTo`, `popToRoot`, `setStackRoot`, `showInColumn`, `setColumnShown`, `showModal`, `dismissModal`, `dismissAllModals`, `showOverlay`, `dismissOverlay`, `dismissAllOverlays`, `mergeOptions`, `setDefaultOptions`. One that shows screens waits for lazy ones (`afterLoading`), checks the ids (`checkIds`), notes the places and waits for the hooks of native screens (`whenNativeScreensReady`). On Android, in one tree, a push goes through `preparePush` first (see One command).
|
|
94
|
-
| `screens.tsx` | The screens by name: a React component with its options, `key`, `load` (a lazy screen) and `arrangement` (its pair, if it has a secondary), a native screen (`nativeName`, the controller of its `useProps`, `arrangement`), or a pair entry of `defineArrangement` (`pair`). `arrangementOf(name)`: the pair a name shows; `checkArrangements` at registration, `checkArrangement` when a lazy screen's pair shows. `loadScreens`/`afterLoading`: a command goes once its lazy screens loaded, at once when none waits. A React screen is registered with `AppRegistry` as a root (`screenRoot`) that renders it with the props left for its id. After a JavaScript reload React Native starts the old roots again under the new screens' ids:
|
|
95
|
-
| `nativeScreens.ts` | The native screens shown, by id. Data props go as JSON (`passProps`); functions stay here, their names in `data.functions`, and the native side calls them (`ANN.NativeScreenCall`, answered with `resolveNativeScreenCall`). With `useProps`: the hidden host runs the hook (`startHost`, 5 s to start), the command waits for its first result, later changes go with `updateNativeScreenProps`. `ANN.NativeScreenReleased` forgets one.
|
|
96
|
-
| `props.ts` | The props of screens and of components in options, by id: a command puts them here before the native side creates the view; React Native passes a root only its id. Also which roots are the components of bar buttons (`isButtonRoot`): on iOS their wrapper centers the content in the slot.
|
|
97
|
-
| `events.ts` | `toScreenEvent(event)`: an event of a screen as `listeners`, `navigation.on`, the screen hooks and `onPress` get it: the screen as `screen: { id, name }`, without the fields of the native side.
|
|
98
|
-
| `places.ts` | Where each screen is, noted as the commands build their layouts: the root, a modal or an overlay, its stack and its index there, its side menu, its pair (`arrangement`: the pair's id and its placement; `alone` for a primary shown without one, `noteAlone`). The column of a split view each stack shows (`columnOf`, `stackOfColumn`), and whether a split view's columns show as one stack (`ANN.SplitViewColumnsStacked`, `listenToSplitViews`): `showInColumn` notes its screen first in the column's stack, or over the screen that asks in the compact column, and the first screen of a column over the one before it can pop (`coversColumn`). `canPop`, `canDismiss`, `dismiss` and `placeFor` read it at once; `isGone` knows the last screens that went.
|
|
99
|
-
| `buttons.ts` | The `onPress` handlers of the buttons of each screen and of their menu items, called on `NavigationButtonPressed`; the API gives the event its form (`setPressEvent`).
|
|
100
|
-
| `tabs.ts` | The press handlers of `Tab().onPress()`: they come with the tabs' layout, stay under the id the tabs are shown with, and go once every React screen shown in the tabs (pushed ones too) unmounted.
|
|
101
|
-
| `slots.ts` | One tree (`appProvider`): `slotName` sends a React screen as `slot:<name>`, the native side gives it an empty container, and the slot with its id in `SlotHost` renders it. `withSlots` takes back the slots of a failed command; `ANN.SlotDestroyed` removes one. For a push on Android: `holdSlot` (nothing renders until the native side laid the screen out), `showSlot` (at its `SlotFrame`; resolves once React committed it, `slotCommitted`), `preparedPadding` (the first padding of its safe area view).
|
|
102
|
-
| `launchState.ts` | The last root and default options: Android destroys the activity while JavaScript lives on and sends `AppLaunched` again; the app sets them again.
|
|
103
|
-
| `backListeners.ts` | Android: wraps `BackHandler.addEventListener` at the launch to count the listeners, and tells the native side whether there is one (`setBackListeners`): the navigation takes the back button only while it can go back or JavaScript listens. A listener added before the launch isn't counted.
|
|
104
|
-
| `reactMeasures.ts` | Development only: every command that shows or closes screens drops React's `performance.measure` entries of component renders (named after the component with U+200B in front). React Native keeps them without a limit, and a long session ran out of memory; the app's own measures stay.
|
|
105
|
-
| `ids.ts`, `mergeOptions.ts` | `nextId` and the merge of options; see Ids and Options in layers.
|
|
88
|
+
| Module | What it does |
|
|
89
|
+
| --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
90
|
+
| `native.ts` | `commands`: the TurboModule (`src/adapters/NativeANNTurboModule.ts`). `onNativeEvent(name, listener)`: one native event, `ANN.<name>`. iOS sends events through `ANNTurboEventEmitter`; Android without a module. `getLaunchLink()`: the URL that launched the native side, null without the native side (Jest). `getStartInfo()`: `{ coldStart, splashLogo, arrangements }`, asked once; without the native side a cold start without a logo and without arrangements. |
|
|
91
|
+
| `layout.ts` | `toNativeLayout(layout)`: a `LayoutNode`, `{ id, type, data: { name, options, passProps?, functions?, key?, columns? }, children }`. For a screen, in this order: a name that shows a pair becomes an `Arrangement` node (see Pairs, regions and the hinge), an unknown name fails, its id, its own options under those of the show, the press handlers of its buttons taken out; then a native screen goes as an external component (`showNativeScreen`), a React screen with its `key`, its props kept here, as a slot in one tree. |
|
|
92
|
+
| `options.ts` | `toNativeOptions(options, owner)`: colors (iOS: a number, `DynamicColorIOS` or `'NoColor'`; Android: `{ light, dark }`), images (`require` resolved), components in options (`componentId`, their props kept here; without an `id` of their own, `<owner>/<place>/<name>`, e.g. `Component12/topBar.title/Clock`, a list item by its id where it has one (`topBar.rightButtons[Save]`), the same on every `mergeOptions` of the node, so the native side keeps the mounted root), the props of buttons with a component, the roots of the bar buttons' components (`*Buttons`, the toolbar's `buttons`) remembered. Options come in their own form only. |
|
|
93
|
+
| `commands.ts` | `setRoot`, `push`, `pop`, `popTo`, `popToRoot`, `setStackRoot`, `showInColumn`, `setColumnShown`, `showModal`, `dismissModal`, `dismissAllModals`, `showOverlay`, `dismissOverlay`, `dismissAllOverlays`, `mergeOptions`, `setDefaultOptions`. One that shows screens waits for lazy ones (`afterLoading`), checks the ids (`checkIds`), notes the places and waits for the hooks of native screens (`whenNativeScreensReady`). On Android, in one tree, a push goes through `preparePush` first (see One command). |
|
|
94
|
+
| `screens.tsx` | The screens by name: a React component with its options, `key`, `load` (a lazy screen) and `arrangement` (its pair, if it has a secondary), a native screen (`nativeName`, the controller of its `useProps`, `arrangement`), or a pair entry of `defineArrangement` (`pair`). `arrangementOf(name)`: the pair a name shows; `checkArrangements` at registration, `checkArrangement` when a lazy screen's pair shows. `loadScreens`/`afterLoading`: a command goes once its lazy screens loaded, at once when none waits. A React screen is registered with `AppRegistry` as a root (`screenRoot`) that renders it with the props left for its id. After a JavaScript reload React Native starts the old roots again under the new screens' ids: a root that unmounts while another root of the id is mounted leaves the screen alone. The props of a component the library named in options go with its node, not with a root (several roots may show one default). |
|
|
95
|
+
| `nativeScreens.ts` | The native screens shown, by id. Data props go as JSON (`passProps`); functions stay here, their names in `data.functions`, and the native side calls them (`ANN.NativeScreenCall`, answered with `resolveNativeScreenCall`). With `useProps`: the hidden host runs the hook (`startHost`, 5 s to start), the command waits for its first result, later changes go with `updateNativeScreenProps`. `ANN.NativeScreenReleased` forgets one. |
|
|
96
|
+
| `props.ts` | The props of screens and of components in options, by id: a command puts them here before the native side creates the view; React Native passes a root only its id. Also which roots are the components of bar buttons (`isButtonRoot`): on iOS their wrapper centers the content in the slot. |
|
|
97
|
+
| `events.ts` | `toScreenEvent(event)`: an event of a screen as `listeners`, `navigation.on`, the screen hooks and `onPress` get it: the screen as `screen: { id, name }`, without the fields of the native side. |
|
|
98
|
+
| `places.ts` | Where each screen is, noted as the commands build their layouts: the root, a modal or an overlay, its stack and its index there, its side menu, its pair (`arrangement`: the pair's id and its placement; `alone` for a primary shown without one, `noteAlone`). The column of a split view each stack shows (`columnOf`, `stackOfColumn`), and whether a split view's columns show as one stack (`ANN.SplitViewColumnsStacked`, `listenToSplitViews`): `showInColumn` notes its screen first in the column's stack, or over the screen that asks in the compact column, and the first screen of a column over the one before it can pop (`coversColumn`). `canPop`, `canDismiss`, `dismiss` and `placeFor` read it at once; `isGone` knows the last screens that went. It also notes the layouts each screen shows in (`layoutsOf`): a layout whose last screen went is gone, and so are the props of the components named in its options. |
|
|
99
|
+
| `buttons.ts` | The `onPress` handlers of the buttons of each screen and of their menu items, called on `NavigationButtonPressed`; the API gives the event its form (`setPressEvent`). |
|
|
100
|
+
| `tabs.ts` | The press handlers of `Tab().onPress()`: they come with the tabs' layout, stay under the id the tabs are shown with, and go once every React screen shown in the tabs (pushed ones too) unmounted. |
|
|
101
|
+
| `slots.ts` | One tree (`appProvider`): `slotName` sends a React screen as `slot:<name>`, the native side gives it an empty container, and the slot with its id in `SlotHost` renders it. `withSlots` takes back the slots of a failed command; `ANN.SlotDestroyed` removes one. For a push on Android: `holdSlot` (nothing renders until the native side laid the screen out), `showSlot` (at its `SlotFrame`; resolves once React committed it, `slotCommitted`), `preparedPadding` (the first padding of its safe area view). |
|
|
102
|
+
| `launchState.ts` | The last root and default options: Android destroys the activity while JavaScript lives on and sends `AppLaunched` again; the app sets them again. |
|
|
103
|
+
| `backListeners.ts` | Android: wraps `BackHandler.addEventListener` at the launch to count the listeners, and tells the native side whether there is one (`setBackListeners`): the navigation takes the back button only while it can go back or JavaScript listens. A listener added before the launch isn't counted. |
|
|
104
|
+
| `reactMeasures.ts` | Development only: every command that shows or closes screens drops React's `performance.measure` entries of component renders (named after the component with U+200B in front). React Native keeps them without a limit, and a long session ran out of memory; the app's own measures stay. |
|
|
105
|
+
| `ids.ts`, `mergeOptions.ts` | `nextId` and the merge of options; see Ids and Options in layers. |
|
|
106
106
|
|
|
107
107
|
## The start of the app
|
|
108
108
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["TurboModuleRegistry","get"],"sourceRoot":"../../../src","sources":["adapters/NativeANNTurboModule.ts"],"mappings":";;AAAA,SAASA,mBAAmB,QAA6C,cAAc;;AAEvF;AACA;AACA;AACA;AACA;;
|
|
1
|
+
{"version":3,"names":["TurboModuleRegistry","get"],"sourceRoot":"../../../src","sources":["adapters/NativeANNTurboModule.ts"],"mappings":";;AAAA,SAASA,mBAAmB,QAA6C,cAAc;;AAEvF;AACA;AACA;AACA;AACA;;AA+FA;AACA,eAAeA,mBAAmB,CAACC,GAAG,CAAO,gBAAgB,CAAC","ignoreList":[]}
|
|
@@ -47,12 +47,17 @@ function stackCommands(id) {
|
|
|
47
47
|
};
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
-
/**
|
|
50
|
+
/**
|
|
51
|
+
* The commands of the center for a menu screen: the menu closes as the center changes, and the command resolves once
|
|
52
|
+
* both are done.
|
|
53
|
+
*/
|
|
51
54
|
function fromCenter(center, menuScreen) {
|
|
52
55
|
const centerCommands = stackCommands(center);
|
|
56
|
+
// As in the system's apps, the menu starts to close at the pick and the center changes as it goes, so a push is seen
|
|
57
|
+
// sliding in. The command settles after both, so the next one acts from the center; either one's error rejects it.
|
|
53
58
|
const closing = run => async (...args) => {
|
|
54
|
-
const
|
|
55
|
-
await
|
|
59
|
+
const closed = closeMenu(menuScreen);
|
|
60
|
+
const [result] = await Promise.all([run(...args), closed]);
|
|
56
61
|
return result;
|
|
57
62
|
};
|
|
58
63
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useContext","useMemo","setPressEvent","commands","command","navigation","ScreenContext","whenTabShows","placeOf","centerOf","closeMenu","openMenu","useNavigation","screen","Error","screenNavigation","stackCommands","id","push","name","config","pop","popToRoot","replace","setStack","entries","showInColumn","selectTab","tab","shown","setTabBadge","badge","fromCenter","center","menuScreen","centerCommands","closing","run","args","result","own","stack","place","container","menu","part","popTo","screenId","showModal","dismiss","canPop","canDismiss","goBack","canGoBack","showOverlay","setOptions","options","showColumn","column","setColumnShown","hideColumn","side","event"],"sourceRoot":"../../../../src","sources":["api/hooks/useNavigation.ts"],"mappings":";;AAAA,SAASA,UAAU,EAAEC,OAAO,QAAQ,OAAO;AAC3C,SAASC,aAAa,QAAQ,yBAAsB;AACpD,OAAO,KAAKC,QAAQ,MAAM,yBAAsB;AAEhD,SAASC,OAAO,QAAQ,uBAAoB;AAQ5C,SAA6BC,UAAU,QAA6B,kBAAe;AAEnF,SAASC,aAAa,QAAyB,+BAA4B;AAC3E,SAASC,YAAY,QAAQ,6BAA0B;AACvD,SAASC,OAAO,QAAQ,wBAAqB;AAC7C,SAASC,QAAQ,EAAEC,SAAS,EAAEC,QAAQ,QAAQ,0BAAuB;;AAGrE;;AAuGA;AACA;AACA;AACA;AACA;;AAIA;AACA,OAAO,SAASC,aAAaA,CAAA,EAAqB;EAChD,MAAMC,MAAM,GAAGb,UAAU,CAACM,aAAa,CAAC;EACxC,IAAI,CAACO,MAAM,EAAE;IACX,MAAM,IAAIC,KAAK,CACb,qGACF,CAAC;EACH;EACA,OAAOb,OAAO,CAAC,MAAMc,gBAAgB,CAACF,MAAM,CAAC,EAAE,CAACA,MAAM,CAAC,CAAC;AAC1D;;AAEA;;AAaA,SAASG,aAAaA,CAACC,EAAU,EAAiB;EAChD,OAAO;IACLC,IAAI,EAAGA,CAACC,IAAY,EAAEC,MAAmB,KACvCjB,QAAQ,CAACe,IAAI,CAACD,EAAE,EAAEE,IAAI,EAAEC,MAAM,CAA2B;IAC3DC,GAAG,EAAEA,CAAA,KAAMlB,QAAQ,CAACkB,GAAG,CAACJ,EAAE,CAAC;IAC3BK,SAAS,EAAEA,CAAA,KAAMnB,QAAQ,CAACmB,SAAS,CAACL,EAAE,CAAC;IACvCM,OAAO,EAAGA,CAACJ,IAAY,EAAEC,MAAmB,KAC1CjB,QAAQ,CAACoB,OAAO,CAACN,EAAE,EAAEE,IAAI,EAAEC,MAAM,CAA8B;IACjEI,QAAQ,EAAGA,CAAC,GAAGC,OAAqB,KAClCtB,QAAQ,CAACqB,QAAQ,CAACP,EAAE,EAAEQ,OAAO,CAA+B;IAC9DC,YAAY,EAAGA,CAACP,IAAY,EAAEC,MAAqB,KACjDjB,QAAQ,CAACuB,YAAY,CAACT,EAAE,EAAEE,IAAI,EAAEC,MAAM,CAAmC;IAC3E;IACAO,SAAS,EAAGC,GAAG,IACbxB,OAAO,CAAC,WAAW,EAAE,YAAY;MAC/B,MAAMyB,KAAK,GAAGtB,YAAY,CAACqB,GAAG,CAAC;MAC/BzB,QAAQ,CAACwB,SAAS,CAACV,EAAE,EAAEW,GAAG,CAAC;MAC3B,MAAMC,KAAK;IACb,CAAC,CAAC;IACJC,WAAW,EAAEA,CAACC,KAAK,EAAEH,GAAG,KACtBxB,OAAO,CAAC,aAAa,EAAE,YAAYD,QAAQ,CAAC2B,WAAW,CAACb,EAAE,EAAEc,KAAK,EAAEH,GAAG,CAAC;EAC3E,CAAC;AACH;;AAEA;AACA,SAASI,UAAUA,CAACC,MAAc,EAAEC,UAAkB,EAAiB;EACrE,MAAMC,cAAc,GAAGnB,aAAa,CAACiB,MAAM,CAAC;EAC5C,MAAMG,OAAO,GACsBC,GAAuC,IACxE,OAAO,GAAGC,IAAU,KAAK;IACvB,MAAMC,MAAM,GAAG,
|
|
1
|
+
{"version":3,"names":["useContext","useMemo","setPressEvent","commands","command","navigation","ScreenContext","whenTabShows","placeOf","centerOf","closeMenu","openMenu","useNavigation","screen","Error","screenNavigation","stackCommands","id","push","name","config","pop","popToRoot","replace","setStack","entries","showInColumn","selectTab","tab","shown","setTabBadge","badge","fromCenter","center","menuScreen","centerCommands","closing","run","args","closed","result","Promise","all","own","stack","place","container","menu","part","popTo","screenId","showModal","dismiss","canPop","canDismiss","goBack","canGoBack","showOverlay","setOptions","options","showColumn","column","setColumnShown","hideColumn","side","event"],"sourceRoot":"../../../../src","sources":["api/hooks/useNavigation.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["setRoot","withSlots","getActiveApp","resolveRoot","commands","command","closeMenu","openMenu","onNavigationEvent","buildRoot","getNavigationState","whenTabShows","getAppContext","setAppContext","getPendingLink","openPendingLink","setPendingLink","setDirection","setTheme","startedApp","app","Error","mounted","switchTo","target","param","root","roots","currentScreen","screen","id","seenScreen","check","fromCurrent","name","run","afterStart","navigation","push","config","pop","popTo","screenId","popToRoot","replace","canPop","canDismiss","goBack","showColumn","column","setColumnShown","hideColumn","side","canGoBack","setStack","entries","showInColumn","showModal","dismissModal","modalId","dismissAllModals","showOverlay","dismissOverlay","overlayId","dismissAllOverlays","selectTab","tab","shown","setTabBadge","badge","getContext","setContext","next","getState","clearPendingLink","on"],"sourceRoot":"../../../src","sources":["api/navigation.ts"],"mappings":";;AAAA,SAASA,OAAO,QAAQ,uBAAoB;AAC5C,SAASC,SAAS,QAAQ,oBAAiB;AAC3C,SAASC,YAAY,QAAQ,oBAAiB;AAC9C,SAASC,WAAW,QAAwB,gBAAa;AACzD,OAAO,KAAKC,QAAQ,MAAM,wBAAqB;AAE/C,SAASC,OAAO,QAAQ,sBAAmB;AAC3C,SAASC,SAAS,EAAEC,QAAQ,QAAQ,yBAAsB;AAE1D,SAGEC,iBAAiB,QACZ,8BAA2B;AAClC,SAASC,SAAS,QAA0C,kBAAe;AAC3E,SAASC,kBAAkB,EAAwBC,YAAY,QAAQ,4BAAyB;AAGhG,SAASC,aAAa,EAAEC,aAAa,QAAQ,yBAAsB;AACnE,SAASC,cAAc,EAAEC,eAAe,EAAEC,cAAc,QAAQ,2BAAwB;AAExF,SAGEC,YAAY,EACZC,QAAQ,QACH,kBAAe;;AAYtB;;
|
|
1
|
+
{"version":3,"names":["setRoot","withSlots","getActiveApp","resolveRoot","commands","command","closeMenu","openMenu","onNavigationEvent","buildRoot","getNavigationState","whenTabShows","getAppContext","setAppContext","getPendingLink","openPendingLink","setPendingLink","setDirection","setTheme","startedApp","app","Error","mounted","switchTo","target","param","root","roots","currentScreen","screen","id","seenScreen","check","fromCurrent","name","run","afterStart","navigation","push","config","pop","popTo","screenId","popToRoot","replace","canPop","canDismiss","goBack","showColumn","column","setColumnShown","hideColumn","side","canGoBack","setStack","entries","showInColumn","showModal","dismissModal","modalId","dismissAllModals","showOverlay","dismissOverlay","overlayId","dismissAllOverlays","selectTab","tab","shown","setTabBadge","badge","getContext","setContext","next","getState","clearPendingLink","on"],"sourceRoot":"../../../src","sources":["api/navigation.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -9,7 +9,7 @@ import { whenNativeScreensReady } from "./nativeScreens.js";
|
|
|
9
9
|
import { commands as native } from "./native.js";
|
|
10
10
|
import { toNativeOptions } from "./options.js";
|
|
11
11
|
import { dropReactRenderMeasures } from "./reactMeasures.js";
|
|
12
|
-
import { columnOf, forgetPlace, notePlaces, placeOf, stackOfColumn } from "./places.js";
|
|
12
|
+
import { columnOf, forgetPlace, layoutsOf, notePlaces, placeOf, stackOfColumn } from "./places.js";
|
|
13
13
|
import { forgetProps } from "./props.js";
|
|
14
14
|
import { forgetMergedOptions, rememberMergedOptions, rootGoesOut, sentRoot } from "./rememberedOptions.js";
|
|
15
15
|
import { afterLoading } from "./screens.js";
|
|
@@ -101,7 +101,7 @@ export function setRoot(root) {
|
|
|
101
101
|
}
|
|
102
102
|
export function setDefaultOptions(options) {
|
|
103
103
|
rememberDefaultOptions(options);
|
|
104
|
-
native.setDefaultOptions(toNativeOptions(options));
|
|
104
|
+
native.setDefaultOptions(toNativeOptions(options, 'defaultOptions'));
|
|
105
105
|
}
|
|
106
106
|
|
|
107
107
|
// The show commands that wait in JS, by number: for lazy screens to load, for the first props of native screens, for a
|
|
@@ -120,7 +120,7 @@ const preparedScreens = new Set();
|
|
|
120
120
|
* engine remembers them by the node's id, so the root set again for a new launch of the native side shows them too.
|
|
121
121
|
*/
|
|
122
122
|
export function mergeOptions(componentId, options) {
|
|
123
|
-
const nativeOptions = toNativeOptions(options);
|
|
123
|
+
const nativeOptions = toNativeOptions(options, componentId);
|
|
124
124
|
const send = () => {
|
|
125
125
|
rememberMergedOptions(componentId, options);
|
|
126
126
|
native.mergeOptions(componentId, nativeOptions);
|
|
@@ -196,7 +196,7 @@ export function push(componentId, layout, wanted = () => true) {
|
|
|
196
196
|
showScreensFrom(componentId, node);
|
|
197
197
|
// Over the screen it is pushed from, in its stack.
|
|
198
198
|
const from = placeOf(componentId);
|
|
199
|
-
notePlaces(node, from?.container ?? 'root', from?.stack ?? null, (from?.index ?? 0) + 1, from?.menu, from?.layer);
|
|
199
|
+
notePlaces(node, from?.container ?? 'root', from?.stack ?? null, (from?.index ?? 0) + 1, from?.menu, from?.layer, layoutsOf(componentId));
|
|
200
200
|
return whenNativeScreensReady([node], () => sendPush(commandId, componentId, node, prepares, wanted, goneOut).then(shownId => {
|
|
201
201
|
// A screen with a key went back to the one with the same key: the new screen never shows.
|
|
202
202
|
if (shownId !== node.id) forgetNeverShown(node.id);
|
|
@@ -303,7 +303,7 @@ export function setStackRoot(componentId, children) {
|
|
|
303
303
|
const nodes = children.map(toNativeLayout);
|
|
304
304
|
nodes.forEach(node => showScreensFrom(componentId, node));
|
|
305
305
|
const from = placeOf(componentId);
|
|
306
|
-
nodes.forEach((node, index) => notePlaces(node, from?.container ?? 'root', from?.stack ?? null, index, from?.menu, from?.layer));
|
|
306
|
+
nodes.forEach((node, index) => notePlaces(node, from?.container ?? 'root', from?.stack ?? null, index, from?.menu, from?.layer, layoutsOf(componentId)));
|
|
307
307
|
return whenNativeScreensReady(nodes, () => inOrder(() => sendShow(goneOut, () => native.setStackRoot(commandId, componentId, nodes))));
|
|
308
308
|
}));
|
|
309
309
|
}
|
|
@@ -316,7 +316,9 @@ export function showInColumn(componentId, column, layout) {
|
|
|
316
316
|
showScreensFrom(componentId, node);
|
|
317
317
|
const from = placeOf(componentId);
|
|
318
318
|
const at = columnPlace(componentId, column);
|
|
319
|
-
|
|
319
|
+
// In the split view of the screen it comes from, and in the column's stack.
|
|
320
|
+
const within = at.stack ? [...layoutsOf(componentId), at.stack] : layoutsOf(componentId);
|
|
321
|
+
notePlaces(node, from?.container ?? 'root', at.stack, at.index, from?.menu, from?.layer, within);
|
|
320
322
|
return whenNativeScreensReady([node], () => inOrder(() => sendShow(goneOut, () => native.showInColumn(commandId, componentId, column, node))));
|
|
321
323
|
}));
|
|
322
324
|
}
|
|
@@ -358,7 +360,7 @@ export function showModal(layout) {
|
|
|
358
360
|
export function dismissModal(componentId, options) {
|
|
359
361
|
dropReactRenderMeasures();
|
|
360
362
|
const commandId = nextId('dismissModal');
|
|
361
|
-
return inOrder(() => native.dismissModal(commandId, componentId, options && toNativeOptions(options)));
|
|
363
|
+
return inOrder(() => native.dismissModal(commandId, componentId, options && toNativeOptions(options, componentId)));
|
|
362
364
|
}
|
|
363
365
|
export function dismissAllModals(options) {
|
|
364
366
|
dropReactRenderMeasures();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Platform","clearButtonHandlers","rememberDefaultOptions","rememberRoot","restoresRoot","nextId","toNativeLayout","whenNativeScreensReady","commands","native","toNativeOptions","dropReactRenderMeasures","columnOf","forgetPlace","notePlaces","placeOf","stackOfColumn","forgetProps","forgetMergedOptions","rememberMergedOptions","rootGoesOut","sentRoot","afterLoading","holdSlot","isSlotName","removeSlots","showSlot","forgetTabsScreen","showScreensFrom","NODE_KINDS","checkIds","layouts","stack","seen","Set","visit","value","Array","isArray","forEach","key","item","Object","entries","id","includes","undefined","has","Error","shown","add","screenNames","names","named","name","push","setRoot","root","again","commandId","show","goneOut","layout","modals","map","overlays","modal","overlay","nodes","inOrder","sendShow","setDefaultOptions","options","shows","waitingShows","heldMerges","preparedScreens","mergeOptions","componentId","nativeOptions","send","prepared","some","size","after","run","number","delete","sendHeldMerges","result","error","then","merge","showWaitsUntil","shift","waiting","wanted","node","prepares","preparesPush","from","container","index","menu","layer","sendPush","shownId","forgetNeverShown","screenId","OS","type","data","preparedPushesSent","Promise","reject","before","sent","mine","resolve","queued","prepareAndPush","frame","preparePush","cancelPreparedPush","dismissPreview","previewId","catch","pop","popTo","popToRoot","setStackRoot","children","showInColumn","column","at","columnPlace","fromId","fromColumn","target","split","setColumnShown","showModal","dismissModal","dismissAllModals","showOverlay","dismissOverlay","dismissAllOverlays"],"sourceRoot":"../../../src","sources":["engine/commands.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["Platform","clearButtonHandlers","rememberDefaultOptions","rememberRoot","restoresRoot","nextId","toNativeLayout","whenNativeScreensReady","commands","native","toNativeOptions","dropReactRenderMeasures","columnOf","forgetPlace","layoutsOf","notePlaces","placeOf","stackOfColumn","forgetProps","forgetMergedOptions","rememberMergedOptions","rootGoesOut","sentRoot","afterLoading","holdSlot","isSlotName","removeSlots","showSlot","forgetTabsScreen","showScreensFrom","NODE_KINDS","checkIds","layouts","stack","seen","Set","visit","value","Array","isArray","forEach","key","item","Object","entries","id","includes","undefined","has","Error","shown","add","screenNames","names","named","name","push","setRoot","root","again","commandId","show","goneOut","layout","modals","map","overlays","modal","overlay","nodes","inOrder","sendShow","setDefaultOptions","options","shows","waitingShows","heldMerges","preparedScreens","mergeOptions","componentId","nativeOptions","send","prepared","some","size","after","run","number","delete","sendHeldMerges","result","error","then","merge","showWaitsUntil","shift","waiting","wanted","node","prepares","preparesPush","from","container","index","menu","layer","sendPush","shownId","forgetNeverShown","screenId","OS","type","data","preparedPushesSent","Promise","reject","before","sent","mine","resolve","queued","prepareAndPush","frame","preparePush","cancelPreparedPush","dismissPreview","previewId","catch","pop","popTo","popToRoot","setStackRoot","children","showInColumn","column","at","columnPlace","within","fromId","fromColumn","target","split","setColumnShown","showModal","dismissModal","dismissAllModals","showOverlay","dismissOverlay","dismissAllOverlays"],"sourceRoot":"../../../src","sources":["engine/commands.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -75,7 +75,7 @@ function screen(component, inPair = false, keyed = !inPair) {
|
|
|
75
75
|
type: 'Component',
|
|
76
76
|
data: {
|
|
77
77
|
name: rendersInSlot(name) ? slotName(id, name) : name,
|
|
78
|
-
options: toNativeOptions(options),
|
|
78
|
+
options: toNativeOptions(options, id),
|
|
79
79
|
...(key !== undefined && {
|
|
80
80
|
key
|
|
81
81
|
})
|
|
@@ -136,23 +136,25 @@ function arrangement(component, name, pair) {
|
|
|
136
136
|
};
|
|
137
137
|
}
|
|
138
138
|
function external(component) {
|
|
139
|
+
const id = component.id || nextId('ExternalComponent');
|
|
139
140
|
return {
|
|
140
|
-
id
|
|
141
|
+
id,
|
|
141
142
|
type: 'ExternalComponent',
|
|
142
143
|
data: {
|
|
143
144
|
name: String(component.name),
|
|
144
|
-
options: toNativeOptions(component.options),
|
|
145
|
+
options: toNativeOptions(component.options, id),
|
|
145
146
|
passProps: component.passProps
|
|
146
147
|
},
|
|
147
148
|
children: []
|
|
148
149
|
};
|
|
149
150
|
}
|
|
150
151
|
function parent(type, id, options, children = []) {
|
|
152
|
+
const nodeId = id || nextId(type);
|
|
151
153
|
return {
|
|
152
|
-
id:
|
|
154
|
+
id: nodeId,
|
|
153
155
|
type,
|
|
154
156
|
data: {
|
|
155
|
-
options: toNativeOptions(options)
|
|
157
|
+
options: toNativeOptions(options, nodeId)
|
|
156
158
|
},
|
|
157
159
|
children: children.map(toNativeLayout)
|
|
158
160
|
};
|
|
@@ -174,11 +176,12 @@ function sideMenu(menu) {
|
|
|
174
176
|
data: {},
|
|
175
177
|
children: [toNativeLayout(content)]
|
|
176
178
|
});
|
|
179
|
+
const id = menu.id || nextId('SideMenuRoot');
|
|
177
180
|
return {
|
|
178
|
-
id
|
|
181
|
+
id,
|
|
179
182
|
type: 'SideMenuRoot',
|
|
180
183
|
data: {
|
|
181
|
-
options: toNativeOptions(menu.options)
|
|
184
|
+
options: toNativeOptions(menu.options, id)
|
|
182
185
|
},
|
|
183
186
|
children: [...(menu.left ? [side('SideMenuLeft', menu.left)] : []), side('SideMenuCenter', menu.center), ...(menu.right ? [side('SideMenuRight', menu.right)] : [])]
|
|
184
187
|
};
|
|
@@ -189,11 +192,12 @@ function sideMenu(menu) {
|
|
|
189
192
|
function splitView(split) {
|
|
190
193
|
const columns = [['primary', split.master], ['secondary', split.detail], ['supplementary', split.supplementary], ['compact', split.compact], ['inspector', split.inspector]].filter(column => column[1] !== undefined);
|
|
191
194
|
const present = split.master && split.detail ? columns : [];
|
|
195
|
+
const id = split.id || nextId('SplitView');
|
|
192
196
|
return {
|
|
193
|
-
id
|
|
197
|
+
id,
|
|
194
198
|
type: 'SplitView',
|
|
195
199
|
data: {
|
|
196
|
-
options: toNativeOptions(split.options),
|
|
200
|
+
options: toNativeOptions(split.options, id),
|
|
197
201
|
columns: present.map(([column]) => column)
|
|
198
202
|
},
|
|
199
203
|
children: present.map(([, content]) => toNativeLayout(content))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Platform","mergeOptions","takeButtonHandlers","nextId","showNativeScreen","toNativeOptions","setProps","getStartInfo","noteAlone","arrangementOf","checkArrangement","isReactScreen","nativeScreenName","rendersInSlot","screenKey","screenOptions","slotName","showTabs","TAB_PRESS_HANDLERS","MAX_ANDROID_BOTTOM_TABS","toNativeLayout","layout","sideMenu","bottomTabs","stack","id","options","children","parent","component","screen","externalComponent","external","splitView","Error","Object","keys","join","inPair","keyed","name","String","pair","undefined","arrangement","props","passProps","nativeName","node","own","key","type","data","secondaryProps","part","partName","partProps","primary","arrangements","alone","style","axes","fraction","primaryEdge","compact","secondary","map","tabs","count","length","OS","menu","side","content","left","center","right","split","columns","master","detail","supplementary","inspector","filter","column","present"],"sourceRoot":"../../../src","sources":["engine/layout.ts"],"mappings":"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
|
|
1
|
+
{"version":3,"names":["Platform","mergeOptions","takeButtonHandlers","nextId","showNativeScreen","toNativeOptions","setProps","getStartInfo","noteAlone","arrangementOf","checkArrangement","isReactScreen","nativeScreenName","rendersInSlot","screenKey","screenOptions","slotName","showTabs","TAB_PRESS_HANDLERS","MAX_ANDROID_BOTTOM_TABS","toNativeLayout","layout","sideMenu","bottomTabs","stack","id","options","children","parent","component","screen","externalComponent","external","splitView","Error","Object","keys","join","inPair","keyed","name","String","pair","undefined","arrangement","props","passProps","nativeName","node","own","key","type","data","secondaryProps","part","partName","partProps","primary","arrangements","alone","style","axes","fraction","primaryEdge","compact","secondary","nodeId","map","tabs","count","length","OS","menu","side","content","left","center","right","split","columns","master","detail","supplementary","inspector","filter","column","present"],"sourceRoot":"../../../src","sources":["engine/layout.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -2,16 +2,25 @@
|
|
|
2
2
|
|
|
3
3
|
import { DynamicColorIOS, Image, Platform, processColor } from 'react-native';
|
|
4
4
|
import { nextId } from "./ids.js";
|
|
5
|
-
import { rememberButtonRoot, setProps } from "./props.js";
|
|
5
|
+
import { rememberButtonRoot, rememberOptionsComponent, setProps } from "./props.js";
|
|
6
6
|
/**
|
|
7
7
|
* The options as the native side reads them: colors in the format of the platform, images resolved, and every
|
|
8
8
|
* component in them with an id of its own (its props stay in JavaScript). Options come in their own form only:
|
|
9
|
-
* animations with `enter` and `exit`, `searchBar` and `interpolation` as objects.
|
|
9
|
+
* animations with `enter` and `exit`, `searchBar` and `interpolation` as objects. `owner` is the id of the node the
|
|
10
|
+
* options are for, or `'defaultOptions'`: a component without an id of its own gets one made of the owner, its place
|
|
11
|
+
* in the options and its name, the same for every `mergeOptions` of the node, so the native side keeps the mounted
|
|
12
|
+
* component and only its props change. Without an owner each conversion gives it a new one.
|
|
10
13
|
*/
|
|
11
|
-
export function toNativeOptions(options) {
|
|
12
|
-
return convert(options
|
|
14
|
+
export function toNativeOptions(options, owner) {
|
|
15
|
+
return convert(options, undefined, {
|
|
16
|
+
owner,
|
|
17
|
+
path: ''
|
|
18
|
+
});
|
|
13
19
|
}
|
|
14
20
|
|
|
21
|
+
// Where a value is in the options being converted: the node they are for, and the path to the value
|
|
22
|
+
// (`topBar.rightButtons[0].component`).
|
|
23
|
+
|
|
15
24
|
/**
|
|
16
25
|
* Options as the native side reads them over others, merged as the native side merges them: groups key by key, while
|
|
17
26
|
* a color or an image, an object here too, replaces what was there as any value does. `undefined` keeps it.
|
|
@@ -30,11 +39,19 @@ export function mergeNativeOptions(base, over) {
|
|
|
30
39
|
function isGroup(value) {
|
|
31
40
|
return isFields(value) && !Array.isArray(value);
|
|
32
41
|
}
|
|
33
|
-
function convert(value, key) {
|
|
42
|
+
function convert(value, key, place) {
|
|
34
43
|
if (key !== undefined && isColor(key)) return nativeColor(value);
|
|
35
44
|
if (key !== undefined && isImage(key)) return nativeImage(value);
|
|
36
45
|
if (Array.isArray(value)) {
|
|
37
|
-
|
|
46
|
+
// An item is known by its id where it has one (a button, a suggestion), so a component keeps its root when the
|
|
47
|
+
// list around it changes; by its place in the list otherwise.
|
|
48
|
+
const items = value.map((item, index) => {
|
|
49
|
+
const id = isFields(item) && typeof item.id === 'string' && item.id ? item.id : index;
|
|
50
|
+
return convert(item, undefined, {
|
|
51
|
+
...place,
|
|
52
|
+
path: `${place.path}[${id}]`
|
|
53
|
+
});
|
|
54
|
+
});
|
|
38
55
|
if (key?.endsWith('Buttons') || key === 'buttons') items.forEach(noteButtonRoot);
|
|
39
56
|
return key?.endsWith('Buttons') ? items.map(takeButtonProps) : items;
|
|
40
57
|
}
|
|
@@ -42,9 +59,13 @@ function convert(value, key) {
|
|
|
42
59
|
const result = {};
|
|
43
60
|
for (const [name, item] of Object.entries(withSymbols(value))) {
|
|
44
61
|
// The props of a component are its own, not options.
|
|
45
|
-
|
|
62
|
+
const path = place.path ? `${place.path}.${name}` : name;
|
|
63
|
+
result[name] = name === 'passProps' ? item : convert(item, name, {
|
|
64
|
+
...place,
|
|
65
|
+
path
|
|
66
|
+
});
|
|
46
67
|
}
|
|
47
|
-
return key === 'component' || key === 'resultsComponent' ? takeComponentProps(result) : result;
|
|
68
|
+
return key === 'component' || key === 'resultsComponent' ? takeComponentProps(result, place) : result;
|
|
48
69
|
}
|
|
49
70
|
function isColor(key) {
|
|
50
71
|
return (key === 'color' || key.endsWith('Color')) && key !== 'bkgColor';
|
|
@@ -98,18 +119,30 @@ function isFields(value) {
|
|
|
98
119
|
return typeof value === 'object' && value !== null;
|
|
99
120
|
}
|
|
100
121
|
|
|
101
|
-
// A component in the options gets an id; the native side creates it with that id, and its props wait here.
|
|
122
|
+
// A component in the options gets an id; the native side creates it with that id, and its props wait here. Without
|
|
123
|
+
// an id of its own it is the owner's, the place of the component (`topBar.title`, `topBar.rightButtons[Save]` by the
|
|
124
|
+
// button's id, `topBar.searchBar.resultsComponent`) and its name: another name there is another component.
|
|
102
125
|
function takeComponentProps({
|
|
103
126
|
passProps,
|
|
104
127
|
...component
|
|
105
|
-
}) {
|
|
106
|
-
const componentId = component.id ||
|
|
128
|
+
}, place) {
|
|
129
|
+
const componentId = component.id || componentIdAt(place, component.name);
|
|
107
130
|
if (passProps) setProps(componentId, passProps);
|
|
108
131
|
return {
|
|
109
132
|
...component,
|
|
110
133
|
componentId
|
|
111
134
|
};
|
|
112
135
|
}
|
|
136
|
+
function componentIdAt({
|
|
137
|
+
owner,
|
|
138
|
+
path
|
|
139
|
+
}, name) {
|
|
140
|
+
if (owner === undefined) return nextId('CustomComponent');
|
|
141
|
+
const at = path.endsWith('.component') ? path.slice(0, -'.component'.length) : path;
|
|
142
|
+
const id = `${owner}/${at}/${String(name)}`;
|
|
143
|
+
rememberOptionsComponent(owner, id);
|
|
144
|
+
return id;
|
|
145
|
+
}
|
|
113
146
|
|
|
114
147
|
// The component of a bar button (the top bar's `*Buttons`, the toolbar's `buttons`) is a root the native side only
|
|
115
148
|
// sizes: its wrapper centers the content in the button's slot.
|