Work in progress, to be added to next release notes.
- Fix index nil error in NavigationFocusEvents. (#138)
- Add absorbInputSelectable as a screenOption for Stack navigators. This allows us to enable/disable gamepad selection for Stack cards. (#135)
- Expose StackViewTransitionConfigs for custom navigator use (#133)
- Optimize based on Universal App launch profiling (#121)
- Emit willBlur event for removed screens during transitions (#120)
-
Fix JavaScript mistranslation in path parsing (#116)
-
Add useNavigation hook (#115)
-
Use unique key for stack screens rather than index (#114)
- Updated the rotriever.toml to exclude the .robloxrc file from the package (#109)
- Added back jest FakeTimer logic to align with upstream (#108)
- Added compatibility for Roact 17 setState callbacks in createAppContainer dispatch and didMount. (#104)
- Fix bug with StackView Transitioner where active screen content could remain hidden and prevent setState from being called while unmounting. (#101)
- Allow for non-overlay screens to still use a transparent background and transparent background on non-overlay screens, change ClipsDescendants to false for navigator views and fix "Listener disconnected twice" error (#97)
- Add
RoactNavigation.None
to allow removal of params (#90) - Add second optional parameter to
createAppContainer
to provide a LinkingProtocol object. This will be used when connecting the universal app to use deep-linking (#83) - Export
createSwitchNavigator
. (#82) - Implement
getActionForPathAndParams
andgetPathAndParamsForState
on routers to eventually support deep linking. (#75) - Align
createAppContainer
with React Navigation. (#67) - Prevent ref forwarding when the
withNavigation
config fieldforwardRef
is false (#73)
- Refactor navigation events handling to align with React Navigation. (#65). This should resolve issues with ordering and timing of blur and focus events.
- Add
SwitchView
andcreateSwitchNavigator
from React Navigation. (#58) - Rename
StackView
toRobloxStackView
andcreateStackNavigator
tocreateRobloxStackView
to make the deviation from upstream clear. (#60) - Rename
SwitchView
toRobloxSwitchView
andcreateSwitchNavigator
tocreateRobloxSwitchNavigator
to reflect the differences with React NavigationSwitchView
andRobloxSwitchView
. (#54) - Stop supporting the routers API from 0.2.x (with the single parameter with the
routes
field). (#49) - Move
Navigations.CompleteTransition
intoStackActions
to align with React Navigation. (#45) - Rename
RoactNavigation.EventsAdapter
toRoactNavigation.NavigationEvents
to align with React Navigation. The props from that component have also been aligned with upstream. See React Navigation documentation (#40) - Align
withNavigation
andwithNavigationFocus
with React Navigation. Now, those function are higher-order components (HOC). See React Navigation documentation for a concrete example. (#44) - Remove
RoactNavigation.connect
. The context provider now receives its value through thevalue
prop (instead ofnavigation
) (#43)
This version has started to align with React Navigation a lot more. A part of React navigation test suite has been ported and multiple files have been refactored to align with their corresponding JavaScript version.
- Align SwitchRouter with React navigation (#33)
- Rename event subscriber
disconnect
method toremove
to match react-navigation (#37) - Remove unused RoactNavigation.None (#32)
- StackRouter behavior now matches React-Navigation's StackRouter. StackActions.reset now requires the
index
field (#28) - Refactor TabRouter, SwitchRouter, StackRouter, createStackNavigator and createSwitchNagivator API. Previous API is deprecated but still supported. (#27)
- Fixed bug with nested child transitions where trying to animate more than one screen at a time could result in errors.
- Fixed bug that caused scenes to be spuriously remounted in stack navigation under some circumstances.
- Fixed bug with navigationOptions.absorbInput on desktop.
- Fixed bug with passing arguments to getScreenProps() helper.
- Fixed bug with navigate() to current route with different params.
- Fixed additional race conditions in Transitioner and eliminated most of its reliance on spawn().
- Fixed spurious errors being generated by Transitioner position change callbacks when it tried to index nil prevTransition.
- Updated dependencies to switch to Rotriever 0.4.x's url dependencies
- No changes to any functionality
- Fix for Transitioner race condition that causes Lua errors in complex configurations.
- Code docs for navigators/createSwitchNavigator.
This is an API breaking change!
Changes:
- Replaced AppContainer.backActionSignal with AppContainer.externalDispatchConnector to allow external code to inject arbitrary navigation actions.
Changes:
- Add keepVisitedScreensMounted feature to SwitchNavigator.
- Fixed a typo in SceneReducer, to allow proper update of scene descriptors.
- Linter fixes submitted by
jtaylor
.
Changes:
- Update some files and tests so that they play nice when Roact Navigation is imported as a dependency under arbitrary folder paths. (Previously it only worked correctly when the top-level folder name was "RoactNavigation".)
This is an API breaking change!
Changes:
- createTopBarStackNavigator and createBottomBarSwitchNavigator have been removed. It is now the responsibility of higher-level libraries to manage the visual aspects of navigation UI. This decision was made because most applications need to do some level of customization to their nav bars. It is therefor useful to write those parts in a separate module to allow for overriding or wholistic replacement.
- Added mechanism to draw a static-position UI behind every game card. This allows for custom backgrounds and animations to be stacked up in between cards.
- Added mechanism to listen for transition state changes so that you can synchronize any navigation UI animations with Roact Navigation's internal changes.
- From this version the only valid Screen Components are:
- Roact Function Component and
- Roact Stateful Component
- Roact Navigation now uses Rotriever registry dependencies.
Changes:
-
This version fixes compatibility problems with Roact 1.x. From 0.1.0 to 0.1.1, we regressed a bugfix for complex navigator hierarchies when running against Roact 1.x. (The new async setState in Roact 1.x changes our timing, so RN needs different code to mesh with the new behavior).
-
In essence, RN 0.1.0 is compatible with Roact 1.x, but 0.1.1 and 0.1.2 are not compatible. You should uptake 0.1.3 if you need to use the old-style APIs for navigation bars and require Roact 1.x compatibility.
Changes:
- Fixed setState timing bugs in StackView where programmatically navigating during initial mounting would lead to bad visual state.
- Cleaned up public API of unusable bottom bar components.
- Fixed failure for StackNavigator.reset() where RN was internally calculating the wrong index, which leads to what is essentially an internal inconsistency error.
This is a special re-release of v0.1.1 with linter fixes contributed by
jtaylor
. No other code changes are included.
This version of Roact Navigation is the last update before all of the visual adornments are moved out of the core implementation into a separate repository so that they can take advantage of other libraries like UIBlox.
Changes:
- Alleviated bugs with DidFocus not firing for the last screen if the user navigates while a transition is already ongoing, or the developer mistakenly writes in multiple navigation action calls in response to a button click.
- Missing entrypoints for stack navigator related views were added to init.lua.
- Bottom bar elements are removed.
- Unit tests are now in _tests_ subdirectories.
- Git submodules use https links to make it easier to download dependencies via Github app tokens.
This tag represents the first version of roact-navigation that is considered to be relatively stable. It is currently missing the following major features that are required for functional completeness:
- Bottom Tab Navigator
- Side Tab Navigator
- Blur support for modal/overlay stack navigation
- Comprehensive documentation
The following features are considered functionally complete, but may have bugs or are lacking in polish:
- App Container (host for nav other nav components)
- Switch Navigator (flat page list without extra UI)
- Stack Navigator (left-right, modal, and overlay modes)
- Navigation Context helpers
- withNavigation* helpers
- EventsAdapter helper