Commit Graph

994 Commits

Author SHA1 Message Date
Evan Bacon
0f18b91690 refactor: split Overlay into a new component (#284)
* refactor: split Overlay into a new component

* Update packages/drawer/src/index.tsx

Co-Authored-By: Satyajit Sahoo <satyajit.happy@gmail.com>

Co-authored-by: Satyajit Sahoo <satyajit.happy@gmail.com>
2020-01-27 20:10:06 +01:00
Satyajit Sahoo
6262f7298b feat: add animationTypeForReplace option (#297)
Currently, when a screen is replaced the new screen comes into focus with a push animation. However, sometimes you might want to customize how the animation looks like.

For example, when the user logs out, animating out the previous screen like pop feels more natural than doing a push animation with the sign in screen. The PR adds a new `animationTypeForReplace` option to control this. Specifying `animationTypeForReplace: 'pop'` will pop the previous screen, otherwise the new screen will be pushed like before.

Co-authored-by: Michał Osadnik <micosa97@gmail.com>
2020-01-27 18:20:53 +01:00
osdnk
a6f58677dc fix: make UNVERSIONED insufficient expo version 2020-01-27 18:01:35 +01:00
Michał Osadnik
9bfb295620 fix: screens integration on Android (#294) 2020-01-27 17:48:22 +01:00
Satyajit Sahoo
ecd68afb46 feat: add useIsDrawerOpen hook (#299) 2020-01-27 12:59:24 +01:00
Satyajit Sahoo
5fe140e61b fix: fix shadow position for inverted animations 2020-01-26 17:02:00 +01:00
Satyajit Sahoo
944fa35ed4 fix: throw when assigning or accessing the router property in compat 2020-01-26 02:22:16 +01:00
Satyajit Sahoo
2243b45cc1 fix: tweak error messages for validation 2020-01-25 14:42:17 +01:00
Satyajit Sahoo
5e7cfc4ac0 chore: publish
- @react-navigation/bottom-tabs@5.0.0-alpha.39
 - @react-navigation/compat@5.0.0-alpha.28
 - @react-navigation/core@5.0.0-alpha.37
 - @react-navigation/drawer@5.0.0-alpha.41
 - @react-navigation/material-bottom-tabs@5.0.0-alpha.36
 - @react-navigation/material-top-tabs@5.0.0-alpha.35
 - @react-navigation/native-stack@5.0.0-alpha.29
 - @react-navigation/native@5.0.0-alpha.29
 - @react-navigation/routers@5.0.0-alpha.27
 - @react-navigation/stack@5.0.0-alpha.63
@react-navigation/drawer@5.0.0-alpha.41 @react-navigation/material-top-tabs@5.0.0-alpha.35 @react-navigation/compat@5.0.0-alpha.28 @react-navigation/core@5.0.0-alpha.37 @react-navigation/stack@5.0.0-alpha.63 @react-navigation/material-bottom-tabs@5.0.0-alpha.36 @react-navigation/routers@5.0.0-alpha.27 @react-navigation/native@5.0.0-alpha.29 @react-navigation/native-stack@5.0.0-alpha.29 @react-navigation/bottom-tabs@5.0.0-alpha.39
2020-01-24 13:01:24 +01:00
NoemiRozpara
5751e7f97a fix: warn if non-serializable values found in state 2020-01-24 12:58:06 +01:00
Satyajit Sahoo
179e807a64 fix: add error message when trying to use v4 API with v5 2020-01-24 00:01:35 +01:00
Satyajit Sahoo
2f1f0af862 fix: validate screen configs 2020-01-23 23:52:27 +01:00
Satyajit Sahoo
9976a888a0 refactor: move replace to stack router 2020-01-23 20:13:40 +01:00
Satyajit Sahoo
16c64e7298 fix: pass correct previous scene to header with headerMode: screen 2020-01-23 15:29:40 +01:00
Satyajit Sahoo
f1fe951cf9 fix: use layout instead of dimensions for determining tab bar layout 2020-01-23 15:10:27 +01:00
Satyajit Sahoo
14250851d1 refactor: remove resetRoot from the navigation prop
Using `resetRoot` requires knowledge of the whole navigation tree that a specific screen shouldn't have. It's better to remove it to discourage resetting whole navigator state from inside a screen.

It's still possible if the user needs it:
- Expose `resetRoot` from container's ref via context
- Use `reset` with the target set to the root navigation state's key
2020-01-23 14:44:34 +01:00
osdnk
42586462fd chore: publish
- @react-navigation/bottom-tabs@5.0.0-alpha.38
 - @react-navigation/compat@5.0.0-alpha.27
 - @react-navigation/core@5.0.0-alpha.36
 - @react-navigation/drawer@5.0.0-alpha.40
 - @react-navigation/material-bottom-tabs@5.0.0-alpha.35
 - @react-navigation/material-top-tabs@5.0.0-alpha.34
 - @react-navigation/native-stack@5.0.0-alpha.28
 - @react-navigation/native@5.0.0-alpha.28
 - @react-navigation/routers@5.0.0-alpha.26
 - @react-navigation/stack@5.0.0-alpha.62
@react-navigation/native-stack@5.0.0-alpha.28 @react-navigation/native@5.0.0-alpha.28 @react-navigation/routers@5.0.0-alpha.26 @react-navigation/stack@5.0.0-alpha.62 @react-navigation/material-top-tabs@5.0.0-alpha.34 @react-navigation/drawer@5.0.0-alpha.40 @react-navigation/bottom-tabs@5.0.0-alpha.38 @react-navigation/compat@5.0.0-alpha.27 @react-navigation/core@5.0.0-alpha.36 @react-navigation/material-bottom-tabs@5.0.0-alpha.35
2020-01-23 10:45:49 +01:00
Satyajit Sahoo
3dede316cc feat: add preventDefault functionality in material bottom tabs 2020-01-22 21:57:39 +01:00
Satyajit Sahoo
63988e0da8 chore: add sideEffects: false for webpack 2020-01-22 21:47:12 +01:00
Satyajit Sahoo
67b2ecfcfc chore: update stack examples 2020-01-22 15:46:51 +01:00
Satyajit Sahoo
68ed8a7259 fix: handle popping more than available screens in stack 2020-01-22 00:33:50 +01:00
Satyajit Sahoo
6c2acbb304 fix: make sure that we return correct value if selector changes
https://github.com/react-navigation/navigation-ex/pull/273#issuecomment-576581225
2020-01-21 18:04:04 +01:00
Satyajit Sahoo
84d75b37e7 chore: add a toggle for RTL 2020-01-20 15:58:46 +01:00
Satyajit Sahoo
65e5147910 chore: add some more examples 2020-01-20 15:38:05 +01:00
Satyajit Sahoo
321fa653ad fix: handle header translation for horizontal-inverted
When going from a screen with header to screen with no header, we need to translate the header to right if the animation direction is inverted.
2020-01-20 10:55:10 +01:00
Satyajit Sahoo
2a76dc4d3c fix: improvements to the compat layer 2020-01-20 10:36:57 +01:00
Satyajit Sahoo
0a982ee698 fix: don't use native driver on web
The native driver is not supported for animations on web. It just prints a wanrning in the console. So we conditionally disable it on web.
2020-01-20 06:20:06 +01:00
Satyajit Sahoo
1da4a6437f fix: fix types for native stack 2020-01-20 05:39:08 +01:00
Satyajit Sahoo
f1df4a0808 feat: emit appear and dismiss events for native stack 2020-01-20 05:28:41 +01:00
Satyajit Sahoo
14ae3738cf fix: ensure re-render on isFirstRouteInParent change in compat layer 2020-01-19 03:44:16 +01:00
Satyajit Sahoo
32a2206513 feat: add useNavigationState hook
Sometimes it's useful to get the current navigation state inside a screen. We have the `dangerouslyGetState` method for that. However, the problem with this method is that it won't trigger a re-render when it changes, so user cannot rely on it for rendering something.

This adds a 2 things:
1. A `state` event similar to `focus` and `blur` that user can subscribe to
2. A `useNavigationState` hook that takes a selector and returns part of the state

Internally `useNavigationState` subscribes to the state event to get the current navigation state.

I have also made it mandatory to pass a selector to `useNavigationState`. This makes it harder to accidentally get the whole navigation state, which will trigger a re-render every time anything changes, even if we don't care about the change. With a selector, we can tell which part we care about, and if that part didn't change, it won't trigger a re-render.

For example, to get the same functionality as the old `isFirstRouteInParent` method:

```js
function MyComponent({ route }) {
  const isFirstRouteInParent = useNavigationState(state => state.routes[0] === route);

  // content
}
```
2020-01-18 23:25:42 +01:00
Satyajit Sahoo
38520a97ff fix: position inactivscreensws offscreen by default 2020-01-18 23:13:36 +01:00
Satyajit Sahoo
3bf5ddde2a fix: don't add ?if query params is empty 2020-01-18 22:30:39 +01:00
Satyajit Sahoo
43d2c456be fix: slide the header up to hide it for vertical animation 2020-01-18 04:13:37 +01:00
Satyajit Sahoo
fe82276b1f fix: use a fade animation for header in all presets 2020-01-18 03:54:01 +01:00
Wojciech Lewicki
1e53821d52 feat: support nested config in getPathFromState (#266)
Co-authored-by: Satyajit Sahoo <satyajit.happy@gmail.com>
2020-01-17 22:43:37 +01:00
Satyajit Sahoo
23ab45aceb fix: fix types for useFocusEffect
See #270
2020-01-17 15:54:02 +01:00
Satyajit Sahoo
d9059b56d8 fix: disallow canPreventDefault option if not present in types 2020-01-15 08:48:02 +01:00
Satyajit Sahoo
ad4eaff1e9 fix: use protected for private value store 2020-01-14 16:52:29 +01:00
Satyajit Sahoo
da67e134d2 feat: let the navigator specify if default can be prevented 2020-01-14 16:48:56 +01:00
Satyajit Sahoo
ee381a4ba3 test: make sure navigation prop is cached 2020-01-14 15:26:45 +01:00
Satyajit Sahoo
3c5b8c4992 chore: publish
- @react-navigation/bottom-tabs@5.0.0-alpha.37
 - @react-navigation/compat@5.0.0-alpha.26
 - @react-navigation/core@5.0.0-alpha.35
 - @react-navigation/drawer@5.0.0-alpha.39
 - @react-navigation/material-bottom-tabs@5.0.0-alpha.34
 - @react-navigation/material-top-tabs@5.0.0-alpha.33
 - @react-navigation/native-stack@5.0.0-alpha.27
 - @react-navigation/native@5.0.0-alpha.27
 - @react-navigation/routers@5.0.0-alpha.25
 - @react-navigation/stack@5.0.0-alpha.61
@react-navigation/drawer@5.0.0-alpha.39 @react-navigation/native-stack@5.0.0-alpha.27 @react-navigation/bottom-tabs@5.0.0-alpha.37 @react-navigation/compat@5.0.0-alpha.26 @react-navigation/core@5.0.0-alpha.35 @react-navigation/material-bottom-tabs@5.0.0-alpha.34 @react-navigation/material-top-tabs@5.0.0-alpha.33 @react-navigation/stack@5.0.0-alpha.61 @react-navigation/routers@5.0.0-alpha.25 @react-navigation/native@5.0.0-alpha.27
2020-01-14 02:24:48 +01:00
Satyajit Sahoo
a912323c1d fix: fix intellisense for CompositeNavigationProp 2020-01-14 02:21:18 +01:00
Satyajit Sahoo
805e5e8636 chore: publish
- @react-navigation/bottom-tabs@5.0.0-alpha.36
 - @react-navigation/compat@5.0.0-alpha.25
 - @react-navigation/core@5.0.0-alpha.34
 - @react-navigation/drawer@5.0.0-alpha.38
 - @react-navigation/material-bottom-tabs@5.0.0-alpha.33
 - @react-navigation/material-top-tabs@5.0.0-alpha.32
 - @react-navigation/native-stack@5.0.0-alpha.26
 - @react-navigation/native@5.0.0-alpha.26
 - @react-navigation/routers@5.0.0-alpha.24
 - @react-navigation/stack@5.0.0-alpha.60
@react-navigation/material-top-tabs@5.0.0-alpha.32 @react-navigation/stack@5.0.0-alpha.60 @react-navigation/compat@5.0.0-alpha.25 @react-navigation/core@5.0.0-alpha.34 @react-navigation/drawer@5.0.0-alpha.38 @react-navigation/bottom-tabs@5.0.0-alpha.36 @react-navigation/native-stack@5.0.0-alpha.26 @react-navigation/native@5.0.0-alpha.26 @react-navigation/material-bottom-tabs@5.0.0-alpha.33 @react-navigation/routers@5.0.0-alpha.24
2020-01-13 18:35:00 +01:00
Satyajit Sahoo
65a5dac2bf fix: make sure paths aren't aliased when building definitions
closes #265
2020-01-13 18:31:41 +01:00
Satyajit Sahoo
536225c2c3 chore: publish
- @react-navigation/bottom-tabs@5.0.0-alpha.35
 - @react-navigation/compat@5.0.0-alpha.24
 - @react-navigation/core@5.0.0-alpha.33
 - @react-navigation/drawer@5.0.0-alpha.37
 - @react-navigation/material-bottom-tabs@5.0.0-alpha.32
 - @react-navigation/material-top-tabs@5.0.0-alpha.31
 - @react-navigation/native-stack@5.0.0-alpha.25
 - @react-navigation/native@5.0.0-alpha.25
 - @react-navigation/routers@5.0.0-alpha.23
 - @react-navigation/stack@5.0.0-alpha.59
@react-navigation/material-bottom-tabs@5.0.0-alpha.32 @react-navigation/bottom-tabs@5.0.0-alpha.35 @react-navigation/compat@5.0.0-alpha.24 @react-navigation/core@5.0.0-alpha.33 @react-navigation/drawer@5.0.0-alpha.37 @react-navigation/stack@5.0.0-alpha.59 @react-navigation/routers@5.0.0-alpha.23 @react-navigation/native@5.0.0-alpha.25 @react-navigation/native-stack@5.0.0-alpha.25 @react-navigation/material-top-tabs@5.0.0-alpha.31
2020-01-13 14:37:49 +01:00
Satyajit Sahoo
23f76189a4 refactor: rename forStatic to forSlide for header 2020-01-13 00:54:05 +01:00
Satyajit Sahoo
f1f5b7197c chore: use project references for typescript 2020-01-12 09:26:50 +01:00
Satyajit Sahoo
324fad33ef chore: add some comments to metro config 2020-01-12 02:56:22 +01:00
Satyajit Sahoo
d14c471385 docs: add instructions for forks 2020-01-12 01:23:16 +01:00