mirror of
https://github.com/zhigang1992/react-navigation.git
synced 2026-01-13 22:42:25 +08:00
Compare commits
13 Commits
@react-nav
...
@react-nav
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c3ba72df65 | ||
|
|
be40244214 | ||
|
|
7388e6d9bc | ||
|
|
00e70da0d4 | ||
|
|
70f4fe2ffa | ||
|
|
e639748b23 | ||
|
|
324ea7181d | ||
|
|
9d3731c2df | ||
|
|
baf8ff77d5 | ||
|
|
b4d7b0ee86 | ||
|
|
a184ce24b3 | ||
|
|
80cdc88588 | ||
|
|
b91c9b05ff |
@@ -1,5 +1,6 @@
|
||||
{
|
||||
"extends": "satya164",
|
||||
"plugins": ["simple-import-sort"],
|
||||
"settings": {
|
||||
"react": {
|
||||
"version": "16"
|
||||
@@ -23,6 +24,7 @@
|
||||
"node": true
|
||||
},
|
||||
"rules": {
|
||||
"react/no-unused-prop-types": "off"
|
||||
"simple-import-sort/imports": "error",
|
||||
"simple-import-sort/exports": "error"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
import 'react-native-gesture-handler';
|
||||
|
||||
import { Assets } from '@react-navigation/elements';
|
||||
import { registerRootComponent } from 'expo';
|
||||
import { Asset } from 'expo-asset';
|
||||
import { Assets } from '@react-navigation/elements';
|
||||
|
||||
import App from './src/index';
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import fetch from 'node-fetch';
|
||||
import cheerio from 'cheerio';
|
||||
import fetch from 'node-fetch';
|
||||
|
||||
const server = 'http://localhost:3275';
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* eslint-env jest */
|
||||
|
||||
import { chromium, Browser, BrowserContext, Page } from 'playwright';
|
||||
import { Browser, BrowserContext, chromium, Page } from 'playwright';
|
||||
|
||||
let browser: Browser;
|
||||
let context: BrowserContext;
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
"react-native-appearance": "~0.3.3",
|
||||
"react-native-gesture-handler": "~1.10.2",
|
||||
"react-native-pager-view": "~5.0.12",
|
||||
"react-native-paper": "^4.7.2",
|
||||
"react-native-paper": "^4.9.0",
|
||||
"react-native-reanimated": "~2.1.0",
|
||||
"react-native-safe-area-context": "~3.2.0",
|
||||
"react-native-screens": "~3.0.0",
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
import './resolve-hooks';
|
||||
|
||||
import { ServerContainer, ServerContainerRef } from '@react-navigation/native';
|
||||
import Koa from 'koa';
|
||||
import * as React from 'react';
|
||||
import ReactDOMServer from 'react-dom/server';
|
||||
import { AppRegistry } from 'react-native-web';
|
||||
import { ServerContainer, ServerContainerRef } from '@react-navigation/native';
|
||||
|
||||
import App from '../src/index';
|
||||
|
||||
AppRegistry.registerComponent('App', () => App);
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
import * as React from 'react';
|
||||
import { View, TextInput, ActivityIndicator, StyleSheet } from 'react-native';
|
||||
import { Title, Button } from 'react-native-paper';
|
||||
import { useTheme, ParamListBase } from '@react-navigation/native';
|
||||
import { HeaderBackButton } from '@react-navigation/elements';
|
||||
import { ParamListBase, useTheme } from '@react-navigation/native';
|
||||
import {
|
||||
createStackNavigator,
|
||||
StackScreenProps,
|
||||
} from '@react-navigation/stack';
|
||||
import { HeaderBackButton } from '@react-navigation/elements';
|
||||
import * as React from 'react';
|
||||
import { ActivityIndicator, StyleSheet, TextInput, View } from 'react-native';
|
||||
import { Button, Title } from 'react-native-paper';
|
||||
|
||||
type AuthStackParams = {
|
||||
Splash: undefined;
|
||||
|
||||
@@ -1,21 +1,22 @@
|
||||
import * as React from 'react';
|
||||
import { ScrollView, StyleSheet } from 'react-native';
|
||||
import MaterialCommunityIcons from 'react-native-vector-icons/MaterialCommunityIcons';
|
||||
import { BlurView } from 'expo-blur';
|
||||
import {
|
||||
getFocusedRouteNameFromRoute,
|
||||
ParamListBase,
|
||||
NavigatorScreenParams,
|
||||
} from '@react-navigation/native';
|
||||
import type { StackScreenProps } from '@react-navigation/stack';
|
||||
import {
|
||||
createBottomTabNavigator,
|
||||
useBottomTabBarHeight,
|
||||
} from '@react-navigation/bottom-tabs';
|
||||
import { HeaderBackButton } from '@react-navigation/elements';
|
||||
import {
|
||||
getFocusedRouteNameFromRoute,
|
||||
NavigatorScreenParams,
|
||||
ParamListBase,
|
||||
} from '@react-navigation/native';
|
||||
import type { StackScreenProps } from '@react-navigation/stack';
|
||||
import { BlurView } from 'expo-blur';
|
||||
import * as React from 'react';
|
||||
import { ScrollView, StyleSheet } from 'react-native';
|
||||
import MaterialCommunityIcons from 'react-native-vector-icons/MaterialCommunityIcons';
|
||||
|
||||
import Albums from '../Shared/Albums';
|
||||
import Contacts from '../Shared/Contacts';
|
||||
import Chat from '../Shared/Chat';
|
||||
import Contacts from '../Shared/Contacts';
|
||||
import SimpleStackScreen, { SimpleStackParams } from './SimpleStack';
|
||||
|
||||
const getTabBarIcon = (name: string) => ({
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import * as React from 'react';
|
||||
import { View, StyleSheet } from 'react-native';
|
||||
import { Title, Button } from 'react-native-paper';
|
||||
import Feather from 'react-native-vector-icons/Feather';
|
||||
import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';
|
||||
import * as React from 'react';
|
||||
import { StyleSheet, View } from 'react-native';
|
||||
import { Button, Title } from 'react-native-paper';
|
||||
import Feather from 'react-native-vector-icons/Feather';
|
||||
|
||||
type BottomTabParams = {
|
||||
[key: string]: undefined;
|
||||
|
||||
@@ -1,18 +1,19 @@
|
||||
import * as React from 'react';
|
||||
import { View, StyleSheet, ScrollView, Platform } from 'react-native';
|
||||
import { Button } from 'react-native-paper';
|
||||
import {
|
||||
Link,
|
||||
StackActions,
|
||||
ParamListBase,
|
||||
StackActions,
|
||||
useLinkProps,
|
||||
} from '@react-navigation/native';
|
||||
import {
|
||||
createStackNavigator,
|
||||
StackScreenProps,
|
||||
} from '@react-navigation/stack';
|
||||
import Article from '../Shared/Article';
|
||||
import * as React from 'react';
|
||||
import { Platform, ScrollView, StyleSheet, View } from 'react-native';
|
||||
import { Button } from 'react-native-paper';
|
||||
|
||||
import Albums from '../Shared/Albums';
|
||||
import Article from '../Shared/Article';
|
||||
|
||||
type SimpleStackParams = {
|
||||
Article: { author: string };
|
||||
|
||||
@@ -1,20 +1,21 @@
|
||||
import {
|
||||
createDrawerNavigator,
|
||||
DrawerContent,
|
||||
DrawerContentComponentProps,
|
||||
DrawerScreenProps,
|
||||
} from '@react-navigation/drawer';
|
||||
import {
|
||||
ParamListBase,
|
||||
useNavigation,
|
||||
useTheme,
|
||||
} from '@react-navigation/native';
|
||||
import type { StackScreenProps } from '@react-navigation/stack';
|
||||
import * as React from 'react';
|
||||
import { Dimensions, ScaledSize } from 'react-native';
|
||||
import { Appbar } from 'react-native-paper';
|
||||
import {
|
||||
useTheme,
|
||||
useNavigation,
|
||||
ParamListBase,
|
||||
} from '@react-navigation/native';
|
||||
import {
|
||||
createDrawerNavigator,
|
||||
DrawerScreenProps,
|
||||
DrawerContent,
|
||||
DrawerContentComponentProps,
|
||||
} from '@react-navigation/drawer';
|
||||
import type { StackScreenProps } from '@react-navigation/stack';
|
||||
import Article from '../Shared/Article';
|
||||
|
||||
import Albums from '../Shared/Albums';
|
||||
import Article from '../Shared/Article';
|
||||
import NewsFeed from '../Shared/NewsFeed';
|
||||
|
||||
type DrawerParams = {
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
import { createMaterialBottomTabNavigator } from '@react-navigation/material-bottom-tabs';
|
||||
import type { NavigatorScreenParams } from '@react-navigation/native';
|
||||
import * as React from 'react';
|
||||
import { StyleSheet } from 'react-native';
|
||||
import type { NavigatorScreenParams } from '@react-navigation/native';
|
||||
import { createMaterialBottomTabNavigator } from '@react-navigation/material-bottom-tabs';
|
||||
|
||||
import Albums from '../Shared/Albums';
|
||||
import Contacts from '../Shared/Contacts';
|
||||
import Chat from '../Shared/Chat';
|
||||
import Contacts from '../Shared/Contacts';
|
||||
import SimpleStackScreen, { SimpleStackParams } from './SimpleStack';
|
||||
|
||||
type MaterialBottomTabParams = {
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
import * as React from 'react';
|
||||
import { createMaterialTopTabNavigator } from '@react-navigation/material-top-tabs';
|
||||
import type { ParamListBase } from '@react-navigation/native';
|
||||
import type { StackScreenProps } from '@react-navigation/stack';
|
||||
import { createMaterialTopTabNavigator } from '@react-navigation/material-top-tabs';
|
||||
import * as React from 'react';
|
||||
|
||||
import Albums from '../Shared/Albums';
|
||||
import Contacts from '../Shared/Contacts';
|
||||
import Chat from '../Shared/Chat';
|
||||
import Contacts from '../Shared/Contacts';
|
||||
|
||||
type MaterialTopTabParams = {
|
||||
Albums: undefined;
|
||||
|
||||
@@ -1,15 +1,16 @@
|
||||
import * as React from 'react';
|
||||
import { View, Platform, StyleSheet, ScrollView } from 'react-native';
|
||||
import { Button } from 'react-native-paper';
|
||||
import type { ParamListBase } from '@react-navigation/native';
|
||||
import {
|
||||
createStackNavigator,
|
||||
HeaderStyleInterpolators,
|
||||
StackScreenProps,
|
||||
TransitionPresets,
|
||||
HeaderStyleInterpolators,
|
||||
} from '@react-navigation/stack';
|
||||
import Article from '../Shared/Article';
|
||||
import * as React from 'react';
|
||||
import { Platform, ScrollView, StyleSheet, View } from 'react-native';
|
||||
import { Button } from 'react-native-paper';
|
||||
|
||||
import Albums from '../Shared/Albums';
|
||||
import Article from '../Shared/Article';
|
||||
import NewsFeed from '../Shared/NewsFeed';
|
||||
|
||||
export type SimpleStackParams = {
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
import * as React from 'react';
|
||||
import { View, StyleSheet, ScrollView, Platform } from 'react-native';
|
||||
import { Button } from 'react-native-paper';
|
||||
import type { ParamListBase } from '@react-navigation/native';
|
||||
import {
|
||||
createStackNavigator,
|
||||
StackScreenProps,
|
||||
} from '@react-navigation/stack';
|
||||
import Article from '../Shared/Article';
|
||||
import * as React from 'react';
|
||||
import { Platform, ScrollView, StyleSheet, View } from 'react-native';
|
||||
import { Button } from 'react-native-paper';
|
||||
|
||||
import Albums from '../Shared/Albums';
|
||||
import Article from '../Shared/Article';
|
||||
|
||||
type MixedStackParams = {
|
||||
Article: { author: string };
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
import * as React from 'react';
|
||||
import { View, StyleSheet, ScrollView, Platform } from 'react-native';
|
||||
import { Button } from 'react-native-paper';
|
||||
import type { ParamListBase } from '@react-navigation/native';
|
||||
import {
|
||||
createStackNavigator,
|
||||
StackScreenProps,
|
||||
} from '@react-navigation/stack';
|
||||
import Article from '../Shared/Article';
|
||||
import * as React from 'react';
|
||||
import { Platform, ScrollView, StyleSheet, View } from 'react-native';
|
||||
import { Button } from 'react-native-paper';
|
||||
|
||||
import Albums from '../Shared/Albums';
|
||||
import Article from '../Shared/Article';
|
||||
|
||||
type ModalStackParams = {
|
||||
Article: { author: string };
|
||||
|
||||
@@ -1,14 +1,15 @@
|
||||
import * as React from 'react';
|
||||
import { View, Platform, StyleSheet, ScrollView } from 'react-native';
|
||||
import { Button } from 'react-native-paper';
|
||||
import { useSafeAreaInsets } from 'react-native-safe-area-context';
|
||||
import type { ParamListBase } from '@react-navigation/native';
|
||||
import {
|
||||
createNativeStackNavigator,
|
||||
NativeStackScreenProps,
|
||||
} from '@react-navigation/native-stack';
|
||||
import Article from '../Shared/Article';
|
||||
import * as React from 'react';
|
||||
import { Platform, ScrollView, StyleSheet, View } from 'react-native';
|
||||
import { Button } from 'react-native-paper';
|
||||
import { useSafeAreaInsets } from 'react-native-safe-area-context';
|
||||
|
||||
import Albums from '../Shared/Albums';
|
||||
import Article from '../Shared/Article';
|
||||
import NewsFeed from '../Shared/NewsFeed';
|
||||
|
||||
export type NativeStackParams = {
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
import * as React from 'react';
|
||||
import { View, Platform, StyleSheet, ScrollView, Alert } from 'react-native';
|
||||
import { Appbar, Button } from 'react-native-paper';
|
||||
import type { ParamListBase } from '@react-navigation/native';
|
||||
import {
|
||||
createNativeStackNavigator,
|
||||
NativeStackScreenProps,
|
||||
} from '@react-navigation/native-stack';
|
||||
import Article from '../Shared/Article';
|
||||
import * as React from 'react';
|
||||
import { Alert, Platform, ScrollView, StyleSheet, View } from 'react-native';
|
||||
import { Appbar, Button } from 'react-native-paper';
|
||||
|
||||
import Albums from '../Shared/Albums';
|
||||
import Article from '../Shared/Article';
|
||||
import NewsFeed from '../Shared/NewsFeed';
|
||||
|
||||
export type NativeStackParams = {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import type { StackScreenProps } from '@react-navigation/stack';
|
||||
import * as React from 'react';
|
||||
import { StyleSheet, Text, View } from 'react-native';
|
||||
import { Button } from 'react-native-paper';
|
||||
import type { StackScreenProps } from '@react-navigation/stack';
|
||||
|
||||
const NotFoundScreen = ({
|
||||
route,
|
||||
|
||||
@@ -1,23 +1,24 @@
|
||||
import * as React from 'react';
|
||||
import {
|
||||
Alert,
|
||||
View,
|
||||
TextInput,
|
||||
ScrollView,
|
||||
StyleSheet,
|
||||
Platform,
|
||||
} from 'react-native';
|
||||
import { Button } from 'react-native-paper';
|
||||
import {
|
||||
useTheme,
|
||||
CommonActions,
|
||||
ParamListBase,
|
||||
NavigationAction,
|
||||
ParamListBase,
|
||||
useTheme,
|
||||
} from '@react-navigation/native';
|
||||
import {
|
||||
createStackNavigator,
|
||||
StackScreenProps,
|
||||
} from '@react-navigation/stack';
|
||||
import * as React from 'react';
|
||||
import {
|
||||
Alert,
|
||||
Platform,
|
||||
ScrollView,
|
||||
StyleSheet,
|
||||
TextInput,
|
||||
View,
|
||||
} from 'react-native';
|
||||
import { Button } from 'react-native-paper';
|
||||
|
||||
import Article from '../Shared/Article';
|
||||
|
||||
type PreventRemoveParams = {
|
||||
|
||||
@@ -1,14 +1,15 @@
|
||||
import * as React from 'react';
|
||||
import { View, Platform, StyleSheet, ScrollView } from 'react-native';
|
||||
import { Button } from 'react-native-paper';
|
||||
import type { ParamListBase } from '@react-navigation/native';
|
||||
import {
|
||||
createStackNavigator,
|
||||
StackNavigationOptions,
|
||||
StackScreenProps,
|
||||
} from '@react-navigation/stack';
|
||||
import Article from '../Shared/Article';
|
||||
import * as React from 'react';
|
||||
import { Platform, ScrollView, StyleSheet, View } from 'react-native';
|
||||
import { Button } from 'react-native-paper';
|
||||
|
||||
import Albums from '../Shared/Albums';
|
||||
import Article from '../Shared/Article';
|
||||
import NewsFeed from '../Shared/NewsFeed';
|
||||
|
||||
export type SimpleStackParams = {
|
||||
|
||||
@@ -1,25 +1,26 @@
|
||||
import * as React from 'react';
|
||||
import {
|
||||
Animated,
|
||||
View,
|
||||
StyleSheet,
|
||||
ScrollView,
|
||||
Alert,
|
||||
Platform,
|
||||
} from 'react-native';
|
||||
import { Button, Appbar } from 'react-native-paper';
|
||||
import MaterialCommunityIcons from 'react-native-vector-icons/MaterialCommunityIcons';
|
||||
import { useTheme, ParamListBase } from '@react-navigation/native';
|
||||
import { HeaderBackground, useHeaderHeight } from '@react-navigation/elements';
|
||||
import { ParamListBase, useTheme } from '@react-navigation/native';
|
||||
import {
|
||||
createStackNavigator,
|
||||
StackScreenProps,
|
||||
Header,
|
||||
StackHeaderProps,
|
||||
StackScreenProps,
|
||||
} from '@react-navigation/stack';
|
||||
import { HeaderBackground, useHeaderHeight } from '@react-navigation/elements';
|
||||
import BlurView from '../Shared/BlurView';
|
||||
import Article from '../Shared/Article';
|
||||
import * as React from 'react';
|
||||
import {
|
||||
Alert,
|
||||
Animated,
|
||||
Platform,
|
||||
ScrollView,
|
||||
StyleSheet,
|
||||
View,
|
||||
} from 'react-native';
|
||||
import { Appbar, Button } from 'react-native-paper';
|
||||
import MaterialCommunityIcons from 'react-native-vector-icons/MaterialCommunityIcons';
|
||||
|
||||
import Albums from '../Shared/Albums';
|
||||
import Article from '../Shared/Article';
|
||||
import BlurView from '../Shared/BlurView';
|
||||
|
||||
type SimpleStackParams = {
|
||||
Article: { author: string };
|
||||
|
||||
@@ -1,19 +1,20 @@
|
||||
import * as React from 'react';
|
||||
import {
|
||||
View,
|
||||
StyleSheet,
|
||||
ScrollView,
|
||||
Platform,
|
||||
Pressable,
|
||||
Animated,
|
||||
} from 'react-native';
|
||||
import { Button, Paragraph } from 'react-native-paper';
|
||||
import { ParamListBase, useTheme } from '@react-navigation/native';
|
||||
import {
|
||||
createStackNavigator,
|
||||
StackScreenProps,
|
||||
useCardAnimation,
|
||||
} from '@react-navigation/stack';
|
||||
import * as React from 'react';
|
||||
import {
|
||||
Animated,
|
||||
Platform,
|
||||
Pressable,
|
||||
ScrollView,
|
||||
StyleSheet,
|
||||
View,
|
||||
} from 'react-native';
|
||||
import { Button, Paragraph } from 'react-native-paper';
|
||||
|
||||
import Article from '../Shared/Article';
|
||||
import NewsFeed from '../Shared/NewsFeed';
|
||||
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
/* eslint-disable import/no-commonjs */
|
||||
|
||||
import { useScrollToTop } from '@react-navigation/native';
|
||||
import * as React from 'react';
|
||||
import {
|
||||
View,
|
||||
Image,
|
||||
ScrollView,
|
||||
StyleSheet,
|
||||
ScrollViewProps,
|
||||
Dimensions,
|
||||
Image,
|
||||
Platform,
|
||||
ScaledSize,
|
||||
ScrollView,
|
||||
ScrollViewProps,
|
||||
StyleSheet,
|
||||
View,
|
||||
} from 'react-native';
|
||||
import { useScrollToTop } from '@react-navigation/native';
|
||||
|
||||
const COVERS = [
|
||||
require('../../assets/album-art-01.jpg'),
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
import { useScrollToTop, useTheme } from '@react-navigation/native';
|
||||
import * as React from 'react';
|
||||
import {
|
||||
View,
|
||||
Text,
|
||||
Image,
|
||||
ScrollView,
|
||||
StyleSheet,
|
||||
ScrollViewProps,
|
||||
StyleSheet,
|
||||
Text,
|
||||
TextProps,
|
||||
View,
|
||||
} from 'react-native';
|
||||
import { useScrollToTop, useTheme } from '@react-navigation/native';
|
||||
|
||||
type Props = Partial<ScrollViewProps> & {
|
||||
date?: string;
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
import * as React from 'react';
|
||||
import {
|
||||
View,
|
||||
Image,
|
||||
Text,
|
||||
TextInput,
|
||||
ScrollView,
|
||||
StyleSheet,
|
||||
ScrollViewProps,
|
||||
} from 'react-native';
|
||||
import { useScrollToTop, useTheme } from '@react-navigation/native';
|
||||
import Color from 'color';
|
||||
import * as React from 'react';
|
||||
import {
|
||||
Image,
|
||||
ScrollView,
|
||||
ScrollViewProps,
|
||||
StyleSheet,
|
||||
Text,
|
||||
TextInput,
|
||||
View,
|
||||
} from 'react-native';
|
||||
|
||||
const MESSAGES = [
|
||||
'okay',
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import * as React from 'react';
|
||||
import { View, Text, FlatList, StyleSheet } from 'react-native';
|
||||
import { useScrollToTop, useTheme } from '@react-navigation/native';
|
||||
import * as React from 'react';
|
||||
import { FlatList, StyleSheet, Text, View } from 'react-native';
|
||||
|
||||
type Item = { name: string; number: number };
|
||||
|
||||
|
||||
@@ -1,22 +1,22 @@
|
||||
import { useScrollToTop, useTheme } from '@react-navigation/native';
|
||||
import Color from 'color';
|
||||
import * as React from 'react';
|
||||
import {
|
||||
View,
|
||||
TextInput,
|
||||
Image,
|
||||
ScrollView,
|
||||
StyleSheet,
|
||||
ScrollViewProps,
|
||||
StyleSheet,
|
||||
TextInput,
|
||||
View,
|
||||
} from 'react-native';
|
||||
import { useScrollToTop, useTheme } from '@react-navigation/native';
|
||||
import {
|
||||
Card,
|
||||
Text,
|
||||
Avatar,
|
||||
Subheading,
|
||||
IconButton,
|
||||
Card,
|
||||
Divider,
|
||||
IconButton,
|
||||
Subheading,
|
||||
Text,
|
||||
} from 'react-native-paper';
|
||||
import Color from 'color';
|
||||
|
||||
type Props = Partial<ScrollViewProps> & {
|
||||
date?: number;
|
||||
|
||||
@@ -1,65 +1,69 @@
|
||||
import * as React from 'react';
|
||||
import {
|
||||
ScrollView,
|
||||
Platform,
|
||||
StatusBar,
|
||||
I18nManager,
|
||||
Dimensions,
|
||||
ScaledSize,
|
||||
Linking,
|
||||
LogBox,
|
||||
} from 'react-native';
|
||||
import { SafeAreaView } from 'react-native-safe-area-context';
|
||||
import MaterialIcons from 'react-native-vector-icons/MaterialIcons';
|
||||
import {
|
||||
Provider as PaperProvider,
|
||||
DefaultTheme as PaperLightTheme,
|
||||
DarkTheme as PaperDarkTheme,
|
||||
List,
|
||||
Divider,
|
||||
Text,
|
||||
} from 'react-native-paper';
|
||||
import { createURL } from 'expo-linking';
|
||||
import AsyncStorage from '@react-native-async-storage/async-storage';
|
||||
import {
|
||||
useFlipper,
|
||||
useReduxDevToolsExtension,
|
||||
} from '@react-navigation/devtools';
|
||||
import {
|
||||
createDrawerNavigator,
|
||||
DrawerScreenProps,
|
||||
} from '@react-navigation/drawer';
|
||||
import {
|
||||
CompositeScreenProps,
|
||||
DarkTheme,
|
||||
DefaultTheme,
|
||||
InitialState,
|
||||
NavigationContainer,
|
||||
DefaultTheme,
|
||||
DarkTheme,
|
||||
NavigatorScreenParams,
|
||||
PathConfigMap,
|
||||
useNavigationContainerRef,
|
||||
NavigatorScreenParams,
|
||||
} from '@react-navigation/native';
|
||||
import { createDrawerNavigator } from '@react-navigation/drawer';
|
||||
import {
|
||||
createStackNavigator,
|
||||
HeaderStyleInterpolators,
|
||||
StackNavigationProp,
|
||||
StackScreenProps,
|
||||
} from '@react-navigation/stack';
|
||||
import { createURL } from 'expo-linking';
|
||||
import * as React from 'react';
|
||||
import {
|
||||
useReduxDevToolsExtension,
|
||||
useFlipper,
|
||||
} from '@react-navigation/devtools';
|
||||
Dimensions,
|
||||
I18nManager,
|
||||
Linking,
|
||||
LogBox,
|
||||
Platform,
|
||||
ScaledSize,
|
||||
ScrollView,
|
||||
StatusBar,
|
||||
} from 'react-native';
|
||||
import {
|
||||
DarkTheme as PaperDarkTheme,
|
||||
DefaultTheme as PaperLightTheme,
|
||||
Divider,
|
||||
List,
|
||||
Provider as PaperProvider,
|
||||
Text,
|
||||
} from 'react-native-paper';
|
||||
import { SafeAreaView } from 'react-native-safe-area-context';
|
||||
import MaterialIcons from 'react-native-vector-icons/MaterialIcons';
|
||||
|
||||
import { restartApp } from './Restart';
|
||||
import SettingsItem from './Shared/SettingsItem';
|
||||
import NativeStack from './Screens/NativeStack';
|
||||
import SimpleStack from './Screens/SimpleStack';
|
||||
import ModalStack from './Screens/ModalStack';
|
||||
import MixedStack from './Screens/MixedStack';
|
||||
import MixedHeaderMode from './Screens/MixedHeaderMode';
|
||||
import StackTransparent from './Screens/StackTransparent';
|
||||
import StackHeaderCustomization from './Screens/StackHeaderCustomization';
|
||||
import NativeStackHeaderCustomization from './Screens/NativeStackHeaderCustomization';
|
||||
import BottomTabs from './Screens/BottomTabs';
|
||||
import MaterialTopTabsScreen from './Screens/MaterialTopTabs';
|
||||
import MaterialBottomTabs from './Screens/MaterialBottomTabs';
|
||||
import NotFound from './Screens/NotFound';
|
||||
import DynamicTabs from './Screens/DynamicTabs';
|
||||
import MasterDetail from './Screens/MasterDetail';
|
||||
import AuthFlow from './Screens/AuthFlow';
|
||||
import PreventRemove from './Screens/PreventRemove';
|
||||
import BottomTabs from './Screens/BottomTabs';
|
||||
import DynamicTabs from './Screens/DynamicTabs';
|
||||
import LinkComponent from './Screens/LinkComponent';
|
||||
import MasterDetail from './Screens/MasterDetail';
|
||||
import MaterialBottomTabs from './Screens/MaterialBottomTabs';
|
||||
import MaterialTopTabsScreen from './Screens/MaterialTopTabs';
|
||||
import MixedHeaderMode from './Screens/MixedHeaderMode';
|
||||
import MixedStack from './Screens/MixedStack';
|
||||
import ModalStack from './Screens/ModalStack';
|
||||
import NativeStack from './Screens/NativeStack';
|
||||
import NativeStackHeaderCustomization from './Screens/NativeStackHeaderCustomization';
|
||||
import NotFound from './Screens/NotFound';
|
||||
import PreventRemove from './Screens/PreventRemove';
|
||||
import SimpleStack from './Screens/SimpleStack';
|
||||
import StackHeaderCustomization from './Screens/StackHeaderCustomization';
|
||||
import StackTransparent from './Screens/StackTransparent';
|
||||
import SettingsItem from './Shared/SettingsItem';
|
||||
|
||||
if (Platform.OS !== 'web') {
|
||||
LogBox.ignoreLogs(['Require cycle:']);
|
||||
@@ -333,9 +337,10 @@ export default function App() {
|
||||
>
|
||||
{({
|
||||
navigation,
|
||||
}: {
|
||||
navigation: StackNavigationProp<RootStackParamList>;
|
||||
}) => (
|
||||
}: CompositeScreenProps<
|
||||
DrawerScreenProps<RootDrawerParamList, 'Examples'>,
|
||||
StackScreenProps<RootStackParamList>
|
||||
>) => (
|
||||
<ScrollView
|
||||
style={{ backgroundColor: theme.colors.background }}
|
||||
>
|
||||
|
||||
@@ -37,6 +37,7 @@
|
||||
"commitlint": "^12.1.1",
|
||||
"eslint": "^7.23.0",
|
||||
"eslint-config-satya164": "^3.1.10",
|
||||
"eslint-plugin-simple-import-sort": "^7.0.0",
|
||||
"husky": "^4.3.6",
|
||||
"jest": "^26.6.3",
|
||||
"lerna": "^4.0.0",
|
||||
|
||||
@@ -3,6 +3,30 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
# [6.0.0-next.17](https://github.com/react-navigation/react-navigation/compare/@react-navigation/bottom-tabs@6.0.0-next.16...@react-navigation/bottom-tabs@6.0.0-next.17) (2021-05-29)
|
||||
|
||||
**Note:** Version bump only for package @react-navigation/bottom-tabs
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [6.0.0-next.16](https://github.com/react-navigation/react-navigation/compare/@react-navigation/bottom-tabs@6.0.0-next.15...@react-navigation/bottom-tabs@6.0.0-next.16) (2021-05-29)
|
||||
|
||||
**Note:** Version bump only for package @react-navigation/bottom-tabs
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [6.0.0-next.15](https://github.com/react-navigation/react-navigation/compare/@react-navigation/bottom-tabs@6.0.0-next.14...@react-navigation/bottom-tabs@6.0.0-next.15) (2021-05-27)
|
||||
|
||||
**Note:** Version bump only for package @react-navigation/bottom-tabs
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [6.0.0-next.14](https://github.com/react-navigation/react-navigation/compare/@react-navigation/bottom-tabs@6.0.0-next.13...@react-navigation/bottom-tabs@6.0.0-next.14) (2021-05-26)
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@react-navigation/bottom-tabs",
|
||||
"description": "Bottom tab navigator following iOS design guidelines",
|
||||
"version": "6.0.0-next.14",
|
||||
"version": "6.0.0-next.17",
|
||||
"keywords": [
|
||||
"react-native-component",
|
||||
"react-component",
|
||||
@@ -36,12 +36,12 @@
|
||||
"clean": "del lib"
|
||||
},
|
||||
"dependencies": {
|
||||
"@react-navigation/elements": "^1.0.0-next.13",
|
||||
"@react-navigation/elements": "^1.0.0-next.16",
|
||||
"color": "^3.1.3",
|
||||
"warn-once": "^0.1.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@react-navigation/native": "^6.0.0-next.10",
|
||||
"@react-navigation/native": "^6.0.0-next.13",
|
||||
"@testing-library/react-native": "^7.2.0",
|
||||
"@types/color": "^3.0.1",
|
||||
"@types/react": "^16.9.53",
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
import * as React from 'react';
|
||||
import { View, Text, Button } from 'react-native';
|
||||
import { render, fireEvent } from '@testing-library/react-native';
|
||||
import { NavigationContainer, ParamListBase } from '@react-navigation/native';
|
||||
import { createBottomTabNavigator, BottomTabScreenProps } from '../index';
|
||||
import { fireEvent, render } from '@testing-library/react-native';
|
||||
import * as React from 'react';
|
||||
import { Button, Text, View } from 'react-native';
|
||||
|
||||
import { BottomTabScreenProps, createBottomTabNavigator } from '../index';
|
||||
|
||||
it('renders a bottom tab navigator with screens', async () => {
|
||||
const Test = ({ route, navigation }: BottomTabScreenProps<ParamListBase>) => (
|
||||
|
||||
@@ -6,23 +6,22 @@ export { default as createBottomTabNavigator } from './navigators/createBottomTa
|
||||
/**
|
||||
* Views
|
||||
*/
|
||||
export { default as BottomTabView } from './views/BottomTabView';
|
||||
export { default as BottomTabBar } from './views/BottomTabBar';
|
||||
export { default as BottomTabView } from './views/BottomTabView';
|
||||
|
||||
/**
|
||||
* Utilities
|
||||
*/
|
||||
export { default as BottomTabBarHeightContext } from './utils/BottomTabBarHeightContext';
|
||||
|
||||
export { default as useBottomTabBarHeight } from './utils/useBottomTabBarHeight';
|
||||
|
||||
/**
|
||||
* Types
|
||||
*/
|
||||
export type {
|
||||
BottomTabBarButtonProps,
|
||||
BottomTabBarProps,
|
||||
BottomTabNavigationOptions,
|
||||
BottomTabNavigationProp,
|
||||
BottomTabScreenProps,
|
||||
BottomTabBarProps,
|
||||
BottomTabBarButtonProps,
|
||||
} from './types';
|
||||
|
||||
@@ -1,21 +1,22 @@
|
||||
import * as React from 'react';
|
||||
import warnOnce from 'warn-once';
|
||||
import {
|
||||
useNavigationBuilder,
|
||||
createNavigatorFactory,
|
||||
DefaultNavigatorOptions,
|
||||
ParamListBase,
|
||||
TabActionHelpers,
|
||||
TabNavigationState,
|
||||
TabRouter,
|
||||
TabRouterOptions,
|
||||
TabNavigationState,
|
||||
TabActionHelpers,
|
||||
ParamListBase,
|
||||
useNavigationBuilder,
|
||||
} from '@react-navigation/native';
|
||||
import BottomTabView from '../views/BottomTabView';
|
||||
import * as React from 'react';
|
||||
import warnOnce from 'warn-once';
|
||||
|
||||
import type {
|
||||
BottomTabNavigationConfig,
|
||||
BottomTabNavigationOptions,
|
||||
BottomTabNavigationEventMap,
|
||||
BottomTabNavigationOptions,
|
||||
} from '../types';
|
||||
import BottomTabView from '../views/BottomTabView';
|
||||
|
||||
type Props = DefaultNavigatorOptions<
|
||||
ParamListBase,
|
||||
|
||||
@@ -1,23 +1,23 @@
|
||||
import type * as React from 'react';
|
||||
import type {
|
||||
Animated,
|
||||
TouchableWithoutFeedbackProps,
|
||||
StyleProp,
|
||||
TextStyle,
|
||||
ViewStyle,
|
||||
GestureResponderEvent,
|
||||
} from 'react-native';
|
||||
import type { HeaderOptions } from '@react-navigation/elements';
|
||||
import type {
|
||||
Descriptor,
|
||||
NavigationHelpers,
|
||||
NavigationProp,
|
||||
ParamListBase,
|
||||
Descriptor,
|
||||
TabNavigationState,
|
||||
TabActionHelpers,
|
||||
RouteProp,
|
||||
TabActionHelpers,
|
||||
TabNavigationState,
|
||||
} from '@react-navigation/native';
|
||||
import type * as React from 'react';
|
||||
import type {
|
||||
Animated,
|
||||
GestureResponderEvent,
|
||||
StyleProp,
|
||||
TextStyle,
|
||||
TouchableWithoutFeedbackProps,
|
||||
ViewStyle,
|
||||
} from 'react-native';
|
||||
import type { EdgeInsets } from 'react-native-safe-area-context';
|
||||
import type { HeaderOptions } from '@react-navigation/elements';
|
||||
|
||||
export type Layout = { width: number; height: number };
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import * as React from 'react';
|
||||
|
||||
import BottomTabBarHeightContext from './BottomTabBarHeightContext';
|
||||
|
||||
export default function useFloatingBottomTabBarHeight() {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import * as React from 'react';
|
||||
import { Keyboard, Platform, EmitterSubscription } from 'react-native';
|
||||
import { EmitterSubscription, Keyboard, Platform } from 'react-native';
|
||||
|
||||
export default function useIsKeyboardShown() {
|
||||
const [isKeyboardShown, setIsKeyboardShown] = React.useState(false);
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import * as React from 'react';
|
||||
import { Animated, StyleSheet, StyleProp, TextStyle } from 'react-native';
|
||||
import color from 'color';
|
||||
import { useTheme } from '@react-navigation/native';
|
||||
import color from 'color';
|
||||
import * as React from 'react';
|
||||
import { Animated, StyleProp, StyleSheet, TextStyle } from 'react-native';
|
||||
|
||||
type Props = {
|
||||
/**
|
||||
|
||||
@@ -1,29 +1,29 @@
|
||||
import React from 'react';
|
||||
import {
|
||||
View,
|
||||
Animated,
|
||||
StyleSheet,
|
||||
Platform,
|
||||
LayoutChangeEvent,
|
||||
StyleProp,
|
||||
ViewStyle,
|
||||
} from 'react-native';
|
||||
import { MissingIcon } from '@react-navigation/elements';
|
||||
import {
|
||||
CommonActions,
|
||||
NavigationContext,
|
||||
NavigationRouteContext,
|
||||
TabNavigationState,
|
||||
ParamListBase,
|
||||
CommonActions,
|
||||
useTheme,
|
||||
TabNavigationState,
|
||||
useLinkBuilder,
|
||||
useTheme,
|
||||
} from '@react-navigation/native';
|
||||
import { MissingIcon } from '@react-navigation/elements';
|
||||
import React from 'react';
|
||||
import {
|
||||
Animated,
|
||||
LayoutChangeEvent,
|
||||
Platform,
|
||||
StyleProp,
|
||||
StyleSheet,
|
||||
View,
|
||||
ViewStyle,
|
||||
} from 'react-native';
|
||||
import { EdgeInsets, useSafeAreaFrame } from 'react-native-safe-area-context';
|
||||
|
||||
import BottomTabItem from './BottomTabItem';
|
||||
import type { BottomTabBarProps, BottomTabDescriptorMap } from '../types';
|
||||
import BottomTabBarHeightCallbackContext from '../utils/BottomTabBarHeightCallbackContext';
|
||||
import useIsKeyboardShown from '../utils/useIsKeyboardShown';
|
||||
import type { BottomTabBarProps, BottomTabDescriptorMap } from '../types';
|
||||
import BottomTabItem from './BottomTabItem';
|
||||
|
||||
type Props = BottomTabBarProps & {
|
||||
style?: Animated.WithAnimatedValue<StyleProp<ViewStyle>>;
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
import React from 'react';
|
||||
import {
|
||||
Text,
|
||||
Pressable,
|
||||
StyleSheet,
|
||||
Platform,
|
||||
StyleProp,
|
||||
ViewStyle,
|
||||
TextStyle,
|
||||
GestureResponderEvent,
|
||||
} from 'react-native';
|
||||
import { Link, Route, useTheme } from '@react-navigation/native';
|
||||
import Color from 'color';
|
||||
import React from 'react';
|
||||
import {
|
||||
GestureResponderEvent,
|
||||
Platform,
|
||||
Pressable,
|
||||
StyleProp,
|
||||
StyleSheet,
|
||||
Text,
|
||||
TextStyle,
|
||||
ViewStyle,
|
||||
} from 'react-native';
|
||||
|
||||
import TabBarIcon from './TabBarIcon';
|
||||
import type { BottomTabBarButtonProps, LabelPosition } from '../types';
|
||||
import TabBarIcon from './TabBarIcon';
|
||||
|
||||
type Props = {
|
||||
/**
|
||||
|
||||
@@ -1,28 +1,29 @@
|
||||
import * as React from 'react';
|
||||
import { StyleSheet, Platform } from 'react-native';
|
||||
import { SafeAreaInsetsContext } from 'react-native-safe-area-context';
|
||||
import {
|
||||
getHeaderTitle,
|
||||
Header,
|
||||
SafeAreaProviderCompat,
|
||||
Screen,
|
||||
} from '@react-navigation/elements';
|
||||
import type {
|
||||
ParamListBase,
|
||||
TabNavigationState,
|
||||
} from '@react-navigation/native';
|
||||
import {
|
||||
Header,
|
||||
Screen,
|
||||
SafeAreaProviderCompat,
|
||||
getHeaderTitle,
|
||||
} from '@react-navigation/elements';
|
||||
import { MaybeScreenContainer, MaybeScreen } from './ScreenFallback';
|
||||
import BottomTabBar, { getTabBarHeight } from './BottomTabBar';
|
||||
import BottomTabBarHeightCallbackContext from '../utils/BottomTabBarHeightCallbackContext';
|
||||
import BottomTabBarHeightContext from '../utils/BottomTabBarHeightContext';
|
||||
import * as React from 'react';
|
||||
import { Platform, StyleSheet } from 'react-native';
|
||||
import { SafeAreaInsetsContext } from 'react-native-safe-area-context';
|
||||
|
||||
import type {
|
||||
BottomTabNavigationConfig,
|
||||
BottomTabDescriptorMap,
|
||||
BottomTabNavigationHelpers,
|
||||
BottomTabBarProps,
|
||||
BottomTabDescriptorMap,
|
||||
BottomTabHeaderProps,
|
||||
BottomTabNavigationConfig,
|
||||
BottomTabNavigationHelpers,
|
||||
BottomTabNavigationProp,
|
||||
} from '../types';
|
||||
import BottomTabBarHeightCallbackContext from '../utils/BottomTabBarHeightCallbackContext';
|
||||
import BottomTabBarHeightContext from '../utils/BottomTabBarHeightContext';
|
||||
import BottomTabBar, { getTabBarHeight } from './BottomTabBar';
|
||||
import { MaybeScreen, MaybeScreenContainer } from './ScreenFallback';
|
||||
|
||||
type Props = BottomTabNavigationConfig & {
|
||||
state: TabNavigationState<ParamListBase>;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { ResourceSavingView } from '@react-navigation/elements';
|
||||
import * as React from 'react';
|
||||
import { StyleProp, View, ViewProps, ViewStyle } from 'react-native';
|
||||
import { ResourceSavingView } from '@react-navigation/elements';
|
||||
|
||||
type Props = {
|
||||
visible: boolean;
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
import type { Route } from '@react-navigation/native';
|
||||
import React from 'react';
|
||||
import {
|
||||
View,
|
||||
StyleSheet,
|
||||
StyleProp,
|
||||
StyleSheet,
|
||||
TextStyle,
|
||||
View,
|
||||
ViewStyle,
|
||||
} from 'react-native';
|
||||
import type { Route } from '@react-navigation/native';
|
||||
|
||||
import Badge from './Badge';
|
||||
|
||||
type Props = {
|
||||
@@ -27,6 +28,7 @@ type Props = {
|
||||
};
|
||||
|
||||
export default function TabBarIcon({
|
||||
route: _,
|
||||
horizontal,
|
||||
badge,
|
||||
badgeStyle,
|
||||
|
||||
@@ -3,6 +3,36 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
# [6.0.0-next.13](https://github.com/react-navigation/react-navigation/compare/@react-navigation/core@6.0.0-next.12...@react-navigation/core@6.0.0-next.13) (2021-05-29)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* validate property names in linking config ([324ea71](https://github.com/react-navigation/react-navigation/commit/324ea7181db6b743f512854be267cc9d65975b6f))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [6.0.0-next.12](https://github.com/react-navigation/react-navigation/compare/@react-navigation/core@6.0.0-next.11...@react-navigation/core@6.0.0-next.12) (2021-05-29)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* try to fix [#9631](https://github.com/react-navigation/react-navigation/issues/9631) ([b4d7b0e](https://github.com/react-navigation/react-navigation/commit/b4d7b0ee86c09419a18357867a0a25bb90d960c0))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [6.0.0-next.11](https://github.com/react-navigation/react-navigation/compare/@react-navigation/core@6.0.0-next.10...@react-navigation/core@6.0.0-next.11) (2021-05-27)
|
||||
|
||||
**Note:** Version bump only for package @react-navigation/core
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [6.0.0-next.10](https://github.com/react-navigation/react-navigation/compare/@react-navigation/core@6.0.0-next.9...@react-navigation/core@6.0.0-next.10) (2021-05-26)
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@react-navigation/core",
|
||||
"description": "Core utilities for building navigators",
|
||||
"version": "6.0.0-next.10",
|
||||
"version": "6.0.0-next.13",
|
||||
"keywords": [
|
||||
"react",
|
||||
"react-native",
|
||||
@@ -35,7 +35,7 @@
|
||||
"clean": "del lib"
|
||||
},
|
||||
"dependencies": {
|
||||
"@react-navigation/routers": "^6.0.0-next.3",
|
||||
"@react-navigation/routers": "^6.0.0-next.4",
|
||||
"escape-string-regexp": "^4.0.0",
|
||||
"nanoid": "^3.1.22",
|
||||
"query-string": "^7.0.0",
|
||||
|
||||
@@ -1,60 +1,42 @@
|
||||
import * as React from 'react';
|
||||
import {
|
||||
CommonActions,
|
||||
Route,
|
||||
NavigationState,
|
||||
InitialState,
|
||||
PartialState,
|
||||
NavigationAction,
|
||||
NavigationState,
|
||||
ParamListBase,
|
||||
PartialState,
|
||||
Route,
|
||||
} from '@react-navigation/routers';
|
||||
import EnsureSingleNavigator from './EnsureSingleNavigator';
|
||||
import UnhandledActionContext from './UnhandledActionContext';
|
||||
import NavigationBuilderContext from './NavigationBuilderContext';
|
||||
import NavigationStateContext from './NavigationStateContext';
|
||||
import NavigationRouteContext from './NavigationRouteContext';
|
||||
import NavigationContext from './NavigationContext';
|
||||
import { ScheduleUpdateContext } from './useScheduleUpdate';
|
||||
import useChildListeners from './useChildListeners';
|
||||
import useKeyedChildListeners from './useKeyedChildListeners';
|
||||
import useOptionsGetters from './useOptionsGetters';
|
||||
import useEventEmitter from './useEventEmitter';
|
||||
import useSyncState from './useSyncState';
|
||||
import checkSerializable from './checkSerializable';
|
||||
import * as React from 'react';
|
||||
|
||||
import checkDuplicateRouteNames from './checkDuplicateRouteNames';
|
||||
import findFocusedRoute from './findFocusedRoute';
|
||||
import checkSerializable from './checkSerializable';
|
||||
import { NOT_INITIALIZED_ERROR } from './createNavigationContainerRef';
|
||||
import EnsureSingleNavigator from './EnsureSingleNavigator';
|
||||
import findFocusedRoute from './findFocusedRoute';
|
||||
import NavigationBuilderContext from './NavigationBuilderContext';
|
||||
import NavigationContainerRefContext from './NavigationContainerRefContext';
|
||||
import NavigationContext from './NavigationContext';
|
||||
import NavigationRouteContext from './NavigationRouteContext';
|
||||
import NavigationStateContext from './NavigationStateContext';
|
||||
import type {
|
||||
NavigationContainerEventMap,
|
||||
NavigationContainerRef,
|
||||
NavigationContainerProps,
|
||||
NavigationContainerRef,
|
||||
} from './types';
|
||||
import NavigationContainerRefContext from './NavigationContainerRefContext';
|
||||
import UnhandledActionContext from './UnhandledActionContext';
|
||||
import useChildListeners from './useChildListeners';
|
||||
import useEventEmitter from './useEventEmitter';
|
||||
import useKeyedChildListeners from './useKeyedChildListeners';
|
||||
import useOptionsGetters from './useOptionsGetters';
|
||||
import { ScheduleUpdateContext } from './useScheduleUpdate';
|
||||
import useSyncState from './useSyncState';
|
||||
|
||||
type State = NavigationState | PartialState<NavigationState> | undefined;
|
||||
|
||||
const serializableWarnings: string[] = [];
|
||||
const duplicateNameWarnings: string[] = [];
|
||||
|
||||
try {
|
||||
/**
|
||||
* Migration instructions for removal of devtools from core
|
||||
*/
|
||||
Object.defineProperty(
|
||||
global,
|
||||
'REACT_NAVIGATION_REDUX_DEVTOOLS_EXTENSION_INTEGRATION_ENABLED',
|
||||
{
|
||||
set(_) {
|
||||
console.warn(
|
||||
"Redux devtools extension integration can be enabled with the '@react-navigation/devtools' package. For more details, see https://reactnavigation.org/docs/devtools"
|
||||
);
|
||||
},
|
||||
}
|
||||
);
|
||||
} catch (e) {
|
||||
// Ignore
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove `key` and `routeNames` from the state objects recursively to get partial state.
|
||||
*
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import type { ParamListBase } from '@react-navigation/routers';
|
||||
|
||||
import type { RouteGroupConfig } from './types';
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
import * as React from 'react';
|
||||
import type {
|
||||
NavigationAction,
|
||||
NavigationState,
|
||||
ParamListBase,
|
||||
} from '@react-navigation/routers';
|
||||
import * as React from 'react';
|
||||
|
||||
import type { NavigationHelpers } from './types';
|
||||
|
||||
export type ListenerMap = {
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import * as React from 'react';
|
||||
import type { ParamListBase } from '@react-navigation/routers';
|
||||
import * as React from 'react';
|
||||
|
||||
import type { NavigationContainerRef } from './types';
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import * as React from 'react';
|
||||
import type { ParamListBase } from '@react-navigation/routers';
|
||||
import * as React from 'react';
|
||||
|
||||
import type { NavigationProp } from './types';
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import * as React from 'react';
|
||||
import type { ParamListBase } from '@react-navigation/routers';
|
||||
import * as React from 'react';
|
||||
|
||||
import type { NavigationHelpers } from './types';
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import * as React from 'react';
|
||||
import type { Route } from '@react-navigation/routers';
|
||||
import * as React from 'react';
|
||||
|
||||
/**
|
||||
* Context which holds the route prop for a screen.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import * as React from 'react';
|
||||
import type { NavigationState, PartialState } from '@react-navigation/routers';
|
||||
import * as React from 'react';
|
||||
|
||||
const MISSING_CONTEXT_ERROR =
|
||||
"Couldn't find a navigation context. Have you wrapped your app with 'NavigationContainer'? See https://reactnavigation.org/docs/getting-started for setup instructions.";
|
||||
|
||||
@@ -1,15 +1,16 @@
|
||||
import * as React from 'react';
|
||||
import type {
|
||||
Route,
|
||||
ParamListBase,
|
||||
NavigationState,
|
||||
ParamListBase,
|
||||
PartialState,
|
||||
Route,
|
||||
} from '@react-navigation/routers';
|
||||
import * as React from 'react';
|
||||
|
||||
import EnsureSingleNavigator from './EnsureSingleNavigator';
|
||||
import NavigationStateContext from './NavigationStateContext';
|
||||
import StaticContainer from './StaticContainer';
|
||||
import EnsureSingleNavigator from './EnsureSingleNavigator';
|
||||
import useOptionsGetters from './useOptionsGetters';
|
||||
import type { NavigationProp, RouteConfigComponent } from './types';
|
||||
import useOptionsGetters from './useOptionsGetters';
|
||||
|
||||
type Props<State extends NavigationState, ScreenOptions extends {}> = {
|
||||
screen: RouteConfigComponent<ParamListBase, string> & { name: string };
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import type { ParamListBase, NavigationState } from '@react-navigation/routers';
|
||||
import type { RouteConfig, EventMapBase } from './types';
|
||||
import type { NavigationState, ParamListBase } from '@react-navigation/routers';
|
||||
|
||||
import type { EventMapBase, RouteConfig } from './types';
|
||||
|
||||
/**
|
||||
* Empty component used for specifying route configuration.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import * as React from 'react';
|
||||
import type { NavigationAction } from '@react-navigation/routers';
|
||||
import * as React from 'react';
|
||||
|
||||
const UnhandledActionContext = React.createContext<
|
||||
((action: NavigationAction) => void) | undefined
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
import * as React from 'react';
|
||||
import { act, render } from '@testing-library/react-native';
|
||||
import {
|
||||
DefaultRouterOptions,
|
||||
NavigationState,
|
||||
@@ -8,12 +6,15 @@ import {
|
||||
StackRouter,
|
||||
TabRouter,
|
||||
} from '@react-navigation/routers';
|
||||
import { act, render } from '@testing-library/react-native';
|
||||
import * as React from 'react';
|
||||
|
||||
import BaseNavigationContainer from '../BaseNavigationContainer';
|
||||
import NavigationStateContext from '../NavigationStateContext';
|
||||
import createNavigationContainerRef from '../createNavigationContainerRef';
|
||||
import MockRouter, { MockActions } from './__fixtures__/MockRouter';
|
||||
import useNavigationBuilder from '../useNavigationBuilder';
|
||||
import NavigationStateContext from '../NavigationStateContext';
|
||||
import Screen from '../Screen';
|
||||
import useNavigationBuilder from '../useNavigationBuilder';
|
||||
import MockRouter, { MockActions } from './__fixtures__/MockRouter';
|
||||
|
||||
it('throws when getState is accessed without a container', () => {
|
||||
expect.assertions(1);
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import * as React from 'react';
|
||||
import { render } from '@testing-library/react-native';
|
||||
import * as React from 'react';
|
||||
|
||||
import StaticContainer from '../StaticContainer';
|
||||
|
||||
it("doesn't update element if no props changed", () => {
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import {
|
||||
BaseRouter,
|
||||
Router,
|
||||
CommonNavigationAction,
|
||||
DefaultRouterOptions,
|
||||
NavigationState,
|
||||
Route,
|
||||
DefaultRouterOptions,
|
||||
Router,
|
||||
} from '@react-navigation/routers';
|
||||
|
||||
export type MockActions = CommonNavigationAction | { type: 'NOOP' | 'UPDATE' };
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import type { NavigationState, PartialState } from '@react-navigation/routers';
|
||||
|
||||
import getPathFromState from '../getPathFromState';
|
||||
import getStateFromPath from '../getStateFromPath';
|
||||
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
import type { InitialState } from '@react-navigation/routers';
|
||||
import produce from 'immer';
|
||||
import getStateFromPath from '../getStateFromPath';
|
||||
import getPathFromState from '../getPathFromState';
|
||||
|
||||
import findFocusedRoute from '../findFocusedRoute';
|
||||
import getPathFromState from '../getPathFromState';
|
||||
import getStateFromPath from '../getStateFromPath';
|
||||
|
||||
const changePath = <T extends InitialState>(state: T, path: string): T =>
|
||||
produce(state, (draftState) => {
|
||||
@@ -2419,3 +2420,57 @@ it('correctly applies initialRouteName for config with similar route names v2',
|
||||
getStateFromPath<object>(getPathFromState<object>(state, config), config)
|
||||
).toEqual(state);
|
||||
});
|
||||
|
||||
it('throws when invalid properties are specified in the config', () => {
|
||||
expect(() =>
|
||||
getStateFromPath<object>('', {
|
||||
Foo: 'foo',
|
||||
Bar: {
|
||||
path: 'bar',
|
||||
},
|
||||
} as any)
|
||||
).toThrowErrorMatchingInlineSnapshot(`
|
||||
"Found invalid properties in the configuration:
|
||||
- Foo
|
||||
- Bar
|
||||
|
||||
Did you forget to specify them under a 'screens' property?
|
||||
|
||||
You can only specify the following properties:
|
||||
- initialRouteName
|
||||
- screens
|
||||
|
||||
See https://reactnavigation.org/docs/configuring-links for more details on how to specify a linking configuration."
|
||||
`);
|
||||
|
||||
expect(() =>
|
||||
getStateFromPath<object>('', {
|
||||
screens: {
|
||||
Foo: 'foo',
|
||||
Bar: {
|
||||
path: 'bar',
|
||||
},
|
||||
Baz: {
|
||||
Qux: {
|
||||
path: 'qux',
|
||||
},
|
||||
},
|
||||
},
|
||||
} as any)
|
||||
).toThrowErrorMatchingInlineSnapshot(`
|
||||
"Found invalid properties in the configuration:
|
||||
- Qux
|
||||
|
||||
Did you forget to specify them under a 'screens' property?
|
||||
|
||||
You can only specify the following properties:
|
||||
- initialRouteName
|
||||
- screens
|
||||
- path
|
||||
- exact
|
||||
- stringify
|
||||
- parse
|
||||
|
||||
See https://reactnavigation.org/docs/configuring-links for more details on how to specify a linking configuration."
|
||||
`);
|
||||
});
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
import * as React from 'react';
|
||||
import { render, act } from '@testing-library/react-native';
|
||||
import type { NavigationState, ParamListBase } from '@react-navigation/routers';
|
||||
import { act, render } from '@testing-library/react-native';
|
||||
import * as React from 'react';
|
||||
|
||||
import BaseNavigationContainer from '../BaseNavigationContainer';
|
||||
import createNavigationContainerRef from '../createNavigationContainerRef';
|
||||
import Group from '../Group';
|
||||
import Screen from '../Screen';
|
||||
import BaseNavigationContainer from '../BaseNavigationContainer';
|
||||
import useNavigationBuilder from '../useNavigationBuilder';
|
||||
import createNavigationContainerRef from '../createNavigationContainerRef';
|
||||
import useNavigation from '../useNavigation';
|
||||
import useNavigationBuilder from '../useNavigationBuilder';
|
||||
import MockRouter, { MockRouterKey } from './__fixtures__/MockRouter';
|
||||
|
||||
beforeEach(() => (MockRouterKey.current = 0));
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
import * as React from 'react';
|
||||
import { render, act } from '@testing-library/react-native';
|
||||
import type {
|
||||
DefaultRouterOptions,
|
||||
NavigationState,
|
||||
Router,
|
||||
} from '@react-navigation/routers';
|
||||
import useNavigationBuilder from '../useNavigationBuilder';
|
||||
import { act, render } from '@testing-library/react-native';
|
||||
import * as React from 'react';
|
||||
|
||||
import BaseNavigationContainer from '../BaseNavigationContainer';
|
||||
import Screen from '../Screen';
|
||||
import useNavigationBuilder from '../useNavigationBuilder';
|
||||
import MockRouter, {
|
||||
MockActions,
|
||||
MockRouterKey,
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
import type { NavigationState, Router } from '@react-navigation/routers';
|
||||
import { act, render } from '@testing-library/react-native';
|
||||
import * as React from 'react';
|
||||
import { render, act } from '@testing-library/react-native';
|
||||
import type { Router, NavigationState } from '@react-navigation/routers';
|
||||
import useNavigationBuilder from '../useNavigationBuilder';
|
||||
|
||||
import BaseNavigationContainer from '../BaseNavigationContainer';
|
||||
import Screen from '../Screen';
|
||||
import useNavigationBuilder from '../useNavigationBuilder';
|
||||
import MockRouter from './__fixtures__/MockRouter';
|
||||
|
||||
it('fires focus and blur events in root navigator', () => {
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
import { act, render } from '@testing-library/react-native';
|
||||
import * as React from 'react';
|
||||
import { render, act } from '@testing-library/react-native';
|
||||
import useNavigationBuilder from '../useNavigationBuilder';
|
||||
import useFocusEffect from '../useFocusEffect';
|
||||
|
||||
import BaseNavigationContainer from '../BaseNavigationContainer';
|
||||
import Screen from '../Screen';
|
||||
import useFocusEffect from '../useFocusEffect';
|
||||
import useNavigationBuilder from '../useNavigationBuilder';
|
||||
import MockRouter from './__fixtures__/MockRouter';
|
||||
|
||||
it('runs focus effect on focus change', () => {
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
import { act, render } from '@testing-library/react-native';
|
||||
import * as React from 'react';
|
||||
import { render, act } from '@testing-library/react-native';
|
||||
import useNavigationBuilder from '../useNavigationBuilder';
|
||||
import useIsFocused from '../useIsFocused';
|
||||
|
||||
import BaseNavigationContainer from '../BaseNavigationContainer';
|
||||
import Screen from '../Screen';
|
||||
import useIsFocused from '../useIsFocused';
|
||||
import useNavigationBuilder from '../useNavigationBuilder';
|
||||
import MockRouter from './__fixtures__/MockRouter';
|
||||
|
||||
it('renders correct focus state', () => {
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
import * as React from 'react';
|
||||
import { render } from '@testing-library/react-native';
|
||||
import useNavigationBuilder from '../useNavigationBuilder';
|
||||
import useNavigation from '../useNavigation';
|
||||
import * as React from 'react';
|
||||
|
||||
import BaseNavigationContainer from '../BaseNavigationContainer';
|
||||
import Screen from '../Screen';
|
||||
import useNavigation from '../useNavigation';
|
||||
import useNavigationBuilder from '../useNavigationBuilder';
|
||||
import MockRouter from './__fixtures__/MockRouter';
|
||||
|
||||
it('gets navigation prop from context', () => {
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
import { act, render } from '@testing-library/react-native';
|
||||
import * as React from 'react';
|
||||
import { render, act } from '@testing-library/react-native';
|
||||
import useEventEmitter from '../useEventEmitter';
|
||||
import useNavigationCache from '../useNavigationCache';
|
||||
import useNavigationBuilder from '../useNavigationBuilder';
|
||||
|
||||
import BaseNavigationContainer from '../BaseNavigationContainer';
|
||||
import Screen from '../Screen';
|
||||
import useEventEmitter from '../useEventEmitter';
|
||||
import useNavigationBuilder from '../useNavigationBuilder';
|
||||
import useNavigationCache from '../useNavigationCache';
|
||||
import MockRouter, { MockRouterKey } from './__fixtures__/MockRouter';
|
||||
|
||||
beforeEach(() => (MockRouterKey.current = 0));
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
import * as React from 'react';
|
||||
import { render, act } from '@testing-library/react-native';
|
||||
import type { NavigationState } from '@react-navigation/routers';
|
||||
import useNavigationBuilder from '../useNavigationBuilder';
|
||||
import useNavigationState from '../useNavigationState';
|
||||
import { act, render } from '@testing-library/react-native';
|
||||
import * as React from 'react';
|
||||
|
||||
import BaseNavigationContainer from '../BaseNavigationContainer';
|
||||
import Screen from '../Screen';
|
||||
import useNavigationBuilder from '../useNavigationBuilder';
|
||||
import useNavigationState from '../useNavigationState';
|
||||
import MockRouter from './__fixtures__/MockRouter';
|
||||
|
||||
it('gets the current navigation state', () => {
|
||||
|
||||
@@ -1,16 +1,17 @@
|
||||
import * as React from 'react';
|
||||
import { act, render } from '@testing-library/react-native';
|
||||
import {
|
||||
Router,
|
||||
DefaultRouterOptions,
|
||||
NavigationState,
|
||||
StackRouter,
|
||||
ParamListBase,
|
||||
Router,
|
||||
StackRouter,
|
||||
} from '@react-navigation/routers';
|
||||
import useNavigationBuilder from '../useNavigationBuilder';
|
||||
import { act, render } from '@testing-library/react-native';
|
||||
import * as React from 'react';
|
||||
|
||||
import BaseNavigationContainer from '../BaseNavigationContainer';
|
||||
import Screen from '../Screen';
|
||||
import createNavigationContainerRef from '../createNavigationContainerRef';
|
||||
import Screen from '../Screen';
|
||||
import useNavigationBuilder from '../useNavigationBuilder';
|
||||
import MockRouter, {
|
||||
MockActions,
|
||||
MockRouterKey,
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
import * as React from 'react';
|
||||
import { render } from '@testing-library/react-native';
|
||||
import useNavigationBuilder from '../useNavigationBuilder';
|
||||
import useRoute from '../useRoute';
|
||||
import * as React from 'react';
|
||||
|
||||
import BaseNavigationContainer from '../BaseNavigationContainer';
|
||||
import Screen from '../Screen';
|
||||
import MockRouter from './__fixtures__/MockRouter';
|
||||
import type { RouteProp } from '../types';
|
||||
import useNavigationBuilder from '../useNavigationBuilder';
|
||||
import useRoute from '../useRoute';
|
||||
import MockRouter from './__fixtures__/MockRouter';
|
||||
|
||||
it('gets route prop from context', () => {
|
||||
expect.assertions(1);
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { CommonActions } from '@react-navigation/routers';
|
||||
|
||||
import type { NavigationContainerRefWithCurrent } from './types';
|
||||
|
||||
export const NOT_INITIALIZED_ERROR =
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
import type { NavigationState, ParamListBase } from '@react-navigation/routers';
|
||||
import type * as React from 'react';
|
||||
import type { ParamListBase, NavigationState } from '@react-navigation/routers';
|
||||
|
||||
import Group from './Group';
|
||||
import Screen from './Screen';
|
||||
import type { TypedNavigator, EventMapBase } from './types';
|
||||
import type { EventMapBase, TypedNavigator } from './types';
|
||||
|
||||
/**
|
||||
* Higher order component to create a `Navigator` and `Screen` pair.
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
import type {
|
||||
Route,
|
||||
PartialRoute,
|
||||
ParamListBase,
|
||||
NavigationState,
|
||||
PartialState,
|
||||
CommonActions,
|
||||
NavigationState,
|
||||
ParamListBase,
|
||||
PartialRoute,
|
||||
PartialState,
|
||||
Route,
|
||||
} from '@react-navigation/routers';
|
||||
import type { PathConfig, PathConfigMap, NavigatorScreenParams } from './types';
|
||||
|
||||
import type { NavigatorScreenParams, PathConfig, PathConfigMap } from './types';
|
||||
|
||||
type ConfigItem = {
|
||||
initialRouteName?: string;
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import type { Route } from '@react-navigation/routers';
|
||||
|
||||
import { CHILD_STATE } from './useRouteCache';
|
||||
|
||||
export default function getFocusedRouteNameFromRoute(
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
import * as queryString from 'query-string';
|
||||
import type {
|
||||
NavigationState,
|
||||
PartialState,
|
||||
Route,
|
||||
} from '@react-navigation/routers';
|
||||
import * as queryString from 'query-string';
|
||||
|
||||
import fromEntries from './fromEntries';
|
||||
import type { PathConfig, PathConfigMap } from './types';
|
||||
import validatePathConfig from './validatePathConfig';
|
||||
|
||||
type Options<ParamList> = {
|
||||
initialRouteName?: string;
|
||||
@@ -74,6 +76,10 @@ export default function getPathFromState<ParamList extends {}>(
|
||||
);
|
||||
}
|
||||
|
||||
if (options) {
|
||||
validatePathConfig(options);
|
||||
}
|
||||
|
||||
// Create a normalized configs object which will be easier to use
|
||||
const configs: Record<string, ConfigItem> = options?.screens
|
||||
? createNormalizedConfigs(options?.screens)
|
||||
|
||||
@@ -1,12 +1,14 @@
|
||||
import escape from 'escape-string-regexp';
|
||||
import * as queryString from 'query-string';
|
||||
import type {
|
||||
InitialState,
|
||||
NavigationState,
|
||||
PartialState,
|
||||
InitialState,
|
||||
} from '@react-navigation/routers';
|
||||
import escape from 'escape-string-regexp';
|
||||
import * as queryString from 'query-string';
|
||||
|
||||
import findFocusedRoute from './findFocusedRoute';
|
||||
import type { PathConfigMap } from './types';
|
||||
import validatePathConfig from './validatePathConfig';
|
||||
|
||||
type Options<ParamList extends {}> = {
|
||||
initialRouteName?: string;
|
||||
@@ -64,6 +66,10 @@ export default function getStateFromPath<ParamList extends {}>(
|
||||
path: string,
|
||||
options?: Options<ParamList>
|
||||
): ResultState | undefined {
|
||||
if (options) {
|
||||
validatePathConfig(options);
|
||||
}
|
||||
|
||||
let initialRoutes: InitialRouteConfig[] = [];
|
||||
|
||||
if (options?.initialRouteName) {
|
||||
|
||||
@@ -1,31 +1,23 @@
|
||||
export * from '@react-navigation/routers';
|
||||
|
||||
export { default as BaseNavigationContainer } from './BaseNavigationContainer';
|
||||
export { default as createNavigatorFactory } from './createNavigatorFactory';
|
||||
|
||||
export { default as createNavigationContainerRef } from './createNavigationContainerRef';
|
||||
export { default as useNavigationContainerRef } from './useNavigationContainerRef';
|
||||
|
||||
export { default as NavigationContainerRefContext } from './NavigationContainerRefContext';
|
||||
export { default as NavigationHelpersContext } from './NavigationHelpersContext';
|
||||
export { default as NavigationContext } from './NavigationContext';
|
||||
export { default as NavigationRouteContext } from './NavigationRouteContext';
|
||||
|
||||
export { default as createNavigatorFactory } from './createNavigatorFactory';
|
||||
export { default as CurrentRenderContext } from './CurrentRenderContext';
|
||||
|
||||
export { default as useNavigationBuilder } from './useNavigationBuilder';
|
||||
export { default as useNavigation } from './useNavigation';
|
||||
export { default as useRoute } from './useRoute';
|
||||
export { default as findFocusedRoute } from './findFocusedRoute';
|
||||
export { default as getActionFromState } from './getActionFromState';
|
||||
export { default as getFocusedRouteNameFromRoute } from './getFocusedRouteNameFromRoute';
|
||||
export { default as getPathFromState } from './getPathFromState';
|
||||
export { default as getStateFromPath } from './getStateFromPath';
|
||||
export { default as NavigationContainerRefContext } from './NavigationContainerRefContext';
|
||||
export { default as NavigationContext } from './NavigationContext';
|
||||
export { default as NavigationHelpersContext } from './NavigationHelpersContext';
|
||||
export { default as NavigationRouteContext } from './NavigationRouteContext';
|
||||
export * from './types';
|
||||
export { default as useFocusEffect } from './useFocusEffect';
|
||||
export { default as useIsFocused } from './useIsFocused';
|
||||
export { default as useNavigation } from './useNavigation';
|
||||
export { default as useNavigationBuilder } from './useNavigationBuilder';
|
||||
export { default as useNavigationContainerRef } from './useNavigationContainerRef';
|
||||
export { default as useNavigationState } from './useNavigationState';
|
||||
|
||||
export { default as getStateFromPath } from './getStateFromPath';
|
||||
export { default as getPathFromState } from './getPathFromState';
|
||||
export { default as getActionFromState } from './getActionFromState';
|
||||
|
||||
export { default as findFocusedRoute } from './findFocusedRoute';
|
||||
|
||||
export { default as getFocusedRouteNameFromRoute } from './getFocusedRouteNameFromRoute';
|
||||
|
||||
export * from './types';
|
||||
export { default as useRoute } from './useRoute';
|
||||
export { default as validatePathConfig } from './validatePathConfig';
|
||||
export * from '@react-navigation/routers';
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
import type * as React from 'react';
|
||||
import type {
|
||||
DefaultRouterOptions,
|
||||
NavigationState,
|
||||
NavigationAction,
|
||||
InitialState,
|
||||
NavigationAction,
|
||||
NavigationState,
|
||||
ParamListBase,
|
||||
PartialState,
|
||||
Route,
|
||||
ParamListBase,
|
||||
} from '@react-navigation/routers';
|
||||
import type * as React from 'react';
|
||||
|
||||
declare global {
|
||||
// eslint-disable-next-line @typescript-eslint/no-namespace
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import * as React from 'react';
|
||||
|
||||
import type { ListenerMap } from './NavigationBuilderContext';
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import * as React from 'react';
|
||||
import type { NavigationState, ParamListBase } from '@react-navigation/routers';
|
||||
import * as React from 'react';
|
||||
|
||||
import CurrentRenderContext from './CurrentRenderContext';
|
||||
import type {
|
||||
Descriptor,
|
||||
|
||||
@@ -1,28 +1,29 @@
|
||||
import * as React from 'react';
|
||||
import type {
|
||||
NavigationAction,
|
||||
NavigationState,
|
||||
ParamListBase,
|
||||
Router,
|
||||
} from '@react-navigation/routers';
|
||||
import SceneView from './SceneView';
|
||||
import * as React from 'react';
|
||||
|
||||
import NavigationBuilderContext, {
|
||||
AddListener,
|
||||
AddKeyedListener,
|
||||
AddListener,
|
||||
} from './NavigationBuilderContext';
|
||||
import NavigationContext from './NavigationContext';
|
||||
import NavigationRouteContext from './NavigationRouteContext';
|
||||
import SceneView from './SceneView';
|
||||
import type {
|
||||
Descriptor,
|
||||
EventMapBase,
|
||||
NavigationHelpers,
|
||||
NavigationProp,
|
||||
RouteConfig,
|
||||
RouteProp,
|
||||
} from './types';
|
||||
import type { NavigationEventEmitter } from './useEventEmitter';
|
||||
import useNavigationCache from './useNavigationCache';
|
||||
import useRouteCache from './useRouteCache';
|
||||
import NavigationContext from './NavigationContext';
|
||||
import NavigationRouteContext from './NavigationRouteContext';
|
||||
import type {
|
||||
Descriptor,
|
||||
NavigationHelpers,
|
||||
RouteConfig,
|
||||
RouteProp,
|
||||
EventMapBase,
|
||||
NavigationProp,
|
||||
} from './types';
|
||||
|
||||
export type ScreenConfigWithParent<
|
||||
State extends NavigationState,
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import * as React from 'react';
|
||||
import type { EventEmitter, EventConsumer, EventArg } from './types';
|
||||
|
||||
import type { EventArg, EventConsumer, EventEmitter } from './types';
|
||||
|
||||
export type NavigationEventEmitter<
|
||||
T extends Record<string, any>
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import * as React from 'react';
|
||||
|
||||
import useNavigation from './useNavigation';
|
||||
|
||||
type EffectCallback = () => undefined | void | (() => void);
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
import * as React from 'react';
|
||||
import type { NavigationState } from '@react-navigation/routers';
|
||||
import * as React from 'react';
|
||||
|
||||
import NavigationContext from './NavigationContext';
|
||||
import type { NavigationEventEmitter } from './useEventEmitter';
|
||||
import type { EventMapCore } from './types';
|
||||
import type { NavigationEventEmitter } from './useEventEmitter';
|
||||
|
||||
type Options<State extends NavigationState> = {
|
||||
state: State;
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import * as React from 'react';
|
||||
import type { ParamListBase } from '@react-navigation/routers';
|
||||
import * as React from 'react';
|
||||
|
||||
import NavigationBuilderContext, {
|
||||
FocusedNavigationCallback,
|
||||
FocusedNavigationListener,
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import * as React from 'react';
|
||||
import { useState } from 'react';
|
||||
|
||||
import useNavigation from './useNavigation';
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import * as React from 'react';
|
||||
|
||||
import type { KeyedListenerMap } from './NavigationBuilderContext';
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import * as React from 'react';
|
||||
|
||||
import NavigationContainerRefContext from './NavigationContainerRefContext';
|
||||
import NavigationContext from './NavigationContext';
|
||||
import type { NavigationProp } from './types';
|
||||
|
||||
@@ -1,45 +1,46 @@
|
||||
import * as React from 'react';
|
||||
import { isValidElementType } from 'react-is';
|
||||
import {
|
||||
CommonActions,
|
||||
DefaultRouterOptions,
|
||||
NavigationAction,
|
||||
NavigationState,
|
||||
ParamListBase,
|
||||
Router,
|
||||
RouterFactory,
|
||||
RouterConfigOptions,
|
||||
PartialState,
|
||||
NavigationAction,
|
||||
Route,
|
||||
Router,
|
||||
RouterConfigOptions,
|
||||
RouterFactory,
|
||||
} from '@react-navigation/routers';
|
||||
import NavigationStateContext from './NavigationStateContext';
|
||||
import NavigationRouteContext from './NavigationRouteContext';
|
||||
import NavigationHelpersContext from './NavigationHelpersContext';
|
||||
import * as React from 'react';
|
||||
import { isValidElementType } from 'react-is';
|
||||
|
||||
import Group from './Group';
|
||||
import Screen from './Screen';
|
||||
import useEventEmitter from './useEventEmitter';
|
||||
import useRegisterNavigator from './useRegisterNavigator';
|
||||
import useDescriptors, { ScreenConfigWithParent } from './useDescriptors';
|
||||
import useNavigationHelpers from './useNavigationHelpers';
|
||||
import useOnAction from './useOnAction';
|
||||
import useFocusEvents from './useFocusEvents';
|
||||
import useOnRouteFocus from './useOnRouteFocus';
|
||||
import useChildListeners from './useChildListeners';
|
||||
import useFocusedListenersChildrenAdapter from './useFocusedListenersChildrenAdapter';
|
||||
import useKeyedChildListeners from './useKeyedChildListeners';
|
||||
import useOnGetState from './useOnGetState';
|
||||
import useScheduleUpdate from './useScheduleUpdate';
|
||||
import useCurrentRender from './useCurrentRender';
|
||||
import useComponent from './useComponent';
|
||||
import isArrayEqual from './isArrayEqual';
|
||||
import NavigationHelpersContext from './NavigationHelpersContext';
|
||||
import NavigationRouteContext from './NavigationRouteContext';
|
||||
import NavigationStateContext from './NavigationStateContext';
|
||||
import Screen from './Screen';
|
||||
import {
|
||||
DefaultNavigatorOptions,
|
||||
RouteConfig,
|
||||
PrivateValueStore,
|
||||
EventMapBase,
|
||||
EventMapCore,
|
||||
NavigatorScreenParams,
|
||||
PrivateValueStore,
|
||||
RouteConfig,
|
||||
} from './types';
|
||||
import useChildListeners from './useChildListeners';
|
||||
import useComponent from './useComponent';
|
||||
import useCurrentRender from './useCurrentRender';
|
||||
import useDescriptors, { ScreenConfigWithParent } from './useDescriptors';
|
||||
import useEventEmitter from './useEventEmitter';
|
||||
import useFocusedListenersChildrenAdapter from './useFocusedListenersChildrenAdapter';
|
||||
import useFocusEvents from './useFocusEvents';
|
||||
import useKeyedChildListeners from './useKeyedChildListeners';
|
||||
import useNavigationHelpers from './useNavigationHelpers';
|
||||
import useOnAction from './useOnAction';
|
||||
import useOnGetState from './useOnGetState';
|
||||
import useOnRouteFocus from './useOnRouteFocus';
|
||||
import useRegisterNavigator from './useRegisterNavigator';
|
||||
import useScheduleUpdate from './useScheduleUpdate';
|
||||
|
||||
// This is to make TypeScript compiler happy
|
||||
// eslint-disable-next-line babel/no-unused-expressions
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
import * as React from 'react';
|
||||
import {
|
||||
CommonActions,
|
||||
NavigationAction,
|
||||
ParamListBase,
|
||||
NavigationState,
|
||||
ParamListBase,
|
||||
Router,
|
||||
} from '@react-navigation/routers';
|
||||
import type { NavigationEventEmitter } from './useEventEmitter';
|
||||
import * as React from 'react';
|
||||
|
||||
import type { NavigationHelpers, NavigationProp } from './types';
|
||||
import type { NavigationEventEmitter } from './useEventEmitter';
|
||||
|
||||
type Options<
|
||||
State extends NavigationState,
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import * as React from 'react';
|
||||
|
||||
import createNavigationContainerRef from './createNavigationContainerRef';
|
||||
import type { NavigationContainerRefWithCurrent } from './types';
|
||||
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import * as React from 'react';
|
||||
import {
|
||||
CommonActions,
|
||||
NavigationAction,
|
||||
@@ -6,10 +5,12 @@ import {
|
||||
ParamListBase,
|
||||
Router,
|
||||
} from '@react-navigation/routers';
|
||||
import * as React from 'react';
|
||||
|
||||
import NavigationContext from './NavigationContext';
|
||||
import { NavigationHelpers, NavigationProp, PrivateValueStore } from './types';
|
||||
import UnhandledActionContext from './UnhandledActionContext';
|
||||
import type { NavigationEventEmitter } from './useEventEmitter';
|
||||
import { NavigationHelpers, NavigationProp, PrivateValueStore } from './types';
|
||||
|
||||
// This is to make TypeScript compiler happy
|
||||
// eslint-disable-next-line babel/no-unused-expressions
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
import * as React from 'react';
|
||||
import type { NavigationState, ParamListBase } from '@react-navigation/routers';
|
||||
import useNavigation from './useNavigation';
|
||||
import * as React from 'react';
|
||||
|
||||
import type { NavigationProp } from './types';
|
||||
import useNavigation from './useNavigation';
|
||||
|
||||
type Selector<ParamList extends ParamListBase, T> = (
|
||||
state: NavigationState<ParamList>
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import * as React from 'react';
|
||||
import type {
|
||||
NavigationAction,
|
||||
NavigationState,
|
||||
@@ -6,13 +5,15 @@ import type {
|
||||
Router,
|
||||
RouterConfigOptions,
|
||||
} from '@react-navigation/routers';
|
||||
import * as React from 'react';
|
||||
|
||||
import NavigationBuilderContext, {
|
||||
ChildActionListener,
|
||||
ChildBeforeRemoveListener,
|
||||
} from './NavigationBuilderContext';
|
||||
import useOnPreventRemove, { shouldPreventRemove } from './useOnPreventRemove';
|
||||
import type { NavigationEventEmitter } from './useEventEmitter';
|
||||
import type { EventMapCore } from './types';
|
||||
import type { NavigationEventEmitter } from './useEventEmitter';
|
||||
import useOnPreventRemove, { shouldPreventRemove } from './useOnPreventRemove';
|
||||
|
||||
type Options = {
|
||||
router: Router<NavigationState, NavigationAction>;
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
import * as React from 'react';
|
||||
import type { NavigationState } from '@react-navigation/routers';
|
||||
import * as React from 'react';
|
||||
|
||||
import isArrayEqual from './isArrayEqual';
|
||||
import NavigationBuilderContext, {
|
||||
GetStateListener,
|
||||
} from './NavigationBuilderContext';
|
||||
import NavigationRouteContext from './NavigationRouteContext';
|
||||
import isArrayEqual from './isArrayEqual';
|
||||
|
||||
type Options = {
|
||||
getState: () => NavigationState;
|
||||
|
||||
@@ -1,14 +1,15 @@
|
||||
import * as React from 'react';
|
||||
import type {
|
||||
NavigationState,
|
||||
NavigationAction,
|
||||
NavigationState,
|
||||
} from '@react-navigation/routers';
|
||||
import * as React from 'react';
|
||||
|
||||
import NavigationBuilderContext, {
|
||||
ChildBeforeRemoveListener,
|
||||
} from './NavigationBuilderContext';
|
||||
import NavigationRouteContext from './NavigationRouteContext';
|
||||
import type { NavigationEventEmitter } from './useEventEmitter';
|
||||
import type { EventMapCore } from './types';
|
||||
import type { NavigationEventEmitter } from './useEventEmitter';
|
||||
|
||||
type Options = {
|
||||
getState: () => NavigationState;
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
import * as React from 'react';
|
||||
import type {
|
||||
NavigationAction,
|
||||
NavigationState,
|
||||
Router,
|
||||
} from '@react-navigation/routers';
|
||||
import * as React from 'react';
|
||||
|
||||
import NavigationBuilderContext from './NavigationBuilderContext';
|
||||
|
||||
type Options<Action extends NavigationAction> = {
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
import * as React from 'react';
|
||||
import type { ParamListBase } from '@react-navigation/routers';
|
||||
import NavigationStateContext from './NavigationStateContext';
|
||||
import * as React from 'react';
|
||||
|
||||
import NavigationBuilderContext from './NavigationBuilderContext';
|
||||
import NavigationStateContext from './NavigationStateContext';
|
||||
import type { NavigationProp } from './types';
|
||||
|
||||
type Options = {
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user