Satyajit Sahoo
5dcaf903f3
refactor: rework history stack integration ( #8367 )
...
The PR reworks history integration to better integrate with browser's history stack and supports nested navigation more reliably:
- On each navigation, save the navigation in memory and use it to reset the state when user presses back/forward
- Improve heuristic to determine if we should do a push, replace or back
This closes #8230 , closes #8284 and closes #8344
2020-06-05 23:02:35 +02:00
Satyajit Sahoo
2d66ef93ec
fix: only use the query params for focused route in path
2020-06-05 20:01:52 +02:00
Satyajit Sahoo
4fe72e3ce7
feat: add wildcard patterns for paths
...
Currently, if we don't have matching routes for a path, we'll reuse the path name for the route name. This doesn't produce an error, and renders the initial route in the navigator. However, the user doesn't have a way of handling this with the default configuration.
This PR adds support for a wildcard pattern ('*'). The wildcard pattern will be matched after all other patterns were matched and will always match unmatched screens. This allows the user to implement a 404 screen.
Example:
```js
{
Home: '',
Profile: 'user/:id',
404: '*',
}
```
This config will return the `404` route for paths which didn't match `Home` or `Profile`, e.g. - `/test`
Closes #8019
Co-authored-by: Evan Bacon <baconbrix@gmail.com >
2020-06-05 17:13:00 +02:00
Satyajit Sahoo
ab1f79c096
fix: prevent state change being emitted unnecessarily
2020-06-01 21:32:08 +02:00
Satyajit Sahoo
9305bfa939
chore: try to fix yarn caching on gh actions
2020-05-27 20:12:33 +02:00
Satyajit Sahoo
0c3c450f5f
chore: tweak SSR output
2020-05-27 19:55:37 +02:00
Satyajit Sahoo
7ac4c13d44
chore: publish
...
- @react-navigation/bottom-tabs@5.5.1
- @react-navigation/compat@5.1.25
- @react-navigation/core@5.9.0
- @react-navigation/drawer@5.8.1
- @react-navigation/material-bottom-tabs@5.2.9
- @react-navigation/material-top-tabs@5.2.9
- @react-navigation/native@5.5.0
- @react-navigation/stack@5.4.1
@react-navigation/bottom-tabs@5.5.1
@react-navigation/compat@5.1.25
@react-navigation/core@5.9.0
@react-navigation/drawer@5.8.1
@react-navigation/material-bottom-tabs@5.2.9
@react-navigation/material-top-tabs@5.2.9
@react-navigation/native@5.5.0
@react-navigation/stack@5.4.1
2020-05-27 18:32:30 +02:00
Raviraj
a0b9f94120
refactor: remove unnecessary check for type of bottom tab bar label
2020-05-27 18:12:21 +02:00
Satyajit Sahoo
717dffdb81
chore: improve caching of yarn on gh actions
2020-05-27 13:31:50 +02:00
Satyajit Sahoo
9016ba00e3
chore: improve caching of yarn on circleci
2020-05-27 13:19:41 +02:00
Satyajit Sahoo
9d822b95a6
fix: fix type of style for various options
2020-05-26 17:33:50 +02:00
Satyajit Sahoo
52d5cb4179
chore: add an example for SSR ( #8298 )
...
<img width="740" alt="Screen Shot 2020-05-20 at 16 31 30" src="https://user-images.githubusercontent.com/1174278/82458770-673d8880-9ab7-11ea-81d3-8ac0c1e52705.png ">
2020-05-26 16:07:47 +02:00
Satyajit Sahoo
af1722d1e9
fix: export types from /native
2020-05-26 14:11:48 +02:00
Satyajit Sahoo
0b1a718756
feat: add ref to get current options in ServerContainer ( #8333 )
...
User can pass a `ref` to the container to get current options, like they can with `NavigationContainer`:
```js
const ref = React.createRef();
const html = renderToString(
<ServerContainer ref={ref}>
<App />
</ServerContainer>
);
ref.current.getCurrentOptions(); // Options for screen
```
2020-05-26 13:55:06 +02:00
Michał Osadnik
9ab29558d0
refactor: remove useless callback arg in useSubscription ( #8332 )
2020-05-26 13:21:51 +02:00
Bright Lee
00c23f2c9e
fix: allow HeaderBackground's subViews to be touchable ( #8317 )
2020-05-25 15:50:24 +02:00
Satyajit Sahoo
68e750d5a6
feat: add a ServerContainer component for SSR ( #8297 )
...
When doing SSR, the app needs to be aware of request URL to render correct navigation state.
The `ServerContainer` component lets us pass the `location` object to use for SSR.
The shape of the `location` object matches the `location` object in the browser.
Usage:
```js
ReactDOM.renderToString(
<ServerContainer location={{ pathname: req.path, search: req.search }}>
<App />
</ServerContainer>
);
```
Updated example: https://github.com/react-navigation/react-navigation/pull/8298
2020-05-24 14:28:16 +02:00
Satyajit Sahoo
ced2a24aa6
chore: publish
...
- @react-navigation/bottom-tabs@5.5.0
- @react-navigation/compat@5.1.24
- @react-navigation/core@5.8.2
- @react-navigation/drawer@5.8.0
- @react-navigation/material-bottom-tabs@5.2.8
- @react-navigation/material-top-tabs@5.2.8
- @react-navigation/native@5.4.3
- @react-navigation/routers@5.4.7
- @react-navigation/stack@5.4.0
@react-navigation/bottom-tabs@5.5.0
@react-navigation/compat@5.1.24
@react-navigation/core@5.8.2
@react-navigation/drawer@5.8.0
@react-navigation/material-bottom-tabs@5.2.8
@react-navigation/material-top-tabs@5.2.8
@react-navigation/native@5.4.3
@react-navigation/routers@5.4.7
@react-navigation/stack@5.4.0
2020-05-23 18:36:57 +02:00
Satyajit Sahoo
ebf1345b39
refactor: simplify bottom tab bar
2020-05-23 18:34:12 +02:00
Satyajit Sahoo
df3544d9b4
Revert "fix: allow HeaderBackground's subViews to be touchable" ( #8316 )
2020-05-23 18:22:35 +02:00
Ashoat Tevosyan
c1e46f8e33
feat: animate changes to tabBarVisible in BottomTabBar ( #8286 )
...
## Motivation
Some designs call for custom keyboard inputs, or other bottom-aligned views meant overlap over the keyboard. Right now the best option on Android for this case is to set `tabBarVisible`. However changes to `tabBarVisible` doesn't get animated currently, which makes the custom-keyboard-open experience a bit more jarring than the native-keyboard-open one.
## Approach
I basically cribbed the `Animated.Value` we were using for `keyboardHidesTabBar` and made it depend on both. Note that the offset height depends on which of the two uses cases we're dealing with, which is explained in the code.
## Test plan
I played around with the `BottomTabs` example, setting certain screens to `tabBarVisible: true` and making sure it animated.
2020-05-23 18:16:30 +02:00
Bright Lee
021a9111d7
fix: allow HeaderBackground's subViews to be touchable ( #8314 )
...
When you're using the following options on `Stack`, the touch event goes to the behind of the Header and we can't really solve this problem in given `headerBackground` component level.
```
options={{
headerTransparent: true,
headerBackground:
```
### Problem

2020-05-23 18:14:59 +02:00
Satyajit Sahoo
d3ace96981
chore: add linking prefix for expo to slience the warning
2020-05-23 17:37:45 +02:00
Satyajit Sahoo
edbc6b1e84
chore: tweak metro config
2020-05-23 17:33:34 +02:00
Satyajit Sahoo
c52d19bec8
chore: add example to hide and show bottom tab bar
2020-05-21 15:31:34 +02:00
Satyajit Sahoo
6dd45fcff9
fix: don't ignore previous header heights on layout update
2020-05-21 12:54:12 +02:00
Janic Duplessis
d62fbfe255
feat: update react-native-safe-area-context to 1.0.0 ( #8182 )
...
I made sure 1.0 is backwards compatible with react-navigation, which means using rn-safe-area-context@1+ with older versions of react-navigation will still work.
2020-05-21 11:25:36 +02:00
Evan Bacon
b14094619f
chore: ignore __tests__ in prod builds ( #8307 )
...
The tests are being bundled and shipped in prod, this adds a bit of unneeded weight to npm installs. Now they won't be included.
```
@react-navigation/core
- before: 274 files - pkg: 211.0 kB - unpkg: 1 MB
- after: 238 files - pkg: 192.1 kB - unpkg: 827.3 kB
```
2020-05-21 11:15:12 +02:00
Ashoat Tevosyan
4c4d864af2
refactor: memoize initializedState in useNavigationBuilder ( #8281 )
2020-05-21 11:13:06 +02:00
Michał Osadnik
e1969f4e17
refactor: extract NavigationStateContext ( #8304 )
2020-05-21 10:41:34 +02:00
Satyajit Sahoo
175c07a28c
chore: publish
...
- @react-navigation/example@5.1.0
- @react-navigation/bottom-tabs@5.4.7
- @react-navigation/compat@5.1.23
- @react-navigation/core@5.8.1
- @react-navigation/drawer@5.7.7
- @react-navigation/material-bottom-tabs@5.2.7
- @react-navigation/material-top-tabs@5.2.7
- @react-navigation/native@5.4.2
- @react-navigation/routers@5.4.6
- @react-navigation/stack@5.3.9
@react-navigation/bottom-tabs@5.4.7
@react-navigation/compat@5.1.23
@react-navigation/core@5.8.1
@react-navigation/drawer@5.7.7
@react-navigation/example@5.1.0
@react-navigation/material-bottom-tabs@5.2.7
@react-navigation/material-top-tabs@5.2.7
@react-navigation/native@5.4.2
@react-navigation/routers@5.4.6
@react-navigation/stack@5.3.9
2020-05-20 13:27:29 +02:00
osdnk
2980627cbf
chore: publish
...
- @react-navigation/bottom-tabs@5.4.6
- @react-navigation/compat@5.1.22
- @react-navigation/core@5.8.0
- @react-navigation/drawer@5.7.6
- @react-navigation/material-bottom-tabs@5.2.6
- @react-navigation/material-top-tabs@5.2.6
- @react-navigation/native@5.4.1
- @react-navigation/routers@5.4.5
- @react-navigation/stack@5.3.8
@react-navigation/bottom-tabs@5.4.6
@react-navigation/compat@5.1.22
@react-navigation/core@5.8.0
@react-navigation/drawer@5.7.6
@react-navigation/material-bottom-tabs@5.2.6
@react-navigation/material-top-tabs@5.2.6
@react-navigation/native@5.4.1
@react-navigation/routers@5.4.5
@react-navigation/stack@5.3.8
2020-05-20 10:29:05 +02:00
Michał Osadnik
d024ec6d74
feat: add getCurrentOptions ( #8277 )
2020-05-19 20:53:08 +02:00
Satyajit Sahoo
4d1b85c751
chore: limit height of material top tabs example
2020-05-19 19:27:05 +02:00
Satyajit Sahoo
4a818fdfb3
chore: tweak master-detail example
2020-05-19 18:56:51 +02:00
Satyajit Sahoo
0194de1061
chore: upgrade bob
2020-05-19 14:25:20 +02:00
Michał Osadnik
7b25c8eb2e
feat: add getCurrentRoute ( #8254 )
2020-05-18 01:55:09 +02:00
Satyajit Sahoo
9304a8a16c
chore: publish
...
- @react-navigation/bottom-tabs@5.4.5
- @react-navigation/compat@5.1.21
- @react-navigation/core@5.7.0
- @react-navigation/drawer@5.7.5
- @react-navigation/material-bottom-tabs@5.2.5
- @react-navigation/material-top-tabs@5.2.5
- @react-navigation/native@5.4.0
- @react-navigation/stack@5.3.7
@react-navigation/stack@5.3.7
@react-navigation/bottom-tabs@5.4.5
@react-navigation/compat@5.1.21
@react-navigation/core@5.7.0
@react-navigation/drawer@5.7.5
@react-navigation/material-bottom-tabs@5.2.5
@react-navigation/material-top-tabs@5.2.5
@react-navigation/native@5.4.0
2020-05-17 01:20:24 +02:00
Satyajit Sahoo
51b40879bd
fix: center icons in material tab bar. fixes #8248
2020-05-17 01:06:29 +02:00
Satyajit Sahoo
51f4d11fdf
fix: don't use Object.fromEntries
2020-05-17 00:56:19 +02:00
Satyajit Sahoo
c2aa4bb2eb
test: fix integration tests
2020-05-16 21:18:42 +02:00
Satyajit Sahoo
199a892a6d
chore: fix the links in the example
2020-05-16 01:58:05 +02:00
Satyajit Sahoo
60cb3c9ba7
feat: add a PathConfig type
2020-05-15 18:57:28 +02:00
Satyajit Sahoo
6ccceaea8b
chore: tweak linking config in the example
2020-05-15 18:48:03 +02:00
Satyajit Sahoo
d14f38b80a
fix: fix types for linking options
2020-05-15 18:37:58 +02:00
Satyajit Sahoo
c481748f00
chore: publish
...
- @react-navigation/stack@5.3.6
@react-navigation/stack@5.3.6
2020-05-15 17:39:47 +02:00
Satyajit Sahoo
d45dbe97dc
fix: reduce header title margin. fixes #8267
2020-05-15 17:39:33 +02:00
Janic Duplessis
7623945f6e
chore: fix repo url in readme ( #8235 )
2020-05-14 19:10:08 +02:00
Satyajit Sahoo
1dddaff45c
chore: publish
...
- @react-navigation/bottom-tabs@5.4.4
- @react-navigation/compat@5.1.20
- @react-navigation/core@5.6.1
- @react-navigation/drawer@5.7.4
- @react-navigation/material-bottom-tabs@5.2.4
- @react-navigation/material-top-tabs@5.2.4
- @react-navigation/native@5.3.2
- @react-navigation/stack@5.3.5
@react-navigation/bottom-tabs@5.4.4
@react-navigation/compat@5.1.20
@react-navigation/core@5.6.1
@react-navigation/drawer@5.7.4
@react-navigation/material-bottom-tabs@5.2.4
@react-navigation/material-top-tabs@5.2.4
@react-navigation/native@5.3.2
@react-navigation/stack@5.3.5
2020-05-14 13:22:54 +02:00
Satyajit Sahoo
21b397f0d6
fix: don't use flat since it's not supported in node
2020-05-14 13:22:14 +02:00