Commit Graph

85 Commits

Author SHA1 Message Date
Satyajit Sahoo
42c43ff761 fix: fix headerTransparent not working outside stack navigator 2021-08-12 01:15:31 +02:00
Satyajit Sahoo
1da575e0e7 fix: fix incorrect name for headerTransparent 2021-08-05 18:21:15 +02:00
Satyajit Sahoo
6d518a46b8 fix: show error when beforeRemove is used to prevent action in naive stack 2021-07-28 15:31:27 +02:00
Satyajit Sahoo
67f6950c14 chore: upgrade dependencies 2021-06-05 07:33:26 +02:00
Satyajit Sahoo
b91c9b05ff chore: sort imports automatically 2021-05-26 21:29:11 +02:00
Satyajit Sahoo
c90bff08d5 fix: make transparent modal work with modal presentation 2021-05-24 15:10:28 +02:00
Satyajit Sahoo
1397bee710 chore: fix albums screen padding in native stack 2021-05-22 00:13:11 +02:00
Satyajit Sahoo
15ede8112e refactor: align header options for native stack and regular stack 2021-05-22 00:04:29 +02:00
Satyajit Sahoo
6dc5364089 refactor: drop openByDefault in favor of defaultStatus prop 2021-05-21 14:39:15 +02:00
Satyajit Sahoo
3d147401e8 feat: add 'transparentModal' presentation to JS stack 2021-05-21 14:20:27 +02:00
Satyajit Sahoo
2cb44a5663 fix: automatically set top inset on Android in native stack 2021-05-21 12:21:59 +02:00
Satyajit Sahoo
a4bf622b1a refactor: align native stack to JS stack 2021-05-19 23:42:53 +02:00
Satyajit Sahoo
2f282f1070 feat: add a tabBarBackground option to bottom tabs 2021-05-14 08:59:46 +02:00
Satyajit Sahoo
7580efce89 refactor: rename animationPresentation to presentation 2021-05-10 12:42:02 +02:00
Satyajit Sahoo
08e74af545 fix: fix modal animation not being set properly 2021-05-09 08:06:38 +02:00
Satyajit Sahoo
7809bc0650 chore: upgrade expo to stable version 2021-05-09 06:12:08 +02:00
Satyajit Sahoo
14786594c0 feat: support navigate-like object in Link 2021-05-09 04:56:45 +02:00
Satyajit Sahoo
1a6aebefcb feat: add a new component to group multiple screens with common options 2021-05-09 01:14:24 +02:00
Satyajit Sahoo
4bb0b43f1a feat: automatically set headerMode if it's modal presentation style 2021-05-08 23:20:12 +02:00
Satyajit Sahoo
9ac709ea1e refactor: drop mode prop in favor of animationPresentation option
BREAKING CHANGE: This drops the mode prop on the navigator in favor of a per-screen option animationPresentation
2021-05-08 07:04:25 +02:00
Satyajit Sahoo
60fa3b9be9 feat: support mixing regular and modal presentation in same stack 2021-05-08 07:04:25 +02:00
Satyajit Sahoo
31caaf3071 refactor: set headerMode to screen by default when custom header is specified 2021-03-14 16:43:51 +01:00
Satyajit Sahoo
aacc1b525d refactor: move headerMode to options
BREAKING CHANGE: headerMode is now moved to options instead of props
2021-03-14 16:27:53 +01:00
Satyajit Sahoo
86e64fdcd8 feat: associate path with the route it opens when deep linking (#9384)
This commit adds a new optional property on the `route` object called `path`.
This property will be added if the screen was opened from a deep link.

Having this property helps with few things:

- Preserve the URL when the path was unmatched, e.g. 404 routes
- Expose the path to the user so they could handle it manually if needed, e.g. open in a webview
- Avoid changing URL if state to path doesn't match current path, e.g. if orders of params change

Fixes #9102
2021-03-05 12:20:35 +01:00
Satyajit Sahoo
f49b0d3a3b refactor: migrate to Pressable 2021-02-22 00:47:04 +01:00
Satyajit Sahoo
9a0774ec35 chore: fix icon name for tab examples 2021-02-11 18:59:50 +01:00
Satyajit Sahoo
55e6f3dd33 refactor: move Header to elements package 2021-02-11 18:56:40 +01:00
Satyajit Sahoo
509ca49b64 refactor: move more header stuff to elements package 2021-02-04 15:07:22 +01:00
Satyajit Sahoo
802db004ae chore: upgrade dependencies 2021-01-08 13:59:24 +01:00
Satyajit Sahoo
15e5678037 refactor: move drawerContentOptions to options
BREAKING CHANGE:  This commit moves options from `drawerContentOptions` to regular `options` in order to reduce confusion between the two, as well as to make it more flexible to configure the drawer on a per screen basis.
2020-11-19 03:57:48 +01:00
Satyajit Sahoo
852f2f0f19 chore: remove compat package 2020-11-17 20:36:06 +01:00
Satyajit Sahoo
6f326cf0c5 feat: add a slide animation for modals on Android 2020-11-16 18:09:58 +01:00
Satyajit Sahoo
a97a43aa1d refactor: drop support for tabBarVisible option
BREAKING CHANGE: We need to add support for specifying style for tab bar in options to support the use cases which need this.
2020-11-13 07:23:59 +01:00
Satyajit Sahoo
227f133536 fix: drop dangerously prefix from getState and getParent
BREAKING CHANGE
2020-11-13 04:48:14 +01:00
Satyajit Sahoo
4cad132c2c refactor: simplify props for stack and drawer headers
BREAKING CHANGE: Previously, the stack header accepted scene and previous scene which contained things such as descriptor, navigation prop, progress etc. The commit simplifies them to pass `route`, `navigation`, `options` and `progress` directly to the header. Similaryly, the `previous` argument now contains `options`, `route` and `progress`.
2020-11-12 02:47:51 +01:00
Satyajit Sahoo
8a63f193bf feat: use modal presentation style for modals on iOS by default 2020-11-12 01:39:42 +01:00
Satyajit Sahoo
e50c8aa942 refactor: use a regular action for 'resetRoot'
Previously, 'resetRoot' directly performed a 'setState' on the container instead of dispatching an action. This meant that hooks such as listener for 'preventRemove' won't be notified by it. This commit changes it to dispatch a regular 'RESET' action which will behave the same as other actions.
2020-11-07 15:55:48 +01:00
Satyajit Sahoo
8f0efc8db5 fix: don't hide child header automatically in stack 2020-11-07 14:39:23 +01:00
Satyajit Sahoo
7de6677e72 chore: fix statusbar height in modal example 2020-11-07 00:34:25 +01:00
Satyajit Sahoo
e3e58c2d89 feat: add a NavigatorScreenParams type. closes #6931 2020-11-04 22:36:43 +01:00
Satyajit Sahoo
836ca4482e chore: fix loading indicator not visible in auth example 2020-10-27 01:37:53 +01:00
Satyajit Sahoo
55d635f53e chore: fix custom link button example on web 2020-10-25 01:32:36 +02:00
Satyajit Sahoo
8ec6c1a603 chore: remove test code from example app 2020-10-23 16:51:44 +02:00
Satyajit Sahoo
960f0a5281 refactor: make sure height set on header container is focused header height 2020-10-23 03:32:40 +02:00
Satyajit Sahoo
5e358b3aad fix: fix false warning due to change in Object.assign in metro preset
#8584
2020-07-22 03:06:55 +02:00
Satyajit Sahoo
af8b27414c fix: make sure new state events are emitted when new navigators mount 2020-07-19 14:52:43 +02:00
Satyajit Sahoo
f4180295bf feat: add a getComponent prop to lazily specify components 2020-07-10 22:33:13 +02:00
Satyajit Sahoo
96c7b688ce feat: add support for badges to bottom tab bar 2020-07-10 21:54:29 +02:00
Satyajit Sahoo
bce6c4fc3b chore: tweak types in the example 2020-07-02 16:52:45 +02:00
Satyajit Sahoo
6925e92dc3 feat: add a beforeRemove event
A lot of times, we want to prompt before leaving a screen if we have unsaved changes. Currently, we need to handle multiple cases to prevent this:

- Disable swipe gestures
- Override the back button in header
- Override the hardware back button on Android

This PR adds a new event which is emitted before a screen gets removed, and the developer has a chance to ask the user before closing the screen.

Example:

```js
React.useEffect(
  () =>
    navigation.addListener('beforeRemove', (e) => {
      if (!hasUnsavedChanges) {
        return;
      }

      e.preventDefault();

      Alert.alert(
        'Discard changes?',
        'You have unsaved changes. Are you sure to discard them and leave the screen?',
        [
          { text: "Don't leave", style: 'cancel', onPress: () => {} },
          {
            text: 'Discard',
            style: 'destructive',
            onPress: () => navigation.dispatch(e.data.action),
          },
        ]
      );
    }),
  [navigation, hasUnsavedChanges]
);
```
2020-07-02 14:32:31 +02:00