From b91c9b05ff96727f5fa6ef0bec51b5d7eac06600 Mon Sep 17 00:00:00 2001 From: Satyajit Sahoo Date: Wed, 26 May 2021 21:29:11 +0200 Subject: [PATCH] chore: sort imports automatically --- .eslintrc.json | 4 +- example/App.tsx | 3 +- .../e2e/__integration_tests__/server.test.tsx | 2 +- example/e2e/config/setup-playwright.tsx | 2 +- example/server/index.tsx | 3 +- example/src/Screens/AuthFlow.tsx | 10 +- example/src/Screens/BottomTabs.tsx | 23 ++-- example/src/Screens/DynamicTabs.tsx | 8 +- example/src/Screens/LinkComponent.tsx | 11 +- example/src/Screens/MasterDetail.tsx | 27 ++--- example/src/Screens/MaterialBottomTabs.tsx | 7 +- example/src/Screens/MaterialTopTabs.tsx | 7 +- example/src/Screens/MixedHeaderMode.tsx | 11 +- example/src/Screens/MixedStack.tsx | 9 +- example/src/Screens/ModalStack.tsx | 9 +- example/src/Screens/NativeStack.tsx | 11 +- .../NativeStackHeaderCustomization.tsx | 9 +- example/src/Screens/NotFound.tsx | 2 +- example/src/Screens/PreventRemove.tsx | 25 +++-- example/src/Screens/SimpleStack.tsx | 9 +- .../src/Screens/StackHeaderCustomization.tsx | 33 +++--- example/src/Screens/StackTransparent.tsx | 21 ++-- example/src/Shared/Albums.tsx | 12 +- example/src/Shared/Article.tsx | 8 +- example/src/Shared/Chat.tsx | 20 ++-- example/src/Shared/Contacts.tsx | 4 +- example/src/Shared/NewsFeed.tsx | 18 +-- example/src/index.tsx | 103 +++++++++--------- package.json | 1 + .../bottom-tabs/src/__tests__/index.test.tsx | 9 +- packages/bottom-tabs/src/index.tsx | 7 +- .../navigators/createBottomTabNavigator.tsx | 17 +-- packages/bottom-tabs/src/types.tsx | 26 ++--- .../src/utils/useBottomTabBarHeight.tsx | 1 + .../src/utils/useIsKeyboardShown.tsx | 2 +- packages/bottom-tabs/src/views/Badge.tsx | 6 +- .../bottom-tabs/src/views/BottomTabBar.tsx | 32 +++--- .../bottom-tabs/src/views/BottomTabItem.tsx | 24 ++-- .../bottom-tabs/src/views/BottomTabView.tsx | 33 +++--- .../bottom-tabs/src/views/ScreenFallback.tsx | 2 +- packages/bottom-tabs/src/views/TabBarIcon.tsx | 8 +- packages/core/src/BaseNavigationContainer.tsx | 41 +++---- packages/core/src/Group.tsx | 1 + .../core/src/NavigationBuilderContext.tsx | 3 +- .../src/NavigationContainerRefContext.tsx | 3 +- packages/core/src/NavigationContext.tsx | 3 +- .../core/src/NavigationHelpersContext.tsx | 3 +- packages/core/src/NavigationRouteContext.tsx | 2 +- packages/core/src/NavigationStateContext.tsx | 2 +- packages/core/src/SceneView.tsx | 11 +- packages/core/src/Screen.tsx | 5 +- packages/core/src/UnhandledActionContext.tsx | 2 +- .../BaseNavigationContainer.test.tsx | 11 +- .../src/__tests__/StaticContainer.test.tsx | 3 +- .../src/__tests__/__fixtures__/MockRouter.tsx | 4 +- .../src/__tests__/getPathFromState.test.tsx | 1 + .../src/__tests__/getStateFromPath.test.tsx | 5 +- packages/core/src/__tests__/index.test.tsx | 11 +- .../src/__tests__/useDescriptors.test.tsx | 7 +- .../src/__tests__/useEventEmitter.test.tsx | 7 +- .../src/__tests__/useFocusEffect.test.tsx | 7 +- .../core/src/__tests__/useIsFocused.test.tsx | 7 +- .../core/src/__tests__/useNavigation.test.tsx | 7 +- .../src/__tests__/useNavigationCache.test.tsx | 9 +- .../src/__tests__/useNavigationState.test.tsx | 9 +- .../core/src/__tests__/useOnAction.test.tsx | 13 ++- packages/core/src/__tests__/useRoute.test.tsx | 9 +- .../core/src/createNavigationContainerRef.tsx | 1 + packages/core/src/createNavigatorFactory.tsx | 5 +- packages/core/src/getActionFromState.tsx | 13 ++- .../core/src/getFocusedRouteNameFromRoute.tsx | 1 + packages/core/src/getPathFromState.tsx | 3 +- packages/core/src/getStateFromPath.tsx | 7 +- packages/core/src/index.tsx | 41 +++---- packages/core/src/types.tsx | 8 +- packages/core/src/useChildListeners.tsx | 1 + packages/core/src/useCurrentRender.tsx | 3 +- packages/core/src/useDescriptors.tsx | 27 ++--- packages/core/src/useEventEmitter.tsx | 3 +- packages/core/src/useFocusEffect.tsx | 1 + packages/core/src/useFocusEvents.tsx | 5 +- .../useFocusedListenersChildrenAdapter.tsx | 3 +- packages/core/src/useIsFocused.tsx | 1 + packages/core/src/useKeyedChildListeners.tsx | 1 + packages/core/src/useNavigation.tsx | 1 + packages/core/src/useNavigationBuilder.tsx | 53 ++++----- packages/core/src/useNavigationCache.tsx | 6 +- .../core/src/useNavigationContainerRef.tsx | 1 + packages/core/src/useNavigationHelpers.tsx | 5 +- packages/core/src/useNavigationState.tsx | 5 +- packages/core/src/useOnAction.tsx | 7 +- packages/core/src/useOnGetState.tsx | 5 +- packages/core/src/useOnPreventRemove.tsx | 7 +- packages/core/src/useOnRouteFocus.tsx | 3 +- packages/core/src/useOptionsGetters.tsx | 5 +- packages/core/src/useRegisterNavigator.tsx | 3 +- packages/core/src/useRoute.tsx | 3 +- packages/core/src/useRouteCache.tsx | 5 +- packages/devtools/src/useDevToolsBase.tsx | 4 +- packages/devtools/src/useFlipper.tsx | 5 +- .../src/useReduxDevToolsExtension.tsx | 3 +- packages/drawer/src/__tests__/index.test.tsx | 7 +- packages/drawer/src/index.tsx | 12 +- .../src/navigators/createDrawerNavigator.tsx | 15 +-- packages/drawer/src/types.tsx | 24 ++-- .../drawer/src/utils/useDrawerProgress.tsx | 1 + packages/drawer/src/utils/useDrawerStatus.tsx | 1 + packages/drawer/src/views/DrawerContent.tsx | 5 +- .../src/views/DrawerContentScrollView.tsx | 7 +- packages/drawer/src/views/DrawerItem.tsx | 20 ++-- packages/drawer/src/views/DrawerItemList.tsx | 5 +- .../drawer/src/views/DrawerToggleButton.tsx | 7 +- packages/drawer/src/views/DrawerView.tsx | 51 ++++----- .../drawer/src/views/GestureHandlerNative.tsx | 3 +- packages/drawer/src/views/ScreenFallback.tsx | 2 +- packages/drawer/src/views/legacy/Drawer.tsx | 19 ++-- packages/drawer/src/views/legacy/Overlay.tsx | 2 +- packages/drawer/src/views/modern/Drawer.tsx | 1 + packages/drawer/src/views/modern/Overlay.tsx | 2 +- packages/elements/src/Background.tsx | 2 +- packages/elements/src/Header/Header.tsx | 9 +- .../elements/src/Header/HeaderBackButton.tsx | 9 +- .../elements/src/Header/HeaderBackground.tsx | 6 +- packages/elements/src/Header/HeaderTitle.tsx | 6 +- .../src/Header/getDefaultHeaderHeight.tsx | 1 + .../elements/src/Header/useHeaderHeight.tsx | 1 + packages/elements/src/MissingIcon.tsx | 2 +- packages/elements/src/PlatformPressable.tsx | 2 +- packages/elements/src/ResourceSavingView.tsx | 2 +- .../elements/src/SafeAreaProviderCompat.tsx | 4 +- packages/elements/src/Screen.tsx | 20 ++-- packages/elements/src/index.tsx | 19 ++-- packages/elements/src/types.tsx | 6 +- .../src/LinkingTester.tsx | 13 ++- .../src/Logs.tsx | 5 +- .../src/RouteMap.tsx | 3 +- .../src/Sidebar.tsx | 3 +- .../src/index.tsx | 9 +- .../src/plugin.tsx | 3 +- .../src/useStore.tsx | 3 +- .../src/__tests__/index.test.tsx | 7 +- .../createMaterialBottomTabNavigator.tsx | 14 +-- packages/material-bottom-tabs/src/types.tsx | 10 +- .../src/views/MaterialBottomTabView.tsx | 16 +-- .../src/__tests__/index.test.tsx | 7 +- packages/material-top-tabs/src/index.tsx | 4 +- .../createMaterialTopTabNavigator.tsx | 17 +-- packages/material-top-tabs/src/types.tsx | 12 +- .../src/views/MaterialTopTabBar.tsx | 6 +- .../src/views/MaterialTopTabView.tsx | 12 +- .../native-stack/src/__tests__/index.test.tsx | 7 +- .../navigators/createNativeStackNavigator.tsx | 8 +- packages/native-stack/src/types.tsx | 6 +- .../native-stack/src/views/HeaderConfig.tsx | 9 +- .../src/views/NativeStackView.tsx | 19 ++-- packages/native/src/Link.tsx | 5 +- packages/native/src/LinkingContext.tsx | 3 +- packages/native/src/NavigationContainer.tsx | 17 +-- packages/native/src/ServerContainer.tsx | 3 +- .../__tests__/NavigationContainer.test.tsx | 11 +- .../src/__tests__/ServerContainer.test.tsx | 7 +- .../native/src/__tests__/useLinking.test.tsx | 5 +- packages/native/src/index.tsx | 22 ++-- packages/native/src/theming/ThemeContext.tsx | 3 +- packages/native/src/theming/ThemeProvider.tsx | 3 +- packages/native/src/theming/useTheme.tsx | 1 + packages/native/src/types.tsx | 4 +- packages/native/src/useBackButton.tsx | 4 +- packages/native/src/useDocumentTitle.tsx | 3 +- packages/native/src/useLinkBuilder.tsx | 5 +- packages/native/src/useLinkProps.tsx | 5 +- packages/native/src/useLinkTo.tsx | 7 +- packages/native/src/useLinking.native.tsx | 7 +- packages/native/src/useLinking.tsx | 9 +- packages/native/src/useScrollToTop.tsx | 2 +- packages/routers/src/BaseRouter.tsx | 1 + packages/routers/src/DrawerRouter.tsx | 17 +-- packages/routers/src/StackRouter.tsx | 7 +- packages/routers/src/TabRouter.tsx | 9 +- .../src/__tests__/DrawerRouter.test.tsx | 2 +- .../src/__tests__/StackRouter.test.tsx | 4 +- .../routers/src/__tests__/TabRouter.test.tsx | 6 +- packages/routers/src/index.tsx | 39 +++---- .../CardStyleInterpolators.tsx | 5 +- .../HeaderStyleInterpolators.tsx | 3 +- .../TransitionConfigs/TransitionPresets.tsx | 25 +++-- .../src/TransitionConfigs/TransitionSpecs.tsx | 1 + packages/stack/src/__tests__/index.test.tsx | 7 +- packages/stack/src/index.tsx | 15 ++- .../src/navigators/createStackNavigator.tsx | 21 ++-- packages/stack/src/types.tsx | 24 ++-- .../stack/src/utils/CardAnimationContext.tsx | 1 + .../src/utils/getDistanceForDirection.tsx | 2 +- .../stack/src/utils/getInvertedMultiplier.tsx | 1 + packages/stack/src/utils/useCardAnimation.tsx | 1 + .../stack/src/utils/useGestureHandlerRef.tsx | 1 + .../stack/src/utils/useKeyboardManager.tsx | 2 +- .../stack/src/views/GestureHandlerNative.tsx | 1 + packages/stack/src/views/Header/Header.tsx | 10 +- .../src/views/Header/HeaderContainer.tsx | 18 +-- .../stack/src/views/Header/HeaderSegment.tsx | 23 ++-- .../stack/src/views/ModalStatusBarManager.tsx | 3 +- packages/stack/src/views/Stack/Card.tsx | 42 +++---- .../stack/src/views/Stack/CardContainer.tsx | 19 ++-- packages/stack/src/views/Stack/CardSheet.tsx | 2 +- packages/stack/src/views/Stack/CardStack.tsx | 42 +++---- packages/stack/src/views/Stack/StackView.tsx | 32 +++--- yarn.lock | 5 + 208 files changed, 1058 insertions(+), 935 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index 690f90c8..2aa0b94f 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -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" } } diff --git a/example/App.tsx b/example/App.tsx index 2d0e0f04..3c0f4a69 100644 --- a/example/App.tsx +++ b/example/App.tsx @@ -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'; diff --git a/example/e2e/__integration_tests__/server.test.tsx b/example/e2e/__integration_tests__/server.test.tsx index da210ab6..d6fb5b27 100644 --- a/example/e2e/__integration_tests__/server.test.tsx +++ b/example/e2e/__integration_tests__/server.test.tsx @@ -1,5 +1,5 @@ -import fetch from 'node-fetch'; import cheerio from 'cheerio'; +import fetch from 'node-fetch'; const server = 'http://localhost:3275'; diff --git a/example/e2e/config/setup-playwright.tsx b/example/e2e/config/setup-playwright.tsx index 0165b23e..f2bbf747 100644 --- a/example/e2e/config/setup-playwright.tsx +++ b/example/e2e/config/setup-playwright.tsx @@ -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; diff --git a/example/server/index.tsx b/example/server/index.tsx index 321a9164..b10eee82 100644 --- a/example/server/index.tsx +++ b/example/server/index.tsx @@ -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); diff --git a/example/src/Screens/AuthFlow.tsx b/example/src/Screens/AuthFlow.tsx index 45d14533..acd919f2 100644 --- a/example/src/Screens/AuthFlow.tsx +++ b/example/src/Screens/AuthFlow.tsx @@ -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; diff --git a/example/src/Screens/BottomTabs.tsx b/example/src/Screens/BottomTabs.tsx index 9e999591..1a87be29 100644 --- a/example/src/Screens/BottomTabs.tsx +++ b/example/src/Screens/BottomTabs.tsx @@ -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) => ({ diff --git a/example/src/Screens/DynamicTabs.tsx b/example/src/Screens/DynamicTabs.tsx index d9813715..df1c6a87 100644 --- a/example/src/Screens/DynamicTabs.tsx +++ b/example/src/Screens/DynamicTabs.tsx @@ -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; diff --git a/example/src/Screens/LinkComponent.tsx b/example/src/Screens/LinkComponent.tsx index 2532d34a..c04d3cf0 100644 --- a/example/src/Screens/LinkComponent.tsx +++ b/example/src/Screens/LinkComponent.tsx @@ -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 }; diff --git a/example/src/Screens/MasterDetail.tsx b/example/src/Screens/MasterDetail.tsx index 5d8040cb..e21721fa 100644 --- a/example/src/Screens/MasterDetail.tsx +++ b/example/src/Screens/MasterDetail.tsx @@ -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 = { diff --git a/example/src/Screens/MaterialBottomTabs.tsx b/example/src/Screens/MaterialBottomTabs.tsx index ff073a67..e55b41d7 100644 --- a/example/src/Screens/MaterialBottomTabs.tsx +++ b/example/src/Screens/MaterialBottomTabs.tsx @@ -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 = { diff --git a/example/src/Screens/MaterialTopTabs.tsx b/example/src/Screens/MaterialTopTabs.tsx index 9e7343a4..49e9deb2 100644 --- a/example/src/Screens/MaterialTopTabs.tsx +++ b/example/src/Screens/MaterialTopTabs.tsx @@ -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; diff --git a/example/src/Screens/MixedHeaderMode.tsx b/example/src/Screens/MixedHeaderMode.tsx index fce64a62..ff522f15 100644 --- a/example/src/Screens/MixedHeaderMode.tsx +++ b/example/src/Screens/MixedHeaderMode.tsx @@ -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 = { diff --git a/example/src/Screens/MixedStack.tsx b/example/src/Screens/MixedStack.tsx index 6de5e386..349c9112 100644 --- a/example/src/Screens/MixedStack.tsx +++ b/example/src/Screens/MixedStack.tsx @@ -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 }; diff --git a/example/src/Screens/ModalStack.tsx b/example/src/Screens/ModalStack.tsx index 87a4c6f9..7f1eba19 100644 --- a/example/src/Screens/ModalStack.tsx +++ b/example/src/Screens/ModalStack.tsx @@ -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 }; diff --git a/example/src/Screens/NativeStack.tsx b/example/src/Screens/NativeStack.tsx index c85ff898..2786f629 100644 --- a/example/src/Screens/NativeStack.tsx +++ b/example/src/Screens/NativeStack.tsx @@ -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 = { diff --git a/example/src/Screens/NativeStackHeaderCustomization.tsx b/example/src/Screens/NativeStackHeaderCustomization.tsx index ecffeeb7..522628dc 100644 --- a/example/src/Screens/NativeStackHeaderCustomization.tsx +++ b/example/src/Screens/NativeStackHeaderCustomization.tsx @@ -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 = { diff --git a/example/src/Screens/NotFound.tsx b/example/src/Screens/NotFound.tsx index 144c40d1..df0090ed 100644 --- a/example/src/Screens/NotFound.tsx +++ b/example/src/Screens/NotFound.tsx @@ -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, diff --git a/example/src/Screens/PreventRemove.tsx b/example/src/Screens/PreventRemove.tsx index c14a8660..19a07488 100644 --- a/example/src/Screens/PreventRemove.tsx +++ b/example/src/Screens/PreventRemove.tsx @@ -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 = { diff --git a/example/src/Screens/SimpleStack.tsx b/example/src/Screens/SimpleStack.tsx index 841ae6bb..d0f98122 100644 --- a/example/src/Screens/SimpleStack.tsx +++ b/example/src/Screens/SimpleStack.tsx @@ -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 = { diff --git a/example/src/Screens/StackHeaderCustomization.tsx b/example/src/Screens/StackHeaderCustomization.tsx index 88b6d909..a0eb2605 100644 --- a/example/src/Screens/StackHeaderCustomization.tsx +++ b/example/src/Screens/StackHeaderCustomization.tsx @@ -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 }; diff --git a/example/src/Screens/StackTransparent.tsx b/example/src/Screens/StackTransparent.tsx index e4cec186..427057b1 100644 --- a/example/src/Screens/StackTransparent.tsx +++ b/example/src/Screens/StackTransparent.tsx @@ -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'; diff --git a/example/src/Shared/Albums.tsx b/example/src/Shared/Albums.tsx index 65f10ad2..0a857c74 100644 --- a/example/src/Shared/Albums.tsx +++ b/example/src/Shared/Albums.tsx @@ -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'), diff --git a/example/src/Shared/Article.tsx b/example/src/Shared/Article.tsx index bb9af6c5..e368b15e 100644 --- a/example/src/Shared/Article.tsx +++ b/example/src/Shared/Article.tsx @@ -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 & { date?: string; diff --git a/example/src/Shared/Chat.tsx b/example/src/Shared/Chat.tsx index 81153745..05972bcc 100644 --- a/example/src/Shared/Chat.tsx +++ b/example/src/Shared/Chat.tsx @@ -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', diff --git a/example/src/Shared/Contacts.tsx b/example/src/Shared/Contacts.tsx index 238a5983..dcb01cdb 100644 --- a/example/src/Shared/Contacts.tsx +++ b/example/src/Shared/Contacts.tsx @@ -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 }; diff --git a/example/src/Shared/NewsFeed.tsx b/example/src/Shared/NewsFeed.tsx index 27b331d2..d536949a 100644 --- a/example/src/Shared/NewsFeed.tsx +++ b/example/src/Shared/NewsFeed.tsx @@ -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 & { date?: number; diff --git a/example/src/index.tsx b/example/src/index.tsx index f2af4cd3..a7bddd3b 100644 --- a/example/src/index.tsx +++ b/example/src/index.tsx @@ -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; - }) => ( + }: CompositeScreenProps< + DrawerScreenProps, + StackScreenProps + >) => ( diff --git a/package.json b/package.json index a6dc0d4d..9413c9c4 100644 --- a/package.json +++ b/package.json @@ -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", diff --git a/packages/bottom-tabs/src/__tests__/index.test.tsx b/packages/bottom-tabs/src/__tests__/index.test.tsx index aa667193..203a42ac 100644 --- a/packages/bottom-tabs/src/__tests__/index.test.tsx +++ b/packages/bottom-tabs/src/__tests__/index.test.tsx @@ -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) => ( diff --git a/packages/bottom-tabs/src/index.tsx b/packages/bottom-tabs/src/index.tsx index d2db8806..ca9d9b7e 100644 --- a/packages/bottom-tabs/src/index.tsx +++ b/packages/bottom-tabs/src/index.tsx @@ -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'; diff --git a/packages/bottom-tabs/src/navigators/createBottomTabNavigator.tsx b/packages/bottom-tabs/src/navigators/createBottomTabNavigator.tsx index 89e04355..afa9763d 100644 --- a/packages/bottom-tabs/src/navigators/createBottomTabNavigator.tsx +++ b/packages/bottom-tabs/src/navigators/createBottomTabNavigator.tsx @@ -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, diff --git a/packages/bottom-tabs/src/types.tsx b/packages/bottom-tabs/src/types.tsx index fa61876c..7bf7eea8 100644 --- a/packages/bottom-tabs/src/types.tsx +++ b/packages/bottom-tabs/src/types.tsx @@ -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 }; diff --git a/packages/bottom-tabs/src/utils/useBottomTabBarHeight.tsx b/packages/bottom-tabs/src/utils/useBottomTabBarHeight.tsx index 07a2b188..969a633b 100644 --- a/packages/bottom-tabs/src/utils/useBottomTabBarHeight.tsx +++ b/packages/bottom-tabs/src/utils/useBottomTabBarHeight.tsx @@ -1,4 +1,5 @@ import * as React from 'react'; + import BottomTabBarHeightContext from './BottomTabBarHeightContext'; export default function useFloatingBottomTabBarHeight() { diff --git a/packages/bottom-tabs/src/utils/useIsKeyboardShown.tsx b/packages/bottom-tabs/src/utils/useIsKeyboardShown.tsx index 85cbd71a..2b3f356d 100644 --- a/packages/bottom-tabs/src/utils/useIsKeyboardShown.tsx +++ b/packages/bottom-tabs/src/utils/useIsKeyboardShown.tsx @@ -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); diff --git a/packages/bottom-tabs/src/views/Badge.tsx b/packages/bottom-tabs/src/views/Badge.tsx index 145a59d2..de01953b 100644 --- a/packages/bottom-tabs/src/views/Badge.tsx +++ b/packages/bottom-tabs/src/views/Badge.tsx @@ -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 = { /** diff --git a/packages/bottom-tabs/src/views/BottomTabBar.tsx b/packages/bottom-tabs/src/views/BottomTabBar.tsx index 4dec22d2..56de0013 100644 --- a/packages/bottom-tabs/src/views/BottomTabBar.tsx +++ b/packages/bottom-tabs/src/views/BottomTabBar.tsx @@ -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>; diff --git a/packages/bottom-tabs/src/views/BottomTabItem.tsx b/packages/bottom-tabs/src/views/BottomTabItem.tsx index d67e7b76..b4be5763 100644 --- a/packages/bottom-tabs/src/views/BottomTabItem.tsx +++ b/packages/bottom-tabs/src/views/BottomTabItem.tsx @@ -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 = { /** diff --git a/packages/bottom-tabs/src/views/BottomTabView.tsx b/packages/bottom-tabs/src/views/BottomTabView.tsx index 78340c41..6de80d8e 100644 --- a/packages/bottom-tabs/src/views/BottomTabView.tsx +++ b/packages/bottom-tabs/src/views/BottomTabView.tsx @@ -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; diff --git a/packages/bottom-tabs/src/views/ScreenFallback.tsx b/packages/bottom-tabs/src/views/ScreenFallback.tsx index e2def44a..36789cf4 100644 --- a/packages/bottom-tabs/src/views/ScreenFallback.tsx +++ b/packages/bottom-tabs/src/views/ScreenFallback.tsx @@ -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; diff --git a/packages/bottom-tabs/src/views/TabBarIcon.tsx b/packages/bottom-tabs/src/views/TabBarIcon.tsx index 06088d79..de3c07b8 100644 --- a/packages/bottom-tabs/src/views/TabBarIcon.tsx +++ b/packages/bottom-tabs/src/views/TabBarIcon.tsx @@ -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, diff --git a/packages/core/src/BaseNavigationContainer.tsx b/packages/core/src/BaseNavigationContainer.tsx index b0c19728..a6eba99c 100644 --- a/packages/core/src/BaseNavigationContainer.tsx +++ b/packages/core/src/BaseNavigationContainer.tsx @@ -1,35 +1,36 @@ -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 | undefined; diff --git a/packages/core/src/Group.tsx b/packages/core/src/Group.tsx index 2b6a8d06..352ba313 100644 --- a/packages/core/src/Group.tsx +++ b/packages/core/src/Group.tsx @@ -1,4 +1,5 @@ import type { ParamListBase } from '@react-navigation/routers'; + import type { RouteGroupConfig } from './types'; /** diff --git a/packages/core/src/NavigationBuilderContext.tsx b/packages/core/src/NavigationBuilderContext.tsx index 78cc1f8b..8a7131a5 100644 --- a/packages/core/src/NavigationBuilderContext.tsx +++ b/packages/core/src/NavigationBuilderContext.tsx @@ -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 = { diff --git a/packages/core/src/NavigationContainerRefContext.tsx b/packages/core/src/NavigationContainerRefContext.tsx index a5f27f5e..b59c918c 100644 --- a/packages/core/src/NavigationContainerRefContext.tsx +++ b/packages/core/src/NavigationContainerRefContext.tsx @@ -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'; /** diff --git a/packages/core/src/NavigationContext.tsx b/packages/core/src/NavigationContext.tsx index 6726e59c..a6c92196 100644 --- a/packages/core/src/NavigationContext.tsx +++ b/packages/core/src/NavigationContext.tsx @@ -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'; /** diff --git a/packages/core/src/NavigationHelpersContext.tsx b/packages/core/src/NavigationHelpersContext.tsx index 33e828ef..0ea82afb 100644 --- a/packages/core/src/NavigationHelpersContext.tsx +++ b/packages/core/src/NavigationHelpersContext.tsx @@ -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'; /** diff --git a/packages/core/src/NavigationRouteContext.tsx b/packages/core/src/NavigationRouteContext.tsx index cd7ee623..e7ecfe96 100644 --- a/packages/core/src/NavigationRouteContext.tsx +++ b/packages/core/src/NavigationRouteContext.tsx @@ -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. diff --git a/packages/core/src/NavigationStateContext.tsx b/packages/core/src/NavigationStateContext.tsx index d4191f45..437de2e7 100644 --- a/packages/core/src/NavigationStateContext.tsx +++ b/packages/core/src/NavigationStateContext.tsx @@ -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."; diff --git a/packages/core/src/SceneView.tsx b/packages/core/src/SceneView.tsx index 22f2d1c9..4a4f1536 100644 --- a/packages/core/src/SceneView.tsx +++ b/packages/core/src/SceneView.tsx @@ -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 = { screen: RouteConfigComponent & { name: string }; diff --git a/packages/core/src/Screen.tsx b/packages/core/src/Screen.tsx index edb0e1be..4ca43062 100644 --- a/packages/core/src/Screen.tsx +++ b/packages/core/src/Screen.tsx @@ -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. diff --git a/packages/core/src/UnhandledActionContext.tsx b/packages/core/src/UnhandledActionContext.tsx index 5cae8b54..b5682aea 100644 --- a/packages/core/src/UnhandledActionContext.tsx +++ b/packages/core/src/UnhandledActionContext.tsx @@ -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 diff --git a/packages/core/src/__tests__/BaseNavigationContainer.test.tsx b/packages/core/src/__tests__/BaseNavigationContainer.test.tsx index 76c8e240..d24f6a7f 100644 --- a/packages/core/src/__tests__/BaseNavigationContainer.test.tsx +++ b/packages/core/src/__tests__/BaseNavigationContainer.test.tsx @@ -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); diff --git a/packages/core/src/__tests__/StaticContainer.test.tsx b/packages/core/src/__tests__/StaticContainer.test.tsx index 07d47c29..80741e46 100644 --- a/packages/core/src/__tests__/StaticContainer.test.tsx +++ b/packages/core/src/__tests__/StaticContainer.test.tsx @@ -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", () => { diff --git a/packages/core/src/__tests__/__fixtures__/MockRouter.tsx b/packages/core/src/__tests__/__fixtures__/MockRouter.tsx index e1894aeb..0319c29d 100644 --- a/packages/core/src/__tests__/__fixtures__/MockRouter.tsx +++ b/packages/core/src/__tests__/__fixtures__/MockRouter.tsx @@ -1,10 +1,10 @@ import { BaseRouter, - Router, CommonNavigationAction, + DefaultRouterOptions, NavigationState, Route, - DefaultRouterOptions, + Router, } from '@react-navigation/routers'; export type MockActions = CommonNavigationAction | { type: 'NOOP' | 'UPDATE' }; diff --git a/packages/core/src/__tests__/getPathFromState.test.tsx b/packages/core/src/__tests__/getPathFromState.test.tsx index 69fd160e..299691f3 100644 --- a/packages/core/src/__tests__/getPathFromState.test.tsx +++ b/packages/core/src/__tests__/getPathFromState.test.tsx @@ -1,4 +1,5 @@ import type { NavigationState, PartialState } from '@react-navigation/routers'; + import getPathFromState from '../getPathFromState'; import getStateFromPath from '../getStateFromPath'; diff --git a/packages/core/src/__tests__/getStateFromPath.test.tsx b/packages/core/src/__tests__/getStateFromPath.test.tsx index 01cd8312..45db661b 100644 --- a/packages/core/src/__tests__/getStateFromPath.test.tsx +++ b/packages/core/src/__tests__/getStateFromPath.test.tsx @@ -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 = (state: T, path: string): T => produce(state, (draftState) => { diff --git a/packages/core/src/__tests__/index.test.tsx b/packages/core/src/__tests__/index.test.tsx index 75ad437c..fdd6efbb 100644 --- a/packages/core/src/__tests__/index.test.tsx +++ b/packages/core/src/__tests__/index.test.tsx @@ -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)); diff --git a/packages/core/src/__tests__/useDescriptors.test.tsx b/packages/core/src/__tests__/useDescriptors.test.tsx index 113aa2d0..d0300741 100644 --- a/packages/core/src/__tests__/useDescriptors.test.tsx +++ b/packages/core/src/__tests__/useDescriptors.test.tsx @@ -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, diff --git a/packages/core/src/__tests__/useEventEmitter.test.tsx b/packages/core/src/__tests__/useEventEmitter.test.tsx index 3c40aca4..45b14ac3 100644 --- a/packages/core/src/__tests__/useEventEmitter.test.tsx +++ b/packages/core/src/__tests__/useEventEmitter.test.tsx @@ -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', () => { diff --git a/packages/core/src/__tests__/useFocusEffect.test.tsx b/packages/core/src/__tests__/useFocusEffect.test.tsx index e05797bf..1412f53c 100644 --- a/packages/core/src/__tests__/useFocusEffect.test.tsx +++ b/packages/core/src/__tests__/useFocusEffect.test.tsx @@ -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', () => { diff --git a/packages/core/src/__tests__/useIsFocused.test.tsx b/packages/core/src/__tests__/useIsFocused.test.tsx index fa94732b..f33c87be 100644 --- a/packages/core/src/__tests__/useIsFocused.test.tsx +++ b/packages/core/src/__tests__/useIsFocused.test.tsx @@ -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', () => { diff --git a/packages/core/src/__tests__/useNavigation.test.tsx b/packages/core/src/__tests__/useNavigation.test.tsx index 8da863ea..e481e7d4 100644 --- a/packages/core/src/__tests__/useNavigation.test.tsx +++ b/packages/core/src/__tests__/useNavigation.test.tsx @@ -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', () => { diff --git a/packages/core/src/__tests__/useNavigationCache.test.tsx b/packages/core/src/__tests__/useNavigationCache.test.tsx index ee873de7..0149026d 100644 --- a/packages/core/src/__tests__/useNavigationCache.test.tsx +++ b/packages/core/src/__tests__/useNavigationCache.test.tsx @@ -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)); diff --git a/packages/core/src/__tests__/useNavigationState.test.tsx b/packages/core/src/__tests__/useNavigationState.test.tsx index 742cdfdd..1ff4f108 100644 --- a/packages/core/src/__tests__/useNavigationState.test.tsx +++ b/packages/core/src/__tests__/useNavigationState.test.tsx @@ -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', () => { diff --git a/packages/core/src/__tests__/useOnAction.test.tsx b/packages/core/src/__tests__/useOnAction.test.tsx index a12e1c72..b1f0b2d7 100644 --- a/packages/core/src/__tests__/useOnAction.test.tsx +++ b/packages/core/src/__tests__/useOnAction.test.tsx @@ -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, diff --git a/packages/core/src/__tests__/useRoute.test.tsx b/packages/core/src/__tests__/useRoute.test.tsx index 91aa021d..6440c23a 100644 --- a/packages/core/src/__tests__/useRoute.test.tsx +++ b/packages/core/src/__tests__/useRoute.test.tsx @@ -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); diff --git a/packages/core/src/createNavigationContainerRef.tsx b/packages/core/src/createNavigationContainerRef.tsx index 0630e40d..1abc4e62 100644 --- a/packages/core/src/createNavigationContainerRef.tsx +++ b/packages/core/src/createNavigationContainerRef.tsx @@ -1,4 +1,5 @@ import { CommonActions } from '@react-navigation/routers'; + import type { NavigationContainerRefWithCurrent } from './types'; export const NOT_INITIALIZED_ERROR = diff --git a/packages/core/src/createNavigatorFactory.tsx b/packages/core/src/createNavigatorFactory.tsx index d64b9958..6dbedf10 100644 --- a/packages/core/src/createNavigatorFactory.tsx +++ b/packages/core/src/createNavigatorFactory.tsx @@ -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. diff --git a/packages/core/src/getActionFromState.tsx b/packages/core/src/getActionFromState.tsx index 5b732f40..df79c83a 100644 --- a/packages/core/src/getActionFromState.tsx +++ b/packages/core/src/getActionFromState.tsx @@ -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; diff --git a/packages/core/src/getFocusedRouteNameFromRoute.tsx b/packages/core/src/getFocusedRouteNameFromRoute.tsx index 9038fc2e..8db015e0 100644 --- a/packages/core/src/getFocusedRouteNameFromRoute.tsx +++ b/packages/core/src/getFocusedRouteNameFromRoute.tsx @@ -1,4 +1,5 @@ import type { Route } from '@react-navigation/routers'; + import { CHILD_STATE } from './useRouteCache'; export default function getFocusedRouteNameFromRoute( diff --git a/packages/core/src/getPathFromState.tsx b/packages/core/src/getPathFromState.tsx index b3e5295d..c2d26af4 100644 --- a/packages/core/src/getPathFromState.tsx +++ b/packages/core/src/getPathFromState.tsx @@ -1,9 +1,10 @@ -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'; diff --git a/packages/core/src/getStateFromPath.tsx b/packages/core/src/getStateFromPath.tsx index 6661b9dc..6fe5342b 100644 --- a/packages/core/src/getStateFromPath.tsx +++ b/packages/core/src/getStateFromPath.tsx @@ -1,10 +1,11 @@ -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'; diff --git a/packages/core/src/index.tsx b/packages/core/src/index.tsx index 271eb22b..8141efdb 100644 --- a/packages/core/src/index.tsx +++ b/packages/core/src/index.tsx @@ -1,31 +1,22 @@ -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 * from '@react-navigation/routers'; diff --git a/packages/core/src/types.tsx b/packages/core/src/types.tsx index 4ddb73e5..0838001a 100644 --- a/packages/core/src/types.tsx +++ b/packages/core/src/types.tsx @@ -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 diff --git a/packages/core/src/useChildListeners.tsx b/packages/core/src/useChildListeners.tsx index 506c3f92..2169d0b5 100644 --- a/packages/core/src/useChildListeners.tsx +++ b/packages/core/src/useChildListeners.tsx @@ -1,4 +1,5 @@ import * as React from 'react'; + import type { ListenerMap } from './NavigationBuilderContext'; /** diff --git a/packages/core/src/useCurrentRender.tsx b/packages/core/src/useCurrentRender.tsx index a5bbe00b..9271bce4 100644 --- a/packages/core/src/useCurrentRender.tsx +++ b/packages/core/src/useCurrentRender.tsx @@ -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, diff --git a/packages/core/src/useDescriptors.tsx b/packages/core/src/useDescriptors.tsx index a71d2472..4a0e66a2 100644 --- a/packages/core/src/useDescriptors.tsx +++ b/packages/core/src/useDescriptors.tsx @@ -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, diff --git a/packages/core/src/useEventEmitter.tsx b/packages/core/src/useEventEmitter.tsx index 1afb9012..a4ecd249 100644 --- a/packages/core/src/useEventEmitter.tsx +++ b/packages/core/src/useEventEmitter.tsx @@ -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 diff --git a/packages/core/src/useFocusEffect.tsx b/packages/core/src/useFocusEffect.tsx index f34112a4..7677eec6 100644 --- a/packages/core/src/useFocusEffect.tsx +++ b/packages/core/src/useFocusEffect.tsx @@ -1,4 +1,5 @@ import * as React from 'react'; + import useNavigation from './useNavigation'; type EffectCallback = () => undefined | void | (() => void); diff --git a/packages/core/src/useFocusEvents.tsx b/packages/core/src/useFocusEvents.tsx index 91f9a1fb..39ea15e1 100644 --- a/packages/core/src/useFocusEvents.tsx +++ b/packages/core/src/useFocusEvents.tsx @@ -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: State; diff --git a/packages/core/src/useFocusedListenersChildrenAdapter.tsx b/packages/core/src/useFocusedListenersChildrenAdapter.tsx index d76bd1c2..ebd474ec 100644 --- a/packages/core/src/useFocusedListenersChildrenAdapter.tsx +++ b/packages/core/src/useFocusedListenersChildrenAdapter.tsx @@ -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, diff --git a/packages/core/src/useIsFocused.tsx b/packages/core/src/useIsFocused.tsx index a789fb75..d3135792 100644 --- a/packages/core/src/useIsFocused.tsx +++ b/packages/core/src/useIsFocused.tsx @@ -1,5 +1,6 @@ import * as React from 'react'; import { useState } from 'react'; + import useNavigation from './useNavigation'; /** diff --git a/packages/core/src/useKeyedChildListeners.tsx b/packages/core/src/useKeyedChildListeners.tsx index b37ab96a..8ebf8a61 100644 --- a/packages/core/src/useKeyedChildListeners.tsx +++ b/packages/core/src/useKeyedChildListeners.tsx @@ -1,4 +1,5 @@ import * as React from 'react'; + import type { KeyedListenerMap } from './NavigationBuilderContext'; /** diff --git a/packages/core/src/useNavigation.tsx b/packages/core/src/useNavigation.tsx index cbdd3102..2254d3b9 100644 --- a/packages/core/src/useNavigation.tsx +++ b/packages/core/src/useNavigation.tsx @@ -1,4 +1,5 @@ import * as React from 'react'; + import NavigationContainerRefContext from './NavigationContainerRefContext'; import NavigationContext from './NavigationContext'; import type { NavigationProp } from './types'; diff --git a/packages/core/src/useNavigationBuilder.tsx b/packages/core/src/useNavigationBuilder.tsx index 715c7c2d..4a51e7fe 100644 --- a/packages/core/src/useNavigationBuilder.tsx +++ b/packages/core/src/useNavigationBuilder.tsx @@ -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 diff --git a/packages/core/src/useNavigationCache.tsx b/packages/core/src/useNavigationCache.tsx index f97c91b4..a738a9f7 100644 --- a/packages/core/src/useNavigationCache.tsx +++ b/packages/core/src/useNavigationCache.tsx @@ -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, diff --git a/packages/core/src/useNavigationContainerRef.tsx b/packages/core/src/useNavigationContainerRef.tsx index b541930f..14daec08 100644 --- a/packages/core/src/useNavigationContainerRef.tsx +++ b/packages/core/src/useNavigationContainerRef.tsx @@ -1,4 +1,5 @@ import * as React from 'react'; + import createNavigationContainerRef from './createNavigationContainerRef'; import type { NavigationContainerRefWithCurrent } from './types'; diff --git a/packages/core/src/useNavigationHelpers.tsx b/packages/core/src/useNavigationHelpers.tsx index e4ca57d0..09b89c1c 100644 --- a/packages/core/src/useNavigationHelpers.tsx +++ b/packages/core/src/useNavigationHelpers.tsx @@ -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 diff --git a/packages/core/src/useNavigationState.tsx b/packages/core/src/useNavigationState.tsx index 4df9fdd9..21716643 100644 --- a/packages/core/src/useNavigationState.tsx +++ b/packages/core/src/useNavigationState.tsx @@ -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 = ( state: NavigationState diff --git a/packages/core/src/useOnAction.tsx b/packages/core/src/useOnAction.tsx index d57de81f..244024db 100644 --- a/packages/core/src/useOnAction.tsx +++ b/packages/core/src/useOnAction.tsx @@ -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; diff --git a/packages/core/src/useOnGetState.tsx b/packages/core/src/useOnGetState.tsx index c3301813..ed620ab8 100644 --- a/packages/core/src/useOnGetState.tsx +++ b/packages/core/src/useOnGetState.tsx @@ -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; diff --git a/packages/core/src/useOnPreventRemove.tsx b/packages/core/src/useOnPreventRemove.tsx index df33a455..268ea314 100644 --- a/packages/core/src/useOnPreventRemove.tsx +++ b/packages/core/src/useOnPreventRemove.tsx @@ -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; diff --git a/packages/core/src/useOnRouteFocus.tsx b/packages/core/src/useOnRouteFocus.tsx index e06f49d0..baa554af 100644 --- a/packages/core/src/useOnRouteFocus.tsx +++ b/packages/core/src/useOnRouteFocus.tsx @@ -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 = { diff --git a/packages/core/src/useOptionsGetters.tsx b/packages/core/src/useOptionsGetters.tsx index 848c1329..ffecfb3b 100644 --- a/packages/core/src/useOptionsGetters.tsx +++ b/packages/core/src/useOptionsGetters.tsx @@ -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 = { diff --git a/packages/core/src/useRegisterNavigator.tsx b/packages/core/src/useRegisterNavigator.tsx index 52dea35a..c2ba1db2 100644 --- a/packages/core/src/useRegisterNavigator.tsx +++ b/packages/core/src/useRegisterNavigator.tsx @@ -1,5 +1,6 @@ -import * as React from 'react'; import { nanoid } from 'nanoid/non-secure'; +import * as React from 'react'; + import { SingleNavigatorContext } from './EnsureSingleNavigator'; /** diff --git a/packages/core/src/useRoute.tsx b/packages/core/src/useRoute.tsx index 6115cd3a..48e3bcd0 100644 --- a/packages/core/src/useRoute.tsx +++ b/packages/core/src/useRoute.tsx @@ -1,5 +1,6 @@ -import * as React from 'react'; import type { ParamListBase } from '@react-navigation/routers'; +import * as React from 'react'; + import NavigationRouteContext from './NavigationRouteContext'; import type { RouteProp } from './types'; diff --git a/packages/core/src/useRouteCache.tsx b/packages/core/src/useRouteCache.tsx index d71a3fb5..2815ccb6 100644 --- a/packages/core/src/useRouteCache.tsx +++ b/packages/core/src/useRouteCache.tsx @@ -1,9 +1,10 @@ -import * as React from 'react'; import type { - ParamListBase, NavigationState, + ParamListBase, Route, } from '@react-navigation/routers'; +import * as React from 'react'; + import type { RouteProp } from './types'; type RouteCache = Map, RouteProp>; diff --git a/packages/devtools/src/useDevToolsBase.tsx b/packages/devtools/src/useDevToolsBase.tsx index 04f141bb..4e583d03 100644 --- a/packages/devtools/src/useDevToolsBase.tsx +++ b/packages/devtools/src/useDevToolsBase.tsx @@ -1,10 +1,10 @@ -import * as React from 'react'; import type { + NavigationAction, NavigationContainerRef, NavigationState, - NavigationAction, } from '@react-navigation/core'; import deepEqual from 'deep-equal'; +import * as React from 'react'; export default function useDevToolsBase( ref: React.RefObject>, diff --git a/packages/devtools/src/useFlipper.tsx b/packages/devtools/src/useFlipper.tsx index 77983bab..037e09fb 100644 --- a/packages/devtools/src/useFlipper.tsx +++ b/packages/devtools/src/useFlipper.tsx @@ -1,7 +1,8 @@ -import * as React from 'react'; import type { NavigationContainerRef } from '@react-navigation/core'; -import type { Flipper } from 'react-native-flipper'; import { nanoid } from 'nanoid/non-secure'; +import * as React from 'react'; +import type { Flipper } from 'react-native-flipper'; + import useDevToolsBase from './useDevToolsBase'; let FlipperModule: typeof import('react-native-flipper') | undefined; diff --git a/packages/devtools/src/useReduxDevToolsExtension.tsx b/packages/devtools/src/useReduxDevToolsExtension.tsx index 7cfc9488..13472b6d 100644 --- a/packages/devtools/src/useReduxDevToolsExtension.tsx +++ b/packages/devtools/src/useReduxDevToolsExtension.tsx @@ -1,5 +1,6 @@ -import * as React from 'react'; import type { NavigationContainerRef } from '@react-navigation/core'; +import * as React from 'react'; + import useDevToolsBase from './useDevToolsBase'; type DevToolsConnection = { diff --git a/packages/drawer/src/__tests__/index.test.tsx b/packages/drawer/src/__tests__/index.test.tsx index cae3da01..e0cf9aad 100644 --- a/packages/drawer/src/__tests__/index.test.tsx +++ b/packages/drawer/src/__tests__/index.test.tsx @@ -1,7 +1,8 @@ -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 { fireEvent, render } from '@testing-library/react-native'; +import * as React from 'react'; +import { Button, Text, View } from 'react-native'; + import { createDrawerNavigator, DrawerScreenProps } from '../index'; it('renders a drawer navigator with screens', async () => { diff --git a/packages/drawer/src/index.tsx b/packages/drawer/src/index.tsx index 56718d26..b7d36e2c 100644 --- a/packages/drawer/src/index.tsx +++ b/packages/drawer/src/index.tsx @@ -6,30 +6,28 @@ export { default as createDrawerNavigator } from './navigators/createDrawerNavig /** * Views */ -export { default as DrawerView } from './views/DrawerView'; -export { default as DrawerItem } from './views/DrawerItem'; -export { default as DrawerItemList } from './views/DrawerItemList'; export { default as DrawerContent } from './views/DrawerContent'; export { default as DrawerContentScrollView } from './views/DrawerContentScrollView'; +export { default as DrawerItem } from './views/DrawerItem'; +export { default as DrawerItemList } from './views/DrawerItemList'; export { default as DrawerToggleButton } from './views/DrawerToggleButton'; +export { default as DrawerView } from './views/DrawerView'; /** * Utilities */ export { default as DrawerGestureContext } from './utils/DrawerGestureContext'; - export { default as DrawerProgressContext } from './utils/DrawerProgressContext'; -export { default as useDrawerProgress } from './utils/useDrawerProgress'; - export { default as getDrawerStatusFromState } from './utils/getDrawerStatusFromState'; +export { default as useDrawerProgress } from './utils/useDrawerProgress'; export { default as useDrawerStatus } from './utils/useDrawerStatus'; /** * Types */ export type { + DrawerContentComponentProps, DrawerNavigationOptions, DrawerNavigationProp, DrawerScreenProps, - DrawerContentComponentProps, } from './types'; diff --git a/packages/drawer/src/navigators/createDrawerNavigator.tsx b/packages/drawer/src/navigators/createDrawerNavigator.tsx index 5f5d55ed..1aa82192 100644 --- a/packages/drawer/src/navigators/createDrawerNavigator.tsx +++ b/packages/drawer/src/navigators/createDrawerNavigator.tsx @@ -1,21 +1,22 @@ -import * as React from 'react'; import { createNavigatorFactory, - useNavigationBuilder, DefaultNavigatorOptions, - DrawerNavigationState, - DrawerRouterOptions, - DrawerRouter, DrawerActionHelpers, + DrawerNavigationState, + DrawerRouter, + DrawerRouterOptions, ParamListBase, + useNavigationBuilder, } from '@react-navigation/native'; +import * as React from 'react'; import warnOnce from 'warn-once'; -import DrawerView from '../views/DrawerView'; + import type { - DrawerNavigationOptions, DrawerNavigationConfig, DrawerNavigationEventMap, + DrawerNavigationOptions, } from '../types'; +import DrawerView from '../views/DrawerView'; type Props = DefaultNavigatorOptions< ParamListBase, diff --git a/packages/drawer/src/types.tsx b/packages/drawer/src/types.tsx index b848f27d..aa714e46 100644 --- a/packages/drawer/src/types.tsx +++ b/packages/drawer/src/types.tsx @@ -1,19 +1,19 @@ -import type { StyleProp, ViewStyle, TextStyle } from 'react-native'; +import type { HeaderOptions } from '@react-navigation/elements'; +import type { + Descriptor, + DrawerActionHelpers, + DrawerNavigationState, + NavigationHelpers, + NavigationProp, + ParamListBase, + Route, + RouteProp, +} from '@react-navigation/native'; +import type { StyleProp, TextStyle, ViewStyle } from 'react-native'; import type { PanGestureHandler, PanGestureHandlerProperties, } from 'react-native-gesture-handler'; -import type { - Route, - ParamListBase, - NavigationProp, - Descriptor, - NavigationHelpers, - DrawerNavigationState, - DrawerActionHelpers, - RouteProp, -} from '@react-navigation/native'; -import type { HeaderOptions } from '@react-navigation/elements'; export type Scene = { route: Route; diff --git a/packages/drawer/src/utils/useDrawerProgress.tsx b/packages/drawer/src/utils/useDrawerProgress.tsx index 28a364c3..84fe1a37 100644 --- a/packages/drawer/src/utils/useDrawerProgress.tsx +++ b/packages/drawer/src/utils/useDrawerProgress.tsx @@ -1,5 +1,6 @@ import * as React from 'react'; import type Animated from 'react-native-reanimated'; + import DrawerProgressContext from './DrawerProgressContext'; export default function useDrawerProgress(): diff --git a/packages/drawer/src/utils/useDrawerStatus.tsx b/packages/drawer/src/utils/useDrawerStatus.tsx index 112910c1..fa44c83f 100644 --- a/packages/drawer/src/utils/useDrawerStatus.tsx +++ b/packages/drawer/src/utils/useDrawerStatus.tsx @@ -1,4 +1,5 @@ import * as React from 'react'; + import DrawerStatusContext from './DrawerStatusContext'; /** diff --git a/packages/drawer/src/views/DrawerContent.tsx b/packages/drawer/src/views/DrawerContent.tsx index 6a0593dc..f77341d4 100644 --- a/packages/drawer/src/views/DrawerContent.tsx +++ b/packages/drawer/src/views/DrawerContent.tsx @@ -1,7 +1,8 @@ import * as React from 'react'; -import DrawerItemList from './DrawerItemList'; -import DrawerContentScrollView from './DrawerContentScrollView'; + import type { DrawerContentComponentProps } from '../types'; +import DrawerContentScrollView from './DrawerContentScrollView'; +import DrawerItemList from './DrawerItemList'; export default function DrawerContent({ descriptors, diff --git a/packages/drawer/src/views/DrawerContentScrollView.tsx b/packages/drawer/src/views/DrawerContentScrollView.tsx index a163527e..3fdc1693 100644 --- a/packages/drawer/src/views/DrawerContentScrollView.tsx +++ b/packages/drawer/src/views/DrawerContentScrollView.tsx @@ -1,11 +1,12 @@ import * as React from 'react'; import { - ScrollView, - StyleSheet, - ScrollViewProps, I18nManager, + ScrollView, + ScrollViewProps, + StyleSheet, } from 'react-native'; import { useSafeAreaInsets } from 'react-native-safe-area-context'; + import DrawerPositionContext from '../utils/DrawerPositionContext'; type Props = ScrollViewProps & { diff --git a/packages/drawer/src/views/DrawerItem.tsx b/packages/drawer/src/views/DrawerItem.tsx index 9984d959..5cab8ef5 100644 --- a/packages/drawer/src/views/DrawerItem.tsx +++ b/packages/drawer/src/views/DrawerItem.tsx @@ -1,16 +1,16 @@ -import * as React from 'react'; -import { - Text, - View, - StyleSheet, - StyleProp, - ViewStyle, - TextStyle, - Platform, -} from 'react-native'; import { PlatformPressable } from '@react-navigation/elements'; import { Link, useTheme } from '@react-navigation/native'; import Color from 'color'; +import * as React from 'react'; +import { + Platform, + StyleProp, + StyleSheet, + Text, + TextStyle, + View, + ViewStyle, +} from 'react-native'; type Props = { /** diff --git a/packages/drawer/src/views/DrawerItemList.tsx b/packages/drawer/src/views/DrawerItemList.tsx index 358aa00f..c22a0243 100644 --- a/packages/drawer/src/views/DrawerItemList.tsx +++ b/packages/drawer/src/views/DrawerItemList.tsx @@ -1,4 +1,3 @@ -import * as React from 'react'; import { CommonActions, DrawerActions, @@ -6,8 +5,10 @@ import { ParamListBase, useLinkBuilder, } from '@react-navigation/native'; +import * as React from 'react'; + +import type { DrawerDescriptorMap, DrawerNavigationHelpers } from '../types'; import DrawerItem from './DrawerItem'; -import type { DrawerNavigationHelpers, DrawerDescriptorMap } from '../types'; type Props = { state: DrawerNavigationState; diff --git a/packages/drawer/src/views/DrawerToggleButton.tsx b/packages/drawer/src/views/DrawerToggleButton.tsx index 23ef71d8..b6ad1649 100644 --- a/packages/drawer/src/views/DrawerToggleButton.tsx +++ b/packages/drawer/src/views/DrawerToggleButton.tsx @@ -1,11 +1,12 @@ -import * as React from 'react'; -import { Image, Platform, StyleSheet } from 'react-native'; import { PlatformPressable } from '@react-navigation/elements'; import { - useNavigation, DrawerActions, ParamListBase, + useNavigation, } from '@react-navigation/native'; +import * as React from 'react'; +import { Image, Platform, StyleSheet } from 'react-native'; + import type { DrawerNavigationProp } from '../types'; type Props = { diff --git a/packages/drawer/src/views/DrawerView.tsx b/packages/drawer/src/views/DrawerView.tsx index fbc02702..94e0caeb 100644 --- a/packages/drawer/src/views/DrawerView.tsx +++ b/packages/drawer/src/views/DrawerView.tsx @@ -1,41 +1,42 @@ +import { + getHeaderTitle, + Header, + SafeAreaProviderCompat, + Screen, +} from '@react-navigation/elements'; +import { + DrawerActions, + DrawerNavigationState, + ParamListBase, + useTheme, +} from '@react-navigation/native'; import * as React from 'react'; import { - View, - StyleSheet, + BackHandler, I18nManager, Platform, - BackHandler, + StyleSheet, + View, } from 'react-native'; -import { useSafeAreaFrame } from 'react-native-safe-area-context'; import Animated from 'react-native-reanimated'; -import { - DrawerNavigationState, - DrawerActions, - useTheme, - ParamListBase, -} from '@react-navigation/native'; -import { - Header, - Screen, - SafeAreaProviderCompat, - getHeaderTitle, -} from '@react-navigation/elements'; -import { MaybeScreenContainer, MaybeScreen } from './ScreenFallback'; -import { GestureHandlerRootView } from './GestureHandler'; -import DrawerToggleButton from './DrawerToggleButton'; -import DrawerContent from './DrawerContent'; -import DrawerStatusContext from '../utils/DrawerStatusContext'; -import DrawerPositionContext from '../utils/DrawerPositionContext'; -import getDrawerStatusFromState from '../utils/getDrawerStatusFromState'; +import { useSafeAreaFrame } from 'react-native-safe-area-context'; + import type { + DrawerContentComponentProps, DrawerDescriptorMap, + DrawerHeaderProps, DrawerNavigationConfig, DrawerNavigationHelpers, - DrawerContentComponentProps, - DrawerHeaderProps, DrawerNavigationProp, DrawerProps, } from '../types'; +import DrawerPositionContext from '../utils/DrawerPositionContext'; +import DrawerStatusContext from '../utils/DrawerStatusContext'; +import getDrawerStatusFromState from '../utils/getDrawerStatusFromState'; +import DrawerContent from './DrawerContent'; +import DrawerToggleButton from './DrawerToggleButton'; +import { GestureHandlerRootView } from './GestureHandler'; +import { MaybeScreen, MaybeScreenContainer } from './ScreenFallback'; type Props = DrawerNavigationConfig & { state: DrawerNavigationState; diff --git a/packages/drawer/src/views/GestureHandlerNative.tsx b/packages/drawer/src/views/GestureHandlerNative.tsx index 2739943f..dab93927 100644 --- a/packages/drawer/src/views/GestureHandlerNative.tsx +++ b/packages/drawer/src/views/GestureHandlerNative.tsx @@ -3,6 +3,7 @@ import { PanGestureHandler as PanGestureHandlerNative, PanGestureHandlerProperties, } from 'react-native-gesture-handler'; + import DrawerGestureContext from '../utils/DrawerGestureContext'; export function PanGestureHandler(props: PanGestureHandlerProperties) { @@ -17,7 +18,7 @@ export function PanGestureHandler(props: PanGestureHandlerProperties) { export { GestureHandlerRootView, - TapGestureHandler, State as GestureState, PanGestureHandlerGestureEvent, + TapGestureHandler, } from 'react-native-gesture-handler'; diff --git a/packages/drawer/src/views/ScreenFallback.tsx b/packages/drawer/src/views/ScreenFallback.tsx index e2def44a..36789cf4 100644 --- a/packages/drawer/src/views/ScreenFallback.tsx +++ b/packages/drawer/src/views/ScreenFallback.tsx @@ -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; diff --git a/packages/drawer/src/views/legacy/Drawer.tsx b/packages/drawer/src/views/legacy/Drawer.tsx index 604a30eb..cef2955f 100644 --- a/packages/drawer/src/views/legacy/Drawer.tsx +++ b/packages/drawer/src/views/legacy/Drawer.tsx @@ -1,19 +1,20 @@ import * as React from 'react'; import { - StyleSheet, - LayoutChangeEvent, I18nManager, - Platform, - Keyboard, - StatusBar, - View, InteractionManager, + Keyboard, + LayoutChangeEvent, + Platform, + StatusBar, + StyleSheet, + View, } from 'react-native'; import Animated from 'react-native-reanimated'; -import { PanGestureHandler, GestureState } from '../GestureHandler'; -import Overlay from './Overlay'; -import DrawerProgressContext from '../../utils/DrawerProgressContext'; + import type { DrawerProps } from '../../types'; +import DrawerProgressContext from '../../utils/DrawerProgressContext'; +import { GestureState, PanGestureHandler } from '../GestureHandler'; +import Overlay from './Overlay'; const { Clock, diff --git a/packages/drawer/src/views/legacy/Overlay.tsx b/packages/drawer/src/views/legacy/Overlay.tsx index 04038f41..e817c4b7 100644 --- a/packages/drawer/src/views/legacy/Overlay.tsx +++ b/packages/drawer/src/views/legacy/Overlay.tsx @@ -1,5 +1,5 @@ import * as React from 'react'; -import { Pressable, Platform, StyleSheet } from 'react-native'; +import { Platform, Pressable, StyleSheet } from 'react-native'; import Animated from 'react-native-reanimated'; const { diff --git a/packages/drawer/src/views/modern/Drawer.tsx b/packages/drawer/src/views/modern/Drawer.tsx index 7ecd3080..d3e9b401 100644 --- a/packages/drawer/src/views/modern/Drawer.tsx +++ b/packages/drawer/src/views/modern/Drawer.tsx @@ -21,6 +21,7 @@ import Animated, { useSharedValue, withSpring, } from 'react-native-reanimated'; + import type { DrawerProps } from '../../types'; import DrawerProgressContext from '../../utils/DrawerProgressContext'; import Overlay from './Overlay'; diff --git a/packages/drawer/src/views/modern/Overlay.tsx b/packages/drawer/src/views/modern/Overlay.tsx index 92094c46..7fbf8e5f 100644 --- a/packages/drawer/src/views/modern/Overlay.tsx +++ b/packages/drawer/src/views/modern/Overlay.tsx @@ -1,5 +1,5 @@ import * as React from 'react'; -import { Pressable, Platform, StyleSheet } from 'react-native'; +import { Platform, Pressable, StyleSheet } from 'react-native'; import Animated, { useAnimatedStyle } from 'react-native-reanimated'; const PROGRESS_EPSILON = 0.05; diff --git a/packages/elements/src/Background.tsx b/packages/elements/src/Background.tsx index 299b9d20..986609c5 100644 --- a/packages/elements/src/Background.tsx +++ b/packages/elements/src/Background.tsx @@ -1,6 +1,6 @@ +import { useTheme } from '@react-navigation/native'; import * as React from 'react'; import { View, ViewProps } from 'react-native'; -import { useTheme } from '@react-navigation/native'; type Props = ViewProps & { children: React.ReactNode; diff --git a/packages/elements/src/Header/Header.tsx b/packages/elements/src/Header/Header.tsx index edf0bd62..7bc12eb0 100644 --- a/packages/elements/src/Header/Header.tsx +++ b/packages/elements/src/Header/Header.tsx @@ -1,14 +1,15 @@ import * as React from 'react'; -import { Animated, View, StyleSheet, Platform, ViewStyle } from 'react-native'; +import { Animated, Platform, StyleSheet, View, ViewStyle } from 'react-native'; import { useSafeAreaFrame, useSafeAreaInsets, } from 'react-native-safe-area-context'; -import HeaderTitle from './HeaderTitle'; + +import type { HeaderOptions, Layout } from '../types'; +import getDefaultHeaderHeight from './getDefaultHeaderHeight'; import HeaderBackground from './HeaderBackground'; import HeaderShownContext from './HeaderShownContext'; -import getDefaultHeaderHeight from './getDefaultHeaderHeight'; -import type { HeaderOptions, Layout } from '../types'; +import HeaderTitle from './HeaderTitle'; type Props = HeaderOptions & { /** diff --git a/packages/elements/src/Header/HeaderBackButton.tsx b/packages/elements/src/Header/HeaderBackButton.tsx index 35abaaee..22d9fd1d 100644 --- a/packages/elements/src/Header/HeaderBackButton.tsx +++ b/packages/elements/src/Header/HeaderBackButton.tsx @@ -1,16 +1,17 @@ +import { useTheme } from '@react-navigation/native'; import * as React from 'react'; import { Animated, I18nManager, Image, - View, + LayoutChangeEvent, Platform, StyleSheet, - LayoutChangeEvent, + View, } from 'react-native'; -import { useTheme } from '@react-navigation/native'; -import PlatformPressable from '../PlatformPressable'; + import MaskedView from '../MaskedView'; +import PlatformPressable from '../PlatformPressable'; import type { HeaderBackButtonProps } from '../types'; export default function HeaderBackButton({ diff --git a/packages/elements/src/Header/HeaderBackground.tsx b/packages/elements/src/Header/HeaderBackground.tsx index ffbbbaa0..6032cead 100644 --- a/packages/elements/src/Header/HeaderBackground.tsx +++ b/packages/elements/src/Header/HeaderBackground.tsx @@ -1,13 +1,13 @@ +import { useTheme } from '@react-navigation/native'; import * as React from 'react'; import { Animated, - StyleSheet, Platform, - ViewProps, StyleProp, + StyleSheet, + ViewProps, ViewStyle, } from 'react-native'; -import { useTheme } from '@react-navigation/native'; type Props = ViewProps & { style?: Animated.WithAnimatedValue>; diff --git a/packages/elements/src/Header/HeaderTitle.tsx b/packages/elements/src/Header/HeaderTitle.tsx index abaa66d2..40b5e26e 100644 --- a/packages/elements/src/Header/HeaderTitle.tsx +++ b/packages/elements/src/Header/HeaderTitle.tsx @@ -1,13 +1,13 @@ +import { useTheme } from '@react-navigation/native'; import * as React from 'react'; import { Animated, - StyleSheet, Platform, - TextProps, StyleProp, + StyleSheet, + TextProps, TextStyle, } from 'react-native'; -import { useTheme } from '@react-navigation/native'; type Props = Omit & { tintColor?: string; diff --git a/packages/elements/src/Header/getDefaultHeaderHeight.tsx b/packages/elements/src/Header/getDefaultHeaderHeight.tsx index cd1ce862..a22da0cd 100644 --- a/packages/elements/src/Header/getDefaultHeaderHeight.tsx +++ b/packages/elements/src/Header/getDefaultHeaderHeight.tsx @@ -1,4 +1,5 @@ import { Platform } from 'react-native'; + import type { Layout } from '../types'; export default function getDefaultHeaderHeight( diff --git a/packages/elements/src/Header/useHeaderHeight.tsx b/packages/elements/src/Header/useHeaderHeight.tsx index 8f3cede8..3ee33527 100644 --- a/packages/elements/src/Header/useHeaderHeight.tsx +++ b/packages/elements/src/Header/useHeaderHeight.tsx @@ -1,4 +1,5 @@ import * as React from 'react'; + import HeaderHeightContext from './HeaderHeightContext'; export default function useHeaderHeight() { diff --git a/packages/elements/src/MissingIcon.tsx b/packages/elements/src/MissingIcon.tsx index 85fe55b0..39813797 100644 --- a/packages/elements/src/MissingIcon.tsx +++ b/packages/elements/src/MissingIcon.tsx @@ -1,5 +1,5 @@ import * as React from 'react'; -import { Text, TextStyle, StyleProp, StyleSheet } from 'react-native'; +import { StyleProp, StyleSheet, Text, TextStyle } from 'react-native'; type Props = { color?: string; diff --git a/packages/elements/src/PlatformPressable.tsx b/packages/elements/src/PlatformPressable.tsx index 3dc0881c..100b9261 100644 --- a/packages/elements/src/PlatformPressable.tsx +++ b/packages/elements/src/PlatformPressable.tsx @@ -1,3 +1,4 @@ +import { useTheme } from '@react-navigation/native'; import * as React from 'react'; import { Animated, @@ -9,7 +10,6 @@ import { StyleProp, ViewStyle, } from 'react-native'; -import { useTheme } from '@react-navigation/native'; export type Props = Omit & { pressColor?: string; diff --git a/packages/elements/src/ResourceSavingView.tsx b/packages/elements/src/ResourceSavingView.tsx index a9be7a72..0bd3afee 100644 --- a/packages/elements/src/ResourceSavingView.tsx +++ b/packages/elements/src/ResourceSavingView.tsx @@ -1,5 +1,5 @@ import * as React from 'react'; -import { View, Platform, StyleSheet, StyleProp, ViewStyle } from 'react-native'; +import { Platform, StyleProp, StyleSheet, View, ViewStyle } from 'react-native'; type Props = { visible: boolean; diff --git a/packages/elements/src/SafeAreaProviderCompat.tsx b/packages/elements/src/SafeAreaProviderCompat.tsx index 040758d2..41d592a7 100644 --- a/packages/elements/src/SafeAreaProviderCompat.tsx +++ b/packages/elements/src/SafeAreaProviderCompat.tsx @@ -1,9 +1,9 @@ import * as React from 'react'; import { Dimensions, Platform } from 'react-native'; import { - SafeAreaProvider, - SafeAreaInsetsContext, initialWindowMetrics, + SafeAreaInsetsContext, + SafeAreaProvider, } from 'react-native-safe-area-context'; type Props = { diff --git a/packages/elements/src/Screen.tsx b/packages/elements/src/Screen.tsx index 2b33f57c..af7cb123 100644 --- a/packages/elements/src/Screen.tsx +++ b/packages/elements/src/Screen.tsx @@ -1,21 +1,21 @@ +import { + NavigationContext, + NavigationProp, + NavigationRouteContext, + ParamListBase, + RouteProp, +} from '@react-navigation/native'; import * as React from 'react'; -import { View, StyleSheet, StyleProp, ViewStyle } from 'react-native'; +import { StyleProp, StyleSheet, View, ViewStyle } from 'react-native'; import { useSafeAreaFrame, useSafeAreaInsets, } from 'react-native-safe-area-context'; -import { - NavigationContext, - NavigationRouteContext, - NavigationProp, - RouteProp, - ParamListBase, -} from '@react-navigation/native'; import Background from './Background'; -import HeaderShownContext from './Header/HeaderShownContext'; -import HeaderHeightContext from './Header/HeaderHeightContext'; import getDefaultHeaderHeight from './Header/getDefaultHeaderHeight'; +import HeaderHeightContext from './Header/HeaderHeightContext'; +import HeaderShownContext from './Header/HeaderShownContext'; type Props = { focused: boolean; diff --git a/packages/elements/src/index.tsx b/packages/elements/src/index.tsx index 8d652411..aa6cafc1 100644 --- a/packages/elements/src/index.tsx +++ b/packages/elements/src/index.tsx @@ -1,20 +1,19 @@ -export { default as Header } from './Header/Header'; -export { default as HeaderBackground } from './Header/HeaderBackground'; -export { default as HeaderTitle } from './Header/HeaderTitle'; -export { default as HeaderBackButton } from './Header/HeaderBackButton'; -export { default as HeaderBackContext } from './Header/HeaderBackContext'; -export { default as HeaderShownContext } from './Header/HeaderShownContext'; -export { default as HeaderHeightContext } from './Header/HeaderHeightContext'; -export { default as useHeaderHeight } from './Header/useHeaderHeight'; +export { default as Background } from './Background'; export { default as getDefaultHeaderHeight } from './Header/getDefaultHeaderHeight'; export { default as getHeaderTitle } from './Header/getHeaderTitle'; - +export { default as Header } from './Header/Header'; +export { default as HeaderBackButton } from './Header/HeaderBackButton'; +export { default as HeaderBackContext } from './Header/HeaderBackContext'; +export { default as HeaderBackground } from './Header/HeaderBackground'; +export { default as HeaderHeightContext } from './Header/HeaderHeightContext'; +export { default as HeaderShownContext } from './Header/HeaderShownContext'; +export { default as HeaderTitle } from './Header/HeaderTitle'; +export { default as useHeaderHeight } from './Header/useHeaderHeight'; export { default as MissingIcon } from './MissingIcon'; export { default as PlatformPressable } from './PlatformPressable'; export { default as ResourceSavingView } from './ResourceSavingView'; export { default as SafeAreaProviderCompat } from './SafeAreaProviderCompat'; export { default as Screen } from './Screen'; -export { default as Background } from './Background'; export const Assets = [ // eslint-disable-next-line import/no-commonjs diff --git a/packages/elements/src/types.tsx b/packages/elements/src/types.tsx index a923678d..f2605a81 100644 --- a/packages/elements/src/types.tsx +++ b/packages/elements/src/types.tsx @@ -1,9 +1,9 @@ import type { Animated, - StyleProp, - ViewStyle, - TextStyle, LayoutChangeEvent, + StyleProp, + TextStyle, + ViewStyle, } from 'react-native'; export type Layout = { width: number; height: number }; diff --git a/packages/flipper-plugin-react-navigation/src/LinkingTester.tsx b/packages/flipper-plugin-react-navigation/src/LinkingTester.tsx index aef24a36..800bf685 100644 --- a/packages/flipper-plugin-react-navigation/src/LinkingTester.tsx +++ b/packages/flipper-plugin-react-navigation/src/LinkingTester.tsx @@ -1,11 +1,12 @@ -import * as React from 'react'; +import type { + getActionFromState, + getStateFromPath, +} from '@react-navigation/core'; +import { Input } from 'antd'; import { DetailSidebar, styled } from 'flipper'; import { theme } from 'flipper-plugin'; -import { Input } from 'antd'; -import type { - getStateFromPath, - getActionFromState, -} from '@react-navigation/core'; +import * as React from 'react'; + import { RouteMap } from './RouteMap'; import { Sidebar } from './Sidebar'; import type { StoreType } from './types'; diff --git a/packages/flipper-plugin-react-navigation/src/Logs.tsx b/packages/flipper-plugin-react-navigation/src/Logs.tsx index 6dd6a01f..e6863c2a 100644 --- a/packages/flipper-plugin-react-navigation/src/Logs.tsx +++ b/packages/flipper-plugin-react-navigation/src/Logs.tsx @@ -1,7 +1,8 @@ -import * as React from 'react'; import { CompassOutlined } from '@ant-design/icons'; -import { DetailSidebar, VirtualList, styled } from 'flipper'; +import { DetailSidebar, styled, VirtualList } from 'flipper'; import { theme } from 'flipper-plugin'; +import * as React from 'react'; + import { Sidebar } from './Sidebar'; import type { StoreType } from './types'; diff --git a/packages/flipper-plugin-react-navigation/src/RouteMap.tsx b/packages/flipper-plugin-react-navigation/src/RouteMap.tsx index c31e403a..074caa7a 100644 --- a/packages/flipper-plugin-react-navigation/src/RouteMap.tsx +++ b/packages/flipper-plugin-react-navigation/src/RouteMap.tsx @@ -1,6 +1,7 @@ -import * as React from 'react'; import { styled } from 'flipper'; import { theme } from 'flipper-plugin'; +import * as React from 'react'; + import type { PartialRoute } from './types'; type Props = { diff --git a/packages/flipper-plugin-react-navigation/src/Sidebar.tsx b/packages/flipper-plugin-react-navigation/src/Sidebar.tsx index 120eed0a..091b9d94 100644 --- a/packages/flipper-plugin-react-navigation/src/Sidebar.tsx +++ b/packages/flipper-plugin-react-navigation/src/Sidebar.tsx @@ -1,5 +1,6 @@ -import * as React from 'react'; import { Layout, ManagedDataInspector } from 'flipper'; +import * as React from 'react'; + import { Title4 } from './Typography'; export function Sidebar({ diff --git a/packages/flipper-plugin-react-navigation/src/index.tsx b/packages/flipper-plugin-react-navigation/src/index.tsx index 50cb7bd9..8c02abc8 100644 --- a/packages/flipper-plugin-react-navigation/src/index.tsx +++ b/packages/flipper-plugin-react-navigation/src/index.tsx @@ -1,10 +1,11 @@ -import * as React from 'react'; +import { Tabs } from 'antd'; import { styled } from 'flipper'; import { theme } from 'flipper-plugin'; -import { Tabs } from 'antd'; -import { useStore } from './useStore'; -import { Logs } from './Logs'; +import * as React from 'react'; + import { LinkingTester } from './LinkingTester'; +import { Logs } from './Logs'; +import { useStore } from './useStore'; const { TabPane } = Tabs; diff --git a/packages/flipper-plugin-react-navigation/src/plugin.tsx b/packages/flipper-plugin-react-navigation/src/plugin.tsx index 485afc69..5fc243aa 100644 --- a/packages/flipper-plugin-react-navigation/src/plugin.tsx +++ b/packages/flipper-plugin-react-navigation/src/plugin.tsx @@ -1,4 +1,5 @@ -import { PluginClient, createState } from 'flipper-plugin'; +import { createState, PluginClient } from 'flipper-plugin'; + import type { Log, NavigationState } from './types'; type Events = { diff --git a/packages/flipper-plugin-react-navigation/src/useStore.tsx b/packages/flipper-plugin-react-navigation/src/useStore.tsx index 54248a6c..f958689a 100644 --- a/packages/flipper-plugin-react-navigation/src/useStore.tsx +++ b/packages/flipper-plugin-react-navigation/src/useStore.tsx @@ -1,6 +1,7 @@ import { usePlugin, useValue } from 'flipper-plugin'; -import type { StoreType } from './types'; + import { plugin } from './plugin'; +import type { StoreType } from './types'; export function useStore(): StoreType { const instance = usePlugin(plugin); diff --git a/packages/material-bottom-tabs/src/__tests__/index.test.tsx b/packages/material-bottom-tabs/src/__tests__/index.test.tsx index 6f00aa9f..78294152 100644 --- a/packages/material-bottom-tabs/src/__tests__/index.test.tsx +++ b/packages/material-bottom-tabs/src/__tests__/index.test.tsx @@ -1,7 +1,8 @@ -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 { fireEvent, render } from '@testing-library/react-native'; +import * as React from 'react'; +import { Button, Text, View } from 'react-native'; + import { createMaterialBottomTabNavigator, MaterialBottomTabScreenProps, diff --git a/packages/material-bottom-tabs/src/navigators/createMaterialBottomTabNavigator.tsx b/packages/material-bottom-tabs/src/navigators/createMaterialBottomTabNavigator.tsx index b9ba30c4..14471e4e 100644 --- a/packages/material-bottom-tabs/src/navigators/createMaterialBottomTabNavigator.tsx +++ b/packages/material-bottom-tabs/src/navigators/createMaterialBottomTabNavigator.tsx @@ -1,21 +1,21 @@ -import * as React from 'react'; import { - useNavigationBuilder, createNavigatorFactory, DefaultNavigatorOptions, + ParamListBase, + TabActionHelpers, + TabNavigationState, TabRouter, TabRouterOptions, - TabNavigationState, - TabActionHelpers, - ParamListBase, + useNavigationBuilder, } from '@react-navigation/native'; +import * as React from 'react'; -import MaterialBottomTabView from '../views/MaterialBottomTabView'; import type { MaterialBottomTabNavigationConfig, - MaterialBottomTabNavigationOptions, MaterialBottomTabNavigationEventMap, + MaterialBottomTabNavigationOptions, } from '../types'; +import MaterialBottomTabView from '../views/MaterialBottomTabView'; type Props = DefaultNavigatorOptions< ParamListBase, diff --git a/packages/material-bottom-tabs/src/types.tsx b/packages/material-bottom-tabs/src/types.tsx index 78a77d5a..19ff36be 100644 --- a/packages/material-bottom-tabs/src/types.tsx +++ b/packages/material-bottom-tabs/src/types.tsx @@ -1,13 +1,13 @@ -import type { BottomNavigation } from 'react-native-paper'; import type { - ParamListBase, Descriptor, - NavigationProp, NavigationHelpers, - TabNavigationState, - TabActionHelpers, + NavigationProp, + ParamListBase, RouteProp, + TabActionHelpers, + TabNavigationState, } from '@react-navigation/native'; +import type { BottomNavigation } from 'react-native-paper'; export type MaterialBottomTabNavigationEventMap = { /** diff --git a/packages/material-bottom-tabs/src/views/MaterialBottomTabView.tsx b/packages/material-bottom-tabs/src/views/MaterialBottomTabView.tsx index 05f2953c..3474928e 100644 --- a/packages/material-bottom-tabs/src/views/MaterialBottomTabView.tsx +++ b/packages/material-bottom-tabs/src/views/MaterialBottomTabView.tsx @@ -1,15 +1,15 @@ -import * as React from 'react'; -import { Text, StyleSheet, Platform } from 'react-native'; -import { BottomNavigation, DefaultTheme, DarkTheme } from 'react-native-paper'; import { - Route, - TabNavigationState, - TabActions, - useTheme, - useLinkBuilder, Link, ParamListBase, + Route, + TabActions, + TabNavigationState, + useLinkBuilder, + useTheme, } from '@react-navigation/native'; +import * as React from 'react'; +import { Platform, StyleSheet, Text } from 'react-native'; +import { BottomNavigation, DarkTheme, DefaultTheme } from 'react-native-paper'; import type { MaterialBottomTabDescriptorMap, diff --git a/packages/material-top-tabs/src/__tests__/index.test.tsx b/packages/material-top-tabs/src/__tests__/index.test.tsx index 4f2a01f0..d9272866 100644 --- a/packages/material-top-tabs/src/__tests__/index.test.tsx +++ b/packages/material-top-tabs/src/__tests__/index.test.tsx @@ -1,7 +1,8 @@ -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 { fireEvent, render } from '@testing-library/react-native'; +import * as React from 'react'; +import { Button, Text, View } from 'react-native'; + import { createMaterialTopTabNavigator, MaterialTopTabScreenProps, diff --git a/packages/material-top-tabs/src/index.tsx b/packages/material-top-tabs/src/index.tsx index 2bceaa8b..82b5a3e4 100644 --- a/packages/material-top-tabs/src/index.tsx +++ b/packages/material-top-tabs/src/index.tsx @@ -6,15 +6,15 @@ export { default as createMaterialTopTabNavigator } from './navigators/createMat /** * Views */ -export { default as MaterialTopTabView } from './views/MaterialTopTabView'; export { default as MaterialTopTabBar } from './views/MaterialTopTabBar'; +export { default as MaterialTopTabView } from './views/MaterialTopTabView'; /** * Types */ export type { + MaterialTopTabBarProps, MaterialTopTabNavigationOptions, MaterialTopTabNavigationProp, MaterialTopTabScreenProps, - MaterialTopTabBarProps, } from './types'; diff --git a/packages/material-top-tabs/src/navigators/createMaterialTopTabNavigator.tsx b/packages/material-top-tabs/src/navigators/createMaterialTopTabNavigator.tsx index d5e83999..471d1b66 100644 --- a/packages/material-top-tabs/src/navigators/createMaterialTopTabNavigator.tsx +++ b/packages/material-top-tabs/src/navigators/createMaterialTopTabNavigator.tsx @@ -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 MaterialTopTabView from '../views/MaterialTopTabView'; +import * as React from 'react'; +import warnOnce from 'warn-once'; + import type { MaterialTopTabNavigationConfig, - MaterialTopTabNavigationOptions, MaterialTopTabNavigationEventMap, + MaterialTopTabNavigationOptions, } from '../types'; +import MaterialTopTabView from '../views/MaterialTopTabView'; type Props = DefaultNavigatorOptions< ParamListBase, diff --git a/packages/material-top-tabs/src/types.tsx b/packages/material-top-tabs/src/types.tsx index 468bddf5..38cd3fcf 100644 --- a/packages/material-top-tabs/src/types.tsx +++ b/packages/material-top-tabs/src/types.tsx @@ -1,15 +1,15 @@ -import type { StyleProp, ViewStyle, TextStyle } from 'react-native'; -import type { SceneRendererProps, TabViewProps } from 'react-native-tab-view'; import type { - ParamListBase, Descriptor, NavigationHelpers, - Route, NavigationProp, - TabNavigationState, - TabActionHelpers, + ParamListBase, + Route, RouteProp, + TabActionHelpers, + TabNavigationState, } from '@react-navigation/native'; +import type { StyleProp, TextStyle, ViewStyle } from 'react-native'; +import type { SceneRendererProps, TabViewProps } from 'react-native-tab-view'; export type MaterialTopTabNavigationEventMap = { /** diff --git a/packages/material-top-tabs/src/views/MaterialTopTabBar.tsx b/packages/material-top-tabs/src/views/MaterialTopTabBar.tsx index 99365ca2..b2a7c1ed 100644 --- a/packages/material-top-tabs/src/views/MaterialTopTabBar.tsx +++ b/packages/material-top-tabs/src/views/MaterialTopTabBar.tsx @@ -1,8 +1,8 @@ -import * as React from 'react'; -import { View, Text, StyleSheet } from 'react-native'; -import { TabBar } from 'react-native-tab-view'; import { Route, useTheme } from '@react-navigation/native'; import Color from 'color'; +import * as React from 'react'; +import { StyleSheet, Text, View } from 'react-native'; +import { TabBar } from 'react-native-tab-view'; import type { MaterialTopTabBarProps } from '../types'; diff --git a/packages/material-top-tabs/src/views/MaterialTopTabView.tsx b/packages/material-top-tabs/src/views/MaterialTopTabView.tsx index f4d244cd..827d87f8 100644 --- a/packages/material-top-tabs/src/views/MaterialTopTabView.tsx +++ b/packages/material-top-tabs/src/views/MaterialTopTabView.tsx @@ -1,20 +1,20 @@ -import * as React from 'react'; -import { TabView, SceneRendererProps } from 'react-native-tab-view'; import { - TabNavigationState, - TabActions, ParamListBase, Route, + TabActions, + TabNavigationState, useTheme, } from '@react-navigation/native'; +import * as React from 'react'; +import { SceneRendererProps, TabView } from 'react-native-tab-view'; -import MaterialTopTabBar from './MaterialTopTabBar'; import type { + MaterialTopTabBarProps, MaterialTopTabDescriptorMap, MaterialTopTabNavigationConfig, MaterialTopTabNavigationHelpers, - MaterialTopTabBarProps, } from '../types'; +import MaterialTopTabBar from './MaterialTopTabBar'; type Props = MaterialTopTabNavigationConfig & { state: TabNavigationState; diff --git a/packages/native-stack/src/__tests__/index.test.tsx b/packages/native-stack/src/__tests__/index.test.tsx index fd71bdf3..a89d2128 100644 --- a/packages/native-stack/src/__tests__/index.test.tsx +++ b/packages/native-stack/src/__tests__/index.test.tsx @@ -1,7 +1,8 @@ -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 { fireEvent, render } from '@testing-library/react-native'; +import * as React from 'react'; +import { Button, Text, View } from 'react-native'; + import { createNativeStackNavigator, NativeStackScreenProps } from '../index'; it('renders a native-stack navigator with screens', async () => { diff --git a/packages/native-stack/src/navigators/createNativeStackNavigator.tsx b/packages/native-stack/src/navigators/createNativeStackNavigator.tsx index 721fc231..af4d3909 100644 --- a/packages/native-stack/src/navigators/createNativeStackNavigator.tsx +++ b/packages/native-stack/src/navigators/createNativeStackNavigator.tsx @@ -1,22 +1,22 @@ import { createNavigatorFactory, EventArg, - StackActions, + ParamListBase, StackActionHelpers, + StackActions, StackNavigationState, StackRouter, StackRouterOptions, - ParamListBase, useNavigationBuilder, } from '@react-navigation/native'; import * as React from 'react'; -import NativeStackView from '../views/NativeStackView'; import type { - NativeStackNavigationOptions, NativeStackNavigationEventMap, + NativeStackNavigationOptions, NativeStackNavigatorProps, } from '../types'; +import NativeStackView from '../views/NativeStackView'; function NativeStackNavigator({ initialRouteName, diff --git a/packages/native-stack/src/types.tsx b/packages/native-stack/src/types.tsx index acf17e8f..c961acbf 100644 --- a/packages/native-stack/src/types.tsx +++ b/packages/native-stack/src/types.tsx @@ -1,15 +1,15 @@ -import type { ImageSourcePropType, StyleProp, ViewStyle } from 'react-native'; import type { DefaultNavigatorOptions, Descriptor, NavigationHelpers, NavigationProp, ParamListBase, + RouteProp, + StackActionHelpers, StackNavigationState, StackRouterOptions, - StackActionHelpers, - RouteProp, } from '@react-navigation/native'; +import type { ImageSourcePropType, StyleProp, ViewStyle } from 'react-native'; import type { ScreenProps, ScreenStackHeaderConfigProps, diff --git a/packages/native-stack/src/views/HeaderConfig.tsx b/packages/native-stack/src/views/HeaderConfig.tsx index 0c3b6f3e..7c3a9920 100644 --- a/packages/native-stack/src/views/HeaderConfig.tsx +++ b/packages/native-stack/src/views/HeaderConfig.tsx @@ -1,5 +1,8 @@ +import { HeaderTitle } from '@react-navigation/elements'; +import { Route, useTheme } from '@react-navigation/native'; import * as React from 'react'; -import { StyleSheet, I18nManager, Platform, View } from 'react-native'; +import { I18nManager, Platform, StyleSheet, View } from 'react-native'; +import { useSafeAreaInsets } from 'react-native-safe-area-context'; import { ScreenStackHeaderBackButtonImage, ScreenStackHeaderCenterView, @@ -9,9 +12,7 @@ import { ScreenStackHeaderSearchBarView, SearchBar, } from 'react-native-screens'; -import { Route, useTheme } from '@react-navigation/native'; -import { HeaderTitle } from '@react-navigation/elements'; -import { useSafeAreaInsets } from 'react-native-safe-area-context'; + import type { NativeStackNavigationOptions } from '../types'; import { processFonts } from './FontProcessor'; diff --git a/packages/native-stack/src/views/NativeStackView.tsx b/packages/native-stack/src/views/NativeStackView.tsx index b2afd243..55a66c45 100644 --- a/packages/native-stack/src/views/NativeStackView.tsx +++ b/packages/native-stack/src/views/NativeStackView.tsx @@ -1,27 +1,28 @@ +import { SafeAreaProviderCompat } from '@react-navigation/elements'; +import { + ParamListBase, + Route, + StackActions, + StackNavigationState, + useTheme, +} from '@react-navigation/native'; import * as React from 'react'; import { Platform, StyleSheet, View, ViewProps } from 'react-native'; // @ts-ignore Getting private component import AppContainer from 'react-native/Libraries/ReactNative/AppContainer'; -import { - ParamListBase, - StackActions, - StackNavigationState, - useTheme, - Route, -} from '@react-navigation/native'; -import { SafeAreaProviderCompat } from '@react-navigation/elements'; import { Screen, ScreenStack, StackPresentationTypes, } from 'react-native-screens'; import warnOnce from 'warn-once'; -import HeaderConfig from './HeaderConfig'; + import type { NativeStackDescriptorMap, NativeStackNavigationHelpers, NativeStackNavigationOptions, } from '../types'; +import HeaderConfig from './HeaderConfig'; const isAndroid = Platform.OS === 'android'; diff --git a/packages/native/src/Link.tsx b/packages/native/src/Link.tsx index bc762606..34eeb66f 100644 --- a/packages/native/src/Link.tsx +++ b/packages/native/src/Link.tsx @@ -1,6 +1,7 @@ -import * as React from 'react'; -import { Text, TextProps, GestureResponderEvent, Platform } from 'react-native'; import type { NavigationAction } from '@react-navigation/core'; +import * as React from 'react'; +import { GestureResponderEvent, Platform, Text, TextProps } from 'react-native'; + import useLinkProps from './useLinkProps'; import type { To } from './useLinkTo'; diff --git a/packages/native/src/LinkingContext.tsx b/packages/native/src/LinkingContext.tsx index fa1821be..e862dce4 100644 --- a/packages/native/src/LinkingContext.tsx +++ b/packages/native/src/LinkingContext.tsx @@ -1,5 +1,6 @@ -import * as React from 'react'; import type { ParamListBase } from '@react-navigation/core'; +import * as React from 'react'; + import type { LinkingOptions } from './types'; const LinkingContext = React.createContext<{ diff --git a/packages/native/src/NavigationContainer.tsx b/packages/native/src/NavigationContainer.tsx index d0edf3d6..208dd058 100644 --- a/packages/native/src/NavigationContainer.tsx +++ b/packages/native/src/NavigationContainer.tsx @@ -1,21 +1,22 @@ -import * as React from 'react'; import { BaseNavigationContainer, + getActionFromState, getPathFromState, getStateFromPath, - getActionFromState, NavigationContainerProps, NavigationContainerRef, ParamListBase, } from '@react-navigation/core'; -import ThemeProvider from './theming/ThemeProvider'; -import DefaultTheme from './theming/DefaultTheme'; +import * as React from 'react'; + import LinkingContext from './LinkingContext'; -import useThenable from './useThenable'; -import useLinking from './useLinking'; -import useDocumentTitle from './useDocumentTitle'; +import DefaultTheme from './theming/DefaultTheme'; +import ThemeProvider from './theming/ThemeProvider'; +import type { DocumentTitleOptions, LinkingOptions, Theme } from './types'; import useBackButton from './useBackButton'; -import type { Theme, LinkingOptions, DocumentTitleOptions } from './types'; +import useDocumentTitle from './useDocumentTitle'; +import useLinking from './useLinking'; +import useThenable from './useThenable'; type Props = NavigationContainerProps & { theme?: Theme; diff --git a/packages/native/src/ServerContainer.tsx b/packages/native/src/ServerContainer.tsx index 79923e44..927a90db 100644 --- a/packages/native/src/ServerContainer.tsx +++ b/packages/native/src/ServerContainer.tsx @@ -1,5 +1,6 @@ -import * as React from 'react'; import { CurrentRenderContext } from '@react-navigation/core'; +import * as React from 'react'; + import ServerContext, { ServerContextType } from './ServerContext'; import type { ServerContainerRef } from './types'; diff --git a/packages/native/src/__tests__/NavigationContainer.test.tsx b/packages/native/src/__tests__/NavigationContainer.test.tsx index dcc0bc3d..37358694 100644 --- a/packages/native/src/__tests__/NavigationContainer.test.tsx +++ b/packages/native/src/__tests__/NavigationContainer.test.tsx @@ -1,15 +1,16 @@ -import * as React from 'react'; import { - useNavigationBuilder, + createNavigationContainerRef, createNavigatorFactory, + ParamListBase, StackRouter, TabRouter, - createNavigationContainerRef, - ParamListBase, + useNavigationBuilder, } from '@react-navigation/core'; import { act, render } from '@testing-library/react-native'; -import NavigationContainer from '../NavigationContainer'; +import * as React from 'react'; + import window from '../__mocks__/window'; +import NavigationContainer from '../NavigationContainer'; // @ts-expect-error: practically window is same as global, so we can ignore the error global.window = window; diff --git a/packages/native/src/__tests__/ServerContainer.test.tsx b/packages/native/src/__tests__/ServerContainer.test.tsx index 52bc4bb6..be241a40 100644 --- a/packages/native/src/__tests__/ServerContainer.test.tsx +++ b/packages/native/src/__tests__/ServerContainer.test.tsx @@ -1,12 +1,13 @@ -import * as React from 'react'; import { - useNavigationBuilder, createNavigatorFactory, + NavigatorScreenParams, StackRouter, TabRouter, - NavigatorScreenParams, + useNavigationBuilder, } from '@react-navigation/core'; +import * as React from 'react'; import { renderToString } from 'react-dom/server'; + import NavigationContainer from '../NavigationContainer'; import ServerContainer from '../ServerContainer'; import type { ServerContainerRef } from '../types'; diff --git a/packages/native/src/__tests__/useLinking.test.tsx b/packages/native/src/__tests__/useLinking.test.tsx index ced80a87..42d49598 100644 --- a/packages/native/src/__tests__/useLinking.test.tsx +++ b/packages/native/src/__tests__/useLinking.test.tsx @@ -1,9 +1,10 @@ -import * as React from 'react'; -import { render, RenderAPI } from '@testing-library/react-native'; import { createNavigationContainerRef, ParamListBase, } from '@react-navigation/core'; +import { render, RenderAPI } from '@testing-library/react-native'; +import * as React from 'react'; + import useLinking from '../useLinking'; it('throws if multiple instances of useLinking are used', () => { diff --git a/packages/native/src/index.tsx b/packages/native/src/index.tsx index 189fa98c..533d7c88 100644 --- a/packages/native/src/index.tsx +++ b/packages/native/src/index.tsx @@ -1,19 +1,13 @@ -export * from '@react-navigation/core'; - +export { default as Link } from './Link'; export { default as NavigationContainer } from './NavigationContainer'; - -export { default as useScrollToTop } from './useScrollToTop'; - -export { default as DefaultTheme } from './theming/DefaultTheme'; +export { default as ServerContainer } from './ServerContainer'; export { default as DarkTheme } from './theming/DarkTheme'; +export { default as DefaultTheme } from './theming/DefaultTheme'; export { default as ThemeProvider } from './theming/ThemeProvider'; export { default as useTheme } from './theming/useTheme'; - -export { default as Link } from './Link'; -export { default as useLinkTo } from './useLinkTo'; -export { default as useLinkProps } from './useLinkProps'; -export { default as useLinkBuilder } from './useLinkBuilder'; - -export { default as ServerContainer } from './ServerContainer'; - export * from './types'; +export { default as useLinkBuilder } from './useLinkBuilder'; +export { default as useLinkProps } from './useLinkProps'; +export { default as useLinkTo } from './useLinkTo'; +export { default as useScrollToTop } from './useScrollToTop'; +export * from '@react-navigation/core'; diff --git a/packages/native/src/theming/ThemeContext.tsx b/packages/native/src/theming/ThemeContext.tsx index 74d48f1b..7e1e4030 100644 --- a/packages/native/src/theming/ThemeContext.tsx +++ b/packages/native/src/theming/ThemeContext.tsx @@ -1,6 +1,7 @@ import * as React from 'react'; -import DefaultTheme from './DefaultTheme'; + import type { Theme } from '../types'; +import DefaultTheme from './DefaultTheme'; const ThemeContext = React.createContext(DefaultTheme); diff --git a/packages/native/src/theming/ThemeProvider.tsx b/packages/native/src/theming/ThemeProvider.tsx index 160ddb1c..d3a8edda 100644 --- a/packages/native/src/theming/ThemeProvider.tsx +++ b/packages/native/src/theming/ThemeProvider.tsx @@ -1,6 +1,7 @@ import * as React from 'react'; -import ThemeContext from './ThemeContext'; + import type { Theme } from '../types'; +import ThemeContext from './ThemeContext'; type Props = { value: Theme; diff --git a/packages/native/src/theming/useTheme.tsx b/packages/native/src/theming/useTheme.tsx index f3489eb9..3c1017a2 100644 --- a/packages/native/src/theming/useTheme.tsx +++ b/packages/native/src/theming/useTheme.tsx @@ -1,4 +1,5 @@ import * as React from 'react'; + import ThemeContext from './ThemeContext'; export default function useTheme() { diff --git a/packages/native/src/types.tsx b/packages/native/src/types.tsx index fc25c33b..585504c7 100644 --- a/packages/native/src/types.tsx +++ b/packages/native/src/types.tsx @@ -1,7 +1,7 @@ import type { - getStateFromPath as getStateFromPathDefault, - getPathFromState as getPathFromStateDefault, getActionFromState as getActionFromStateDefault, + getPathFromState as getPathFromStateDefault, + getStateFromPath as getStateFromPathDefault, PathConfigMap, Route, } from '@react-navigation/core'; diff --git a/packages/native/src/useBackButton.tsx b/packages/native/src/useBackButton.tsx index 9b9bb984..0d4b4fc9 100644 --- a/packages/native/src/useBackButton.tsx +++ b/packages/native/src/useBackButton.tsx @@ -1,9 +1,9 @@ -import * as React from 'react'; -import { BackHandler } from 'react-native'; import type { NavigationContainerRef, ParamListBase, } from '@react-navigation/core'; +import * as React from 'react'; +import { BackHandler } from 'react-native'; export default function useBackButton( ref: React.RefObject> diff --git a/packages/native/src/useDocumentTitle.tsx b/packages/native/src/useDocumentTitle.tsx index 5e49511f..311f103c 100644 --- a/packages/native/src/useDocumentTitle.tsx +++ b/packages/native/src/useDocumentTitle.tsx @@ -1,8 +1,9 @@ -import * as React from 'react'; import type { NavigationContainerRef, ParamListBase, } from '@react-navigation/core'; +import * as React from 'react'; + import type { DocumentTitleOptions } from './types'; /** diff --git a/packages/native/src/useLinkBuilder.tsx b/packages/native/src/useLinkBuilder.tsx index 246865d3..c14e222f 100644 --- a/packages/native/src/useLinkBuilder.tsx +++ b/packages/native/src/useLinkBuilder.tsx @@ -1,11 +1,12 @@ -import * as React from 'react'; import { + getPathFromState, NavigationHelpers, NavigationHelpersContext, NavigationProp, ParamListBase, - getPathFromState, } from '@react-navigation/core'; +import * as React from 'react'; + import LinkingContext from './LinkingContext'; type NavigationObject = diff --git a/packages/native/src/useLinkProps.tsx b/packages/native/src/useLinkProps.tsx index 5fe74a2f..04f89524 100644 --- a/packages/native/src/useLinkProps.tsx +++ b/packages/native/src/useLinkProps.tsx @@ -1,10 +1,11 @@ -import * as React from 'react'; -import { Platform, GestureResponderEvent } from 'react-native'; import { NavigationAction, NavigationContainerRefContext, NavigationHelpersContext, } from '@react-navigation/core'; +import * as React from 'react'; +import { GestureResponderEvent, Platform } from 'react-native'; + import useLinkTo, { To } from './useLinkTo'; type Props = { diff --git a/packages/native/src/useLinkTo.tsx b/packages/native/src/useLinkTo.tsx index 1ae4f7d2..ef189f74 100644 --- a/packages/native/src/useLinkTo.tsx +++ b/packages/native/src/useLinkTo.tsx @@ -1,9 +1,10 @@ -import * as React from 'react'; import { - NavigationContainerRefContext, - getStateFromPath, getActionFromState, + getStateFromPath, + NavigationContainerRefContext, } from '@react-navigation/core'; +import * as React from 'react'; + import LinkingContext from './LinkingContext'; export type To< diff --git a/packages/native/src/useLinking.native.tsx b/packages/native/src/useLinking.native.tsx index 476f5844..397a6fb2 100644 --- a/packages/native/src/useLinking.native.tsx +++ b/packages/native/src/useLinking.native.tsx @@ -1,11 +1,12 @@ -import * as React from 'react'; -import { Linking, Platform } from 'react-native'; import { - getStateFromPath as getStateFromPathDefault, getActionFromState as getActionFromStateDefault, + getStateFromPath as getStateFromPathDefault, NavigationContainerRef, ParamListBase, } from '@react-navigation/core'; +import * as React from 'react'; +import { Linking, Platform } from 'react-native'; + import extractPathFromURL from './extractPathFromURL'; import type { LinkingOptions } from './types'; diff --git a/packages/native/src/useLinking.tsx b/packages/native/src/useLinking.tsx index 211cce98..19b6e867 100644 --- a/packages/native/src/useLinking.tsx +++ b/packages/native/src/useLinking.tsx @@ -1,14 +1,15 @@ -import * as React from 'react'; import { - getStateFromPath as getStateFromPathDefault, - getPathFromState as getPathFromStateDefault, + findFocusedRoute, getActionFromState as getActionFromStateDefault, + getPathFromState as getPathFromStateDefault, + getStateFromPath as getStateFromPathDefault, NavigationContainerRef, NavigationState, - findFocusedRoute, ParamListBase, } from '@react-navigation/core'; import { nanoid } from 'nanoid/non-secure'; +import * as React from 'react'; + import ServerContext from './ServerContext'; import type { LinkingOptions } from './types'; diff --git a/packages/native/src/useScrollToTop.tsx b/packages/native/src/useScrollToTop.tsx index 2924baf9..522a6c45 100644 --- a/packages/native/src/useScrollToTop.tsx +++ b/packages/native/src/useScrollToTop.tsx @@ -1,5 +1,5 @@ +import { EventArg, useNavigation, useRoute } from '@react-navigation/core'; import * as React from 'react'; -import { useNavigation, useRoute, EventArg } from '@react-navigation/core'; type ScrollOptions = { y?: number; animated?: boolean }; diff --git a/packages/routers/src/BaseRouter.tsx b/packages/routers/src/BaseRouter.tsx index 2b978e13..6901e821 100644 --- a/packages/routers/src/BaseRouter.tsx +++ b/packages/routers/src/BaseRouter.tsx @@ -1,4 +1,5 @@ import { nanoid } from 'nanoid/non-secure'; + import type { CommonNavigationAction, NavigationState, diff --git a/packages/routers/src/DrawerRouter.tsx b/packages/routers/src/DrawerRouter.tsx index 0cd24d72..9765a3ef 100644 --- a/packages/routers/src/DrawerRouter.tsx +++ b/packages/routers/src/DrawerRouter.tsx @@ -1,17 +1,18 @@ import { nanoid } from 'nanoid/non-secure'; -import type { - PartialState, - CommonNavigationAction, - Router, - ParamListBase, -} from './types'; + import TabRouter, { + TabActionHelpers, TabActions, TabActionType, - TabRouterOptions, TabNavigationState, - TabActionHelpers, + TabRouterOptions, } from './TabRouter'; +import type { + CommonNavigationAction, + ParamListBase, + PartialState, + Router, +} from './types'; export type DrawerActionType = | TabActionType diff --git a/packages/routers/src/StackRouter.tsx b/packages/routers/src/StackRouter.tsx index c8a663d2..0b948997 100644 --- a/packages/routers/src/StackRouter.tsx +++ b/packages/routers/src/StackRouter.tsx @@ -1,12 +1,13 @@ import { nanoid } from 'nanoid/non-secure'; + import BaseRouter from './BaseRouter'; import type { - NavigationState, CommonNavigationAction, - Router, DefaultRouterOptions, - Route, + NavigationState, ParamListBase, + Route, + Router, } from './types'; export type StackActionType = diff --git a/packages/routers/src/TabRouter.tsx b/packages/routers/src/TabRouter.tsx index 72575cde..25c78b28 100644 --- a/packages/routers/src/TabRouter.tsx +++ b/packages/routers/src/TabRouter.tsx @@ -1,13 +1,14 @@ import { nanoid } from 'nanoid/non-secure'; + import BaseRouter from './BaseRouter'; import type { - NavigationState, - PartialState, CommonNavigationAction, - Router, DefaultRouterOptions, - Route, + NavigationState, ParamListBase, + PartialState, + Route, + Router, } from './types'; export type TabActionType = { diff --git a/packages/routers/src/__tests__/DrawerRouter.test.tsx b/packages/routers/src/__tests__/DrawerRouter.test.tsx index 5102d2a4..6766bb1b 100644 --- a/packages/routers/src/__tests__/DrawerRouter.test.tsx +++ b/packages/routers/src/__tests__/DrawerRouter.test.tsx @@ -1,8 +1,8 @@ import { CommonActions, - DrawerRouter, DrawerActions, DrawerNavigationState, + DrawerRouter, ParamListBase, RouterConfigOptions, } from '..'; diff --git a/packages/routers/src/__tests__/StackRouter.test.tsx b/packages/routers/src/__tests__/StackRouter.test.tsx index 28ee5e81..336dd7e8 100644 --- a/packages/routers/src/__tests__/StackRouter.test.tsx +++ b/packages/routers/src/__tests__/StackRouter.test.tsx @@ -1,8 +1,8 @@ import { CommonActions, - StackRouter, - StackActions, RouterConfigOptions, + StackActions, + StackRouter, } from '..'; jest.mock('nanoid/non-secure', () => ({ nanoid: () => 'test' })); diff --git a/packages/routers/src/__tests__/TabRouter.test.tsx b/packages/routers/src/__tests__/TabRouter.test.tsx index 4e390e57..291d6723 100644 --- a/packages/routers/src/__tests__/TabRouter.test.tsx +++ b/packages/routers/src/__tests__/TabRouter.test.tsx @@ -1,10 +1,10 @@ import { CommonActions, - TabRouter, - TabActions, - TabNavigationState, ParamListBase, RouterConfigOptions, + TabActions, + TabNavigationState, + TabRouter, } from '..'; jest.mock('nanoid/non-secure', () => ({ nanoid: () => 'test' })); diff --git a/packages/routers/src/index.tsx b/packages/routers/src/index.tsx index 297ad80a..742daf58 100644 --- a/packages/routers/src/index.tsx +++ b/packages/routers/src/index.tsx @@ -3,32 +3,25 @@ import * as CommonActions from './CommonActions'; export { CommonActions }; export { default as BaseRouter } from './BaseRouter'; - -export { default as StackRouter, StackActions } from './StackRouter'; - -export type { - StackActionHelpers, - StackActionType, - StackRouterOptions, - StackNavigationState, -} from './StackRouter'; - -export { default as TabRouter, TabActions } from './TabRouter'; - -export type { - TabActionHelpers, - TabActionType, - TabRouterOptions, - TabNavigationState, -} from './TabRouter'; - -export { default as DrawerRouter, DrawerActions } from './DrawerRouter'; - export type { DrawerActionHelpers, DrawerActionType, - DrawerRouterOptions, DrawerNavigationState, + DrawerRouterOptions, } from './DrawerRouter'; - +export { DrawerActions, default as DrawerRouter } from './DrawerRouter'; +export type { + StackActionHelpers, + StackActionType, + StackNavigationState, + StackRouterOptions, +} from './StackRouter'; +export { StackActions, default as StackRouter } from './StackRouter'; +export type { + TabActionHelpers, + TabActionType, + TabNavigationState, + TabRouterOptions, +} from './TabRouter'; +export { TabActions, default as TabRouter } from './TabRouter'; export * from './types'; diff --git a/packages/stack/src/TransitionConfigs/CardStyleInterpolators.tsx b/packages/stack/src/TransitionConfigs/CardStyleInterpolators.tsx index f8907414..1e51255e 100644 --- a/packages/stack/src/TransitionConfigs/CardStyleInterpolators.tsx +++ b/packages/stack/src/TransitionConfigs/CardStyleInterpolators.tsx @@ -1,10 +1,11 @@ import { Animated } from 'react-native'; import { isIphoneX } from 'react-native-iphone-x-helper'; -import conditional from '../utils/conditional'; + import type { - StackCardInterpolationProps, StackCardInterpolatedStyle, + StackCardInterpolationProps, } from '../types'; +import conditional from '../utils/conditional'; const { add, multiply } = Animated; diff --git a/packages/stack/src/TransitionConfigs/HeaderStyleInterpolators.tsx b/packages/stack/src/TransitionConfigs/HeaderStyleInterpolators.tsx index e3ef8096..a292df39 100644 --- a/packages/stack/src/TransitionConfigs/HeaderStyleInterpolators.tsx +++ b/packages/stack/src/TransitionConfigs/HeaderStyleInterpolators.tsx @@ -1,7 +1,8 @@ import { Animated, I18nManager } from 'react-native'; + import type { - StackHeaderInterpolationProps, StackHeaderInterpolatedStyle, + StackHeaderInterpolationProps, } from '../types'; const { add } = Animated; diff --git a/packages/stack/src/TransitionConfigs/TransitionPresets.tsx b/packages/stack/src/TransitionConfigs/TransitionPresets.tsx index c9548eef..5a573f6c 100644 --- a/packages/stack/src/TransitionConfigs/TransitionPresets.tsx +++ b/packages/stack/src/TransitionConfigs/TransitionPresets.tsx @@ -1,25 +1,26 @@ import { Platform } from 'react-native'; + +import type { TransitionPreset } from '../types'; import { - forHorizontalIOS, - forVerticalIOS, - forModalPresentationIOS, - forScaleFromCenterAndroid, - forRevealFromBottomAndroid, - forFadeFromBottomAndroid, forBottomSheetAndroid, + forFadeFromBottomAndroid, forFadeFromCenter as forFadeCard, + forHorizontalIOS, + forModalPresentationIOS, + forRevealFromBottomAndroid, + forScaleFromCenterAndroid, + forVerticalIOS, } from './CardStyleInterpolators'; import { forFade } from './HeaderStyleInterpolators'; import { - TransitionIOSSpec, - ScaleFromCenterAndroidSpec, - RevealFromBottomAndroidSpec, - FadeOutToBottomAndroidSpec, - FadeInFromBottomAndroidSpec, BottomSheetSlideInSpec, BottomSheetSlideOutSpec, + FadeInFromBottomAndroidSpec, + FadeOutToBottomAndroidSpec, + RevealFromBottomAndroidSpec, + ScaleFromCenterAndroidSpec, + TransitionIOSSpec, } from './TransitionSpecs'; -import type { TransitionPreset } from '../types'; const ANDROID_VERSION_PIE = 28; const ANDROID_VERSION_10 = 29; diff --git a/packages/stack/src/TransitionConfigs/TransitionSpecs.tsx b/packages/stack/src/TransitionConfigs/TransitionSpecs.tsx index 020b8ba0..4b3add7c 100644 --- a/packages/stack/src/TransitionConfigs/TransitionSpecs.tsx +++ b/packages/stack/src/TransitionConfigs/TransitionSpecs.tsx @@ -1,4 +1,5 @@ import { Easing } from 'react-native'; + import type { TransitionSpec } from '../types'; /** diff --git a/packages/stack/src/__tests__/index.test.tsx b/packages/stack/src/__tests__/index.test.tsx index d5c2d783..81abce00 100644 --- a/packages/stack/src/__tests__/index.test.tsx +++ b/packages/stack/src/__tests__/index.test.tsx @@ -1,7 +1,8 @@ -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 { fireEvent, render } from '@testing-library/react-native'; +import * as React from 'react'; +import { Button, Text, View } from 'react-native'; + import { createStackNavigator, StackScreenProps } from '../index'; it('renders a stack navigator with screens', async () => { diff --git a/packages/stack/src/index.tsx b/packages/stack/src/index.tsx index 8e2bd96a..f20d3fba 100644 --- a/packages/stack/src/index.tsx +++ b/packages/stack/src/index.tsx @@ -1,7 +1,7 @@ import * as CardStyleInterpolators from './TransitionConfigs/CardStyleInterpolators'; import * as HeaderStyleInterpolators from './TransitionConfigs/HeaderStyleInterpolators'; -import * as TransitionSpecs from './TransitionConfigs/TransitionSpecs'; import * as TransitionPresets from './TransitionConfigs/TransitionPresets'; +import * as TransitionSpecs from './TransitionConfigs/TransitionSpecs'; /** * Navigators @@ -11,8 +11,8 @@ export { default as createStackNavigator } from './navigators/createStackNavigat /** * Views */ -export { default as StackView } from './views/Stack/StackView'; export { default as Header } from './views/Header/Header'; +export { default as StackView } from './views/Stack/StackView'; /** * Transition presets @@ -20,8 +20,8 @@ export { default as Header } from './views/Header/Header'; export { CardStyleInterpolators, HeaderStyleInterpolators, - TransitionSpecs, TransitionPresets, + TransitionSpecs, }; /** @@ -29,7 +29,6 @@ export { */ export { default as CardAnimationContext } from './utils/CardAnimationContext'; export { default as GestureHandlerRefContext } from './utils/GestureHandlerRefContext'; - export { default as useCardAnimation } from './utils/useCardAnimation'; export { default as useGestureHandlerRef } from './utils/useGestureHandlerRef'; @@ -37,15 +36,15 @@ export { default as useGestureHandlerRef } from './utils/useGestureHandlerRef'; * Types */ export type { - StackNavigationOptions, - StackNavigationProp, - StackScreenProps, - StackHeaderProps, StackCardInterpolatedStyle, StackCardInterpolationProps, StackCardStyleInterpolator, StackHeaderInterpolatedStyle, StackHeaderInterpolationProps, + StackHeaderProps, StackHeaderStyleInterpolator, + StackNavigationOptions, + StackNavigationProp, + StackScreenProps, TransitionPreset, } from './types'; diff --git a/packages/stack/src/navigators/createStackNavigator.tsx b/packages/stack/src/navigators/createStackNavigator.tsx index 69610063..5eb869c4 100644 --- a/packages/stack/src/navigators/createStackNavigator.tsx +++ b/packages/stack/src/navigators/createStackNavigator.tsx @@ -1,24 +1,25 @@ -import * as React from 'react'; import { - useNavigationBuilder, createNavigatorFactory, DefaultNavigatorOptions, EventArg, - StackRouter, - StackRouterOptions, - StackNavigationState, - StackActions, ParamListBase, StackActionHelpers, + StackActions, + StackNavigationState, + StackRouter, + StackRouterOptions, + useNavigationBuilder, } from '@react-navigation/native'; +import * as React from 'react'; import warnOnce from 'warn-once'; -import StackView from '../views/Stack/StackView'; + import type { - StackNavigationConfig, - StackNavigationOptions, - StackNavigationEventMap, StackHeaderMode, + StackNavigationConfig, + StackNavigationEventMap, + StackNavigationOptions, } from '../types'; +import StackView from '../views/Stack/StackView'; type Props = DefaultNavigatorOptions< ParamListBase, diff --git a/packages/stack/src/types.tsx b/packages/stack/src/types.tsx index 25030493..d452f39b 100644 --- a/packages/stack/src/types.tsx +++ b/packages/stack/src/types.tsx @@ -1,19 +1,19 @@ -import type * as React from 'react'; -import type { Animated, StyleProp, TextStyle, ViewStyle } from 'react-native'; -import type { - NavigationProp, - ParamListBase, - Descriptor, - Route, - NavigationHelpers, - StackNavigationState, - StackActionHelpers, - RouteProp, -} from '@react-navigation/native'; import type { HeaderBackButton, HeaderOptions, } from '@react-navigation/elements'; +import type { + Descriptor, + NavigationHelpers, + NavigationProp, + ParamListBase, + Route, + RouteProp, + StackActionHelpers, + StackNavigationState, +} from '@react-navigation/native'; +import type * as React from 'react'; +import type { Animated, StyleProp, TextStyle, ViewStyle } from 'react-native'; export type StackNavigationEventMap = { /** diff --git a/packages/stack/src/utils/CardAnimationContext.tsx b/packages/stack/src/utils/CardAnimationContext.tsx index a4fe02f8..61a6e5d9 100644 --- a/packages/stack/src/utils/CardAnimationContext.tsx +++ b/packages/stack/src/utils/CardAnimationContext.tsx @@ -1,4 +1,5 @@ import * as React from 'react'; + import type { StackCardInterpolationProps } from '../types'; export default React.createContext( diff --git a/packages/stack/src/utils/getDistanceForDirection.tsx b/packages/stack/src/utils/getDistanceForDirection.tsx index 2bf470a2..603fcc70 100644 --- a/packages/stack/src/utils/getDistanceForDirection.tsx +++ b/packages/stack/src/utils/getDistanceForDirection.tsx @@ -1,5 +1,5 @@ -import getInvertedMultiplier from './getInvertedMultiplier'; import type { GestureDirection, Layout } from '../types'; +import getInvertedMultiplier from './getInvertedMultiplier'; export default function getDistanceForDirection( layout: Layout, diff --git a/packages/stack/src/utils/getInvertedMultiplier.tsx b/packages/stack/src/utils/getInvertedMultiplier.tsx index 1156b29f..5f03812a 100644 --- a/packages/stack/src/utils/getInvertedMultiplier.tsx +++ b/packages/stack/src/utils/getInvertedMultiplier.tsx @@ -1,4 +1,5 @@ import { I18nManager } from 'react-native'; + import type { GestureDirection } from '../types'; export default function getInvertedMultiplier( diff --git a/packages/stack/src/utils/useCardAnimation.tsx b/packages/stack/src/utils/useCardAnimation.tsx index 26d4529a..2a050a62 100644 --- a/packages/stack/src/utils/useCardAnimation.tsx +++ b/packages/stack/src/utils/useCardAnimation.tsx @@ -1,4 +1,5 @@ import * as React from 'react'; + import CardAnimationContext from './CardAnimationContext'; export default function useCardAnimation() { diff --git a/packages/stack/src/utils/useGestureHandlerRef.tsx b/packages/stack/src/utils/useGestureHandlerRef.tsx index 0a34f174..d58af53e 100644 --- a/packages/stack/src/utils/useGestureHandlerRef.tsx +++ b/packages/stack/src/utils/useGestureHandlerRef.tsx @@ -1,4 +1,5 @@ import * as React from 'react'; + import StackGestureRefContext from './GestureHandlerRefContext'; export default function useGestureHandlerRef() { diff --git a/packages/stack/src/utils/useKeyboardManager.tsx b/packages/stack/src/utils/useKeyboardManager.tsx index 33b2d452..dcea4098 100644 --- a/packages/stack/src/utils/useKeyboardManager.tsx +++ b/packages/stack/src/utils/useKeyboardManager.tsx @@ -1,5 +1,5 @@ import * as React from 'react'; -import { TextInput, Keyboard, HostComponent } from 'react-native'; +import { HostComponent, Keyboard, TextInput } from 'react-native'; type InputRef = React.ElementRef> | undefined; diff --git a/packages/stack/src/views/GestureHandlerNative.tsx b/packages/stack/src/views/GestureHandlerNative.tsx index c00d675e..ddc95354 100644 --- a/packages/stack/src/views/GestureHandlerNative.tsx +++ b/packages/stack/src/views/GestureHandlerNative.tsx @@ -3,6 +3,7 @@ import { PanGestureHandler as PanGestureHandlerNative, PanGestureHandlerProperties, } from 'react-native-gesture-handler'; + import GestureHandlerRefContext from '../utils/GestureHandlerRefContext'; export function PanGestureHandler(props: PanGestureHandlerProperties) { diff --git a/packages/stack/src/views/Header/Header.tsx b/packages/stack/src/views/Header/Header.tsx index 48e0774e..99123c97 100644 --- a/packages/stack/src/views/Header/Header.tsx +++ b/packages/stack/src/views/Header/Header.tsx @@ -1,12 +1,12 @@ +import { getHeaderTitle, HeaderShownContext } from '@react-navigation/elements'; +import { StackActions, useNavigationState } from '@react-navigation/native'; import * as React from 'react'; import { useSafeAreaInsets } from 'react-native-safe-area-context'; -import { StackActions, useNavigationState } from '@react-navigation/native'; -import { getHeaderTitle, HeaderShownContext } from '@react-navigation/elements'; -import HeaderSegment from './HeaderSegment'; -import ModalPresentationContext from '../../utils/ModalPresentationContext'; -import debounce from '../../utils/debounce'; import type { StackHeaderProps } from '../../types'; +import debounce from '../../utils/debounce'; +import ModalPresentationContext from '../../utils/ModalPresentationContext'; +import HeaderSegment from './HeaderSegment'; export default React.memo(function Header({ back, diff --git a/packages/stack/src/views/Header/HeaderContainer.tsx b/packages/stack/src/views/Header/HeaderContainer.tsx index 10e5c5f1..7e69fa40 100644 --- a/packages/stack/src/views/Header/HeaderContainer.tsx +++ b/packages/stack/src/views/Header/HeaderContainer.tsx @@ -1,27 +1,27 @@ -import * as React from 'react'; -import { Animated, View, StyleSheet, StyleProp, ViewStyle } from 'react-native'; +import { getHeaderTitle, HeaderBackContext } from '@react-navigation/elements'; import { NavigationContext, NavigationRouteContext, - Route, ParamListBase, + Route, } from '@react-navigation/native'; -import { HeaderBackContext, getHeaderTitle } from '@react-navigation/elements'; +import * as React from 'react'; +import { Animated, StyleProp, StyleSheet, View, ViewStyle } from 'react-native'; -import Header from './Header'; import { - forSlideLeft, - forSlideUp, forNoAnimation, + forSlideLeft, forSlideRight, + forSlideUp, } from '../../TransitionConfigs/HeaderStyleInterpolators'; import type { Layout, Scene, - StackNavigationProp, - StackHeaderProps, StackHeaderMode, + StackHeaderProps, + StackNavigationProp, } from '../../types'; +import Header from './Header'; export type Props = { mode: StackHeaderMode; diff --git a/packages/stack/src/views/Header/HeaderSegment.tsx b/packages/stack/src/views/Header/HeaderSegment.tsx index 23a55cd8..2f6fa2a7 100644 --- a/packages/stack/src/views/Header/HeaderSegment.tsx +++ b/packages/stack/src/views/Header/HeaderSegment.tsx @@ -1,25 +1,26 @@ -import * as React from 'react'; -import { - Animated, - StyleSheet, - ViewStyle, - LayoutChangeEvent, -} from 'react-native'; -import type { EdgeInsets } from 'react-native-safe-area-context'; import { + getDefaultHeaderHeight, Header, HeaderBackButton, HeaderShownContext, HeaderTitle, - getDefaultHeaderHeight, } from '@react-navigation/elements'; -import memoize from '../../utils/memoize'; +import * as React from 'react'; +import { + Animated, + LayoutChangeEvent, + StyleSheet, + ViewStyle, +} from 'react-native'; +import type { EdgeInsets } from 'react-native-safe-area-context'; + import type { Layout, - StackHeaderStyleInterpolator, SceneProgress, StackHeaderOptions, + StackHeaderStyleInterpolator, } from '../../types'; +import memoize from '../../utils/memoize'; type Props = StackHeaderOptions & { layout: Layout; diff --git a/packages/stack/src/views/ModalStatusBarManager.tsx b/packages/stack/src/views/ModalStatusBarManager.tsx index d99730d9..086cd91c 100644 --- a/packages/stack/src/views/ModalStatusBarManager.tsx +++ b/packages/stack/src/views/ModalStatusBarManager.tsx @@ -1,7 +1,8 @@ +import { useTheme } from '@react-navigation/native'; import * as React from 'react'; import { StatusBar, StyleSheet } from 'react-native'; -import { useTheme } from '@react-navigation/native'; import type { EdgeInsets } from 'react-native-safe-area-context'; + import type { Layout } from '../types'; type Props = { diff --git a/packages/stack/src/views/Stack/Card.tsx b/packages/stack/src/views/Stack/Card.tsx index 14d8a454..d003fa89 100755 --- a/packages/stack/src/views/Stack/Card.tsx +++ b/packages/stack/src/views/Stack/Card.tsx @@ -1,36 +1,36 @@ +import Color from 'color'; import * as React from 'react'; import { Animated, - View, - StyleSheet, - ViewProps, - StyleProp, - ViewStyle, - Platform, InteractionManager, + Platform, + StyleProp, + StyleSheet, + View, + ViewProps, + ViewStyle, } from 'react-native'; import type { EdgeInsets } from 'react-native-safe-area-context'; -import Color from 'color'; -import CardSheet from './CardSheet'; -import { - PanGestureHandler, - GestureState, - PanGestureHandlerGestureEvent, -} from '../GestureHandler'; -import ModalStatusBarManager from '../ModalStatusBarManager'; import { forModalPresentationIOS } from '../../TransitionConfigs/CardStyleInterpolators'; +import type { + GestureDirection, + Layout, + StackCardInterpolationProps, + StackCardStyleInterpolator, + TransitionSpec, +} from '../../types'; import CardAnimationContext from '../../utils/CardAnimationContext'; import getDistanceForDirection from '../../utils/getDistanceForDirection'; import getInvertedMultiplier from '../../utils/getInvertedMultiplier'; import memoize from '../../utils/memoize'; -import type { - TransitionSpec, - StackCardStyleInterpolator, - GestureDirection, - Layout, - StackCardInterpolationProps, -} from '../../types'; +import { + GestureState, + PanGestureHandler, + PanGestureHandlerGestureEvent, +} from '../GestureHandler'; +import ModalStatusBarManager from '../ModalStatusBarManager'; +import CardSheet from './CardSheet'; type Props = ViewProps & { // index: number; diff --git a/packages/stack/src/views/Stack/CardContainer.tsx b/packages/stack/src/views/Stack/CardContainer.tsx index fde0448c..bf9019a4 100644 --- a/packages/stack/src/views/Stack/CardContainer.tsx +++ b/packages/stack/src/views/Stack/CardContainer.tsx @@ -1,18 +1,19 @@ -import * as React from 'react'; -import { Animated, View, StyleSheet } from 'react-native'; -import { Route, useTheme } from '@react-navigation/native'; import { - HeaderShownContext, - HeaderHeightContext, - HeaderBackContext, getHeaderTitle, + HeaderBackContext, + HeaderHeightContext, + HeaderShownContext, } from '@react-navigation/elements'; -import type { Props as HeaderContainerProps } from '../Header/HeaderContainer'; -import Card from './Card'; +import { Route, useTheme } from '@react-navigation/native'; +import * as React from 'react'; +import { Animated, StyleSheet, View } from 'react-native'; + import { forModalPresentationIOS } from '../../TransitionConfigs/CardStyleInterpolators'; +import type { Layout, Scene } from '../../types'; import ModalPresentationContext from '../../utils/ModalPresentationContext'; import useKeyboardManager from '../../utils/useKeyboardManager'; -import type { Layout, Scene } from '../../types'; +import type { Props as HeaderContainerProps } from '../Header/HeaderContainer'; +import Card from './Card'; type Props = { index: number; diff --git a/packages/stack/src/views/Stack/CardSheet.tsx b/packages/stack/src/views/Stack/CardSheet.tsx index e504a812..3ebe4f57 100644 --- a/packages/stack/src/views/Stack/CardSheet.tsx +++ b/packages/stack/src/views/Stack/CardSheet.tsx @@ -1,5 +1,5 @@ import * as React from 'react'; -import { View, ViewProps, StyleSheet } from 'react-native'; +import { StyleSheet, View, ViewProps } from 'react-native'; type Props = ViewProps & { enabled: boolean; diff --git a/packages/stack/src/views/Stack/CardStack.tsx b/packages/stack/src/views/Stack/CardStack.tsx index 069b2aba..9f88d8a9 100755 --- a/packages/stack/src/views/Stack/CardStack.tsx +++ b/packages/stack/src/views/Stack/CardStack.tsx @@ -1,36 +1,32 @@ -import * as React from 'react'; import { - Animated, - StyleSheet, - LayoutChangeEvent, - Platform, -} from 'react-native'; -import type { EdgeInsets } from 'react-native-safe-area-context'; -import Color from 'color'; + Background, + getDefaultHeaderHeight, + SafeAreaProviderCompat, +} from '@react-navigation/elements'; import type { ParamListBase, Route, StackNavigationState, } from '@react-navigation/native'; +import Color from 'color'; +import * as React from 'react'; import { - getDefaultHeaderHeight, - SafeAreaProviderCompat, - Background, -} from '@react-navigation/elements'; + Animated, + LayoutChangeEvent, + Platform, + StyleSheet, +} from 'react-native'; +import type { EdgeInsets } from 'react-native-safe-area-context'; -import { MaybeScreenContainer, MaybeScreen } from '../Screens'; -import type { Props as HeaderContainerProps } from '../Header/HeaderContainer'; -import CardContainer from './CardContainer'; -import { - DefaultTransition, - ModalTransition, - ModalFadeTransition, -} from '../../TransitionConfigs/TransitionPresets'; import { forModalPresentationIOS, forNoAnimation as forNoAnimationCard, } from '../../TransitionConfigs/CardStyleInterpolators'; -import getDistanceForDirection from '../../utils/getDistanceForDirection'; +import { + DefaultTransition, + ModalFadeTransition, + ModalTransition, +} from '../../TransitionConfigs/TransitionPresets'; import type { Layout, Scene, @@ -39,6 +35,10 @@ import type { StackHeaderMode, StackNavigationOptions, } from '../../types'; +import getDistanceForDirection from '../../utils/getDistanceForDirection'; +import type { Props as HeaderContainerProps } from '../Header/HeaderContainer'; +import { MaybeScreen, MaybeScreenContainer } from '../Screens'; +import CardContainer from './CardContainer'; type GestureValues = { [key: string]: Animated.Value; diff --git a/packages/stack/src/views/Stack/StackView.tsx b/packages/stack/src/views/Stack/StackView.tsx index 739bc4ef..e1975590 100644 --- a/packages/stack/src/views/Stack/StackView.tsx +++ b/packages/stack/src/views/Stack/StackView.tsx @@ -1,30 +1,30 @@ -import * as React from 'react'; -import { View, StyleSheet } from 'react-native'; import { - SafeAreaInsetsContext, - EdgeInsets, -} from 'react-native-safe-area-context'; + HeaderShownContext, + SafeAreaProviderCompat, +} from '@react-navigation/elements'; import { + ParamListBase, + Route, StackActions, StackNavigationState, - Route, - ParamListBase, } from '@react-navigation/native'; +import * as React from 'react'; +import { StyleSheet, View } from 'react-native'; import { - SafeAreaProviderCompat, - HeaderShownContext, -} from '@react-navigation/elements'; + EdgeInsets, + SafeAreaInsetsContext, +} from 'react-native-safe-area-context'; +import type { + StackDescriptorMap, + StackNavigationConfig, + StackNavigationHelpers, +} from '../../types'; import { GestureHandlerRootView } from '../GestureHandler'; -import CardStack from './CardStack'; import HeaderContainer, { Props as HeaderContainerProps, } from '../Header/HeaderContainer'; -import type { - StackNavigationHelpers, - StackNavigationConfig, - StackDescriptorMap, -} from '../../types'; +import CardStack from './CardStack'; type Props = StackNavigationConfig & { state: StackNavigationState; diff --git a/yarn.lock b/yarn.lock index 5ae7bfec..701a0c88 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9518,6 +9518,11 @@ eslint-plugin-react@^7.23.0: resolve "^2.0.0-next.3" string.prototype.matchall "^4.0.4" +eslint-plugin-simple-import-sort@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-7.0.0.tgz#a1dad262f46d2184a90095a60c66fef74727f0f8" + integrity sha512-U3vEDB5zhYPNfxT5TYR7u01dboFZp+HNpnGhkDB2g/2E4wZ/g1Q9Ton8UwCLfRV9yAKyYqDh62oHOamvkFxsvw== + eslint-rule-composer@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz#79320c927b0c5c0d3d3d2b76c8b4a488f25bbaf9"