Skip to content

Commit 92af1fe

Browse files
committed
fix example on web
1 parent 4ea96e8 commit 92af1fe

File tree

10 files changed

+42
-183
lines changed

10 files changed

+42
-183
lines changed

apps/example/src/app/+html.tsx

-46
This file was deleted.

apps/example/src/app/_layout.tsx

+7-9
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
import FontAwesome from '@expo/vector-icons/FontAwesome';
2-
import { DarkTheme, DefaultTheme, ThemeProvider } from '@react-navigation/native';
32
import { useFonts } from 'expo-font';
43
import { SplashScreen, Stack } from 'expo-router';
54
import { useEffect } from 'react';
6-
import { useColorScheme } from 'react-native';
75

86
export {
97
// Catch any errors thrown by the Layout component.
@@ -15,6 +13,10 @@ import DevToolsPluginsContainer from '@/components/DevToolsPluginsContainer';
1513
// Prevent the splash screen from auto-hiding before asset loading is complete.
1614
SplashScreen.preventAutoHideAsync();
1715

16+
export const unstable_settings = {
17+
initialRouteName: 'index',
18+
};
19+
1820
export default function RootLayout() {
1921
const [loaded, error] = useFonts({
2022
SpaceMono: require('../../assets/fonts/SpaceMono-Regular.ttf'),
@@ -40,13 +42,9 @@ export default function RootLayout() {
4042
}
4143

4244
function RootLayoutNav() {
43-
const colorScheme = useColorScheme();
44-
4545
return (
46-
<ThemeProvider value={colorScheme === 'dark' ? DarkTheme : DefaultTheme}>
47-
<DevToolsPluginsContainer>
48-
<Stack />
49-
</DevToolsPluginsContainer>
50-
</ThemeProvider>
46+
<DevToolsPluginsContainer>
47+
<Stack />
48+
</DevToolsPluginsContainer>
5149
);
5250
}

apps/example/src/app/index.tsx

+1-3
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
import FontAwesome from '@expo/vector-icons/FontAwesome';
22
import { Link, Stack, type LinkProps } from 'expo-router';
3-
import { Pressable, StyleSheet } from 'react-native';
3+
import { Text, View, Pressable, StyleSheet } from 'react-native';
44
import { SafeAreaView } from 'react-native-safe-area-context';
55

6-
import { Text, View } from '@/components/Themed';
7-
86
export default function TesterScreen() {
97
return (
108
<SafeAreaView style={styles.outerContainer}>

apps/example/src/app/react-query/MovieDetailsScreen.tsx apps/example/src/app/react-query/[movie].tsx

+19-21
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,29 @@
1-
import * as React from 'react';
2-
import { View, RefreshControl, StyleSheet, ScrollView } from 'react-native';
3-
import { Title, Paragraph } from 'react-native-paper';
4-
import { NativeStackNavigationProp } from '@react-navigation/native-stack';
5-
import { RouteProp } from '@react-navigation/native';
6-
import { useQuery } from '@tanstack/react-query';
7-
8-
import { LoadingIndicator } from '@/react-query/components/LoadingIndicator';
91
import { ErrorMessage } from '@/react-query/components/ErrorMessage';
2+
import { LoadingIndicator } from '@/react-query/components/LoadingIndicator';
103
import { useRefreshByUser } from '@/react-query/hooks/useRefreshByUser';
114
import { fetchMovie, MovieDetails } from '@/react-query/lib/api';
12-
import type { MoviesStackNavigator } from '@/react-query/types';
5+
import { useQuery } from '@tanstack/react-query';
6+
import { Stack, useLocalSearchParams } from 'expo-router';
7+
import * as React from 'react';
8+
import { RefreshControl, ScrollView, StyleSheet, View } from 'react-native';
9+
import { Paragraph, Title } from 'react-native-paper';
1310

14-
type MoviesDetailsScreenNavigationProp = NativeStackNavigationProp<
15-
MoviesStackNavigator,
16-
'MovieDetails'
17-
>;
11+
export default function MovieDetailsScreen() {
12+
const { movie } = useLocalSearchParams<{ movie: string }>();
1813

19-
type Props = {
20-
navigation: MoviesDetailsScreenNavigationProp;
21-
route: RouteProp<MoviesStackNavigator, 'MovieDetails'>;
22-
};
14+
return (
15+
<>
16+
<Stack.Screen options={{ title: movie }} />
17+
<MovieDetailsInfo movie={movie} />
18+
</>
19+
);
20+
}
2321

24-
export default function MovieDetailsScreen({ route }: Props) {
22+
function MovieDetailsInfo({ movie }: { movie: string }) {
2523
const { isPending, error, data, refetch } = useQuery<MovieDetails, Error>({
26-
queryKey: ['movie', route.params.movie.title],
27-
queryFn: () => fetchMovie(route.params.movie.title),
28-
initialData: route.params.movie as MovieDetails,
24+
queryKey: ['movie', movie],
25+
queryFn: () => fetchMovie(movie),
26+
initialData: { title: movie } as MovieDetails,
2927
});
3028

3129
const { isRefetchingByUser, refetchByUser } = useRefreshByUser(refetch);

apps/example/src/app/react-query/_layout.tsx

+6-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Slot } from 'expo-router';
1+
import { Stack } from 'expo-router';
22
import { AppStateStatus, Platform } from 'react-native';
33
import { useReactQueryDevTools } from '@dev-plugins/react-query';
44
import { QueryClient, QueryClientProvider, focusManager } from '@tanstack/react-query';
@@ -17,14 +17,18 @@ const queryClient = new QueryClient({
1717
defaultOptions: { queries: { retry: 2 } },
1818
});
1919

20+
export const unstable_settings = {
21+
initialRouteName: 'index',
22+
};
23+
2024
export default function Layout() {
2125
useAppState(onAppStateChange);
2226
useOnlineManager();
2327
useReactQueryDevTools(queryClient);
2428

2529
return (
2630
<QueryClientProvider client={queryClient}>
27-
<Slot />
31+
<Stack />
2832
</QueryClientProvider>
2933
);
3034
}

apps/example/src/app/react-query/index.tsx

+9-15
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,16 @@
11
import * as React from 'react';
22
import { FlatList, RefreshControl, StyleSheet, View } from 'react-native';
3-
import { Stack } from 'expo-router';
3+
import { Stack, useNavigation } from 'expo-router';
44
import { useQuery } from '@tanstack/react-query';
55

6-
import { NativeStackNavigationProp } from '@react-navigation/native-stack';
7-
import { LoadingIndicator } from '@/react-query/components/LoadingIndicator';
8-
import { ErrorMessage } from '@/react-query/components/ErrorMessage';
96
import { Divider } from '@/react-query/components/Divider';
107
import { ListItem } from '@/react-query/components/ListItem';
118
import { useRefreshByUser } from '@/react-query/hooks/useRefreshByUser';
129
import { useRefreshOnFocus } from '@/react-query/hooks/useRefreshOnFocus';
1310
import { fetchMovies, Movie } from '@/react-query/lib/api';
14-
import { MoviesStackNavigator } from '@/react-query/types';
1511

16-
type MoviesListScreenNavigationProp = NativeStackNavigationProp<MoviesStackNavigator, 'MoviesList'>;
17-
18-
type Props = {
19-
navigation: MoviesListScreenNavigationProp;
20-
};
21-
22-
export default function MoviesListScreen({ navigation }: Props) {
12+
export default function MoviesListScreen() {
13+
const navigation = useNavigation();
2314
const { isPending, error, data, refetch } = useQuery<Movie[], Error>({
2415
queryKey: ['movies'],
2516
queryFn: fetchMovies,
@@ -29,8 +20,10 @@ export default function MoviesListScreen({ navigation }: Props) {
2920

3021
const onListItemPress = React.useCallback(
3122
(movie: any) => {
32-
navigation.navigate('MovieDetails', {
33-
movie,
23+
console.log('movie:', movie);
24+
// @ts-expect-error: untyped
25+
navigation.navigate('[movie]', {
26+
movie: movie.title,
3427
});
3528
},
3629
[navigation]
@@ -53,7 +46,8 @@ export default function MoviesListScreen({ navigation }: Props) {
5346
ItemSeparatorComponent={() => <Divider />}
5447
refreshControl={
5548
<RefreshControl refreshing={isRefetchingByUser} onRefresh={refetchByUser} />
56-
}></FlatList>
49+
}
50+
/>
5751
</View>
5852
);
5953
}

apps/example/src/components/ExternalLink.tsx

-28
This file was deleted.

apps/example/src/components/StyledText.tsx

-5
This file was deleted.

apps/example/src/components/Themed.tsx

-44
This file was deleted.

apps/example/src/components/__tests__/StyledText-test.js

-10
This file was deleted.

0 commit comments

Comments
 (0)