Skip to content

Commit 480e046

Browse files
authored
Merge pull request #262 from flexbox/feature/bump-sdk-52
Feature/bump sdk 52
2 parents 7147b61 + a45c49a commit 480e046

36 files changed

+3135
-4163
lines changed

Diff for: hackathon/spacecraft/App.tsx

+4-5
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
1+
import { AuthenticationProvider } from "@/context/Authentication";
2+
import { NetworkProvider } from "@/context/Network";
3+
import { useAppearanceTheme } from "@/hooks/useAppearanceTheme";
4+
import { Navigator } from "@/navigation/Navigator";
15
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
26
import Constants from "expo-constants";
37
import { Provider as PaperProvider } from "react-native-paper";
48

5-
import { AuthenticationProvider } from "~/context/Authentication";
6-
import { NetworkProvider } from "~/context/Network";
7-
import { useAppearanceTheme } from "~/hooks/useAppearanceTheme";
8-
import { Navigator } from "~/navigation/Navigator";
9-
109
const queryClient = new QueryClient();
1110

1211
const App = () => {

Diff for: hackathon/spacecraft/app.config.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
module.exports = {
22
android: {
33
adaptiveIcon: {
4-
backgroundColor: "#FFFFFF",
4+
backgroundColor: "#ffffff",
55
foregroundImage: "./assets/adaptive-icon.png",
66
},
77
package: "weshipit.today.spacecraft",
@@ -24,6 +24,7 @@ module.exports = {
2424
supportsTablet: true,
2525
},
2626
name: "spacecraft",
27+
newArchEnabled: true,
2728
orientation: "portrait",
2829
owner: "weshipit",
2930
plugins: [

Diff for: hackathon/spacecraft/jest.setup.js

-3
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,5 @@ jest.mock("react-native-reanimated", () => {
1414
return Reanimated;
1515
});
1616

17-
// Silence the warning: Animated: `useNativeDriver` is not supported because the native animated module is missing
18-
jest.mock("react-native/Libraries/Animated/NativeAnimatedHelper");
19-
2017
// fixing `ReferenceError: You are trying to `import` a file after the Jest environment has been torn down.`
2118
jest.useFakeTimers();

Diff for: hackathon/spacecraft/package.json

+25-25
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,11 @@
2626
},
2727
"dependencies": {
2828
"@dev-plugins/react-navigation": "^0.0.6",
29-
"@expo/metro-runtime": "~3.2.1",
29+
"@expo/metro-runtime": "~4.0.1",
3030
"@expo/vector-icons": "^14.0.0",
3131
"@react-native-async-storage/async-storage": "1.23.1",
3232
"@react-native-community/masked-view": "0.1.11",
33-
"@react-native-community/netinfo": "11.3.1",
33+
"@react-native-community/netinfo": "11.4.1",
3434
"@react-navigation/bottom-tabs": "^6.5.5",
3535
"@react-navigation/native": "^6.1.1",
3636
"@react-navigation/native-stack": "^6.9.7",
@@ -39,34 +39,34 @@
3939
"babel-core": "^7.0.0-bridge.0",
4040
"babel-jest": "^29.5.0",
4141
"deepmerge": "^4.3.1",
42-
"expo": "^51.0.0",
43-
"expo-application": "~5.9.1",
44-
"expo-constants": "~16.0.1",
45-
"expo-image": "~1.12.9",
46-
"expo-linking": "~6.3.1",
47-
"expo-status-bar": "~1.12.1",
48-
"expo-store-review": "~7.0.2",
49-
"expo-updates": "~0.25.14",
50-
"expo-web-browser": "~13.0.3",
51-
"react": "18.2.0",
42+
"expo": "^52.0.27",
43+
"expo-application": "~6.0.2",
44+
"expo-constants": "~17.0.4",
45+
"expo-image": "~2.0.4",
46+
"expo-linking": "~7.0.4",
47+
"expo-status-bar": "~2.0.1",
48+
"expo-store-review": "~8.0.1",
49+
"expo-updates": "~0.26.13",
50+
"expo-web-browser": "~14.0.2",
51+
"react": "18.3.1",
5252
"react-currency-format": "^1.1.0",
53-
"react-dom": "18.2.0",
54-
"react-native": "0.74.5",
55-
"react-native-gesture-handler": "~2.16.1",
53+
"react-dom": "18.3.1",
54+
"react-native": "0.76.6",
55+
"react-native-gesture-handler": "~2.20.2",
5656
"react-native-offline": "^6.0.0",
5757
"react-native-paper": "^5.12.2",
58-
"react-native-reanimated": "~3.10.1",
59-
"react-native-safe-area-context": "4.10.5",
60-
"react-native-screens": "3.31.1",
58+
"react-native-reanimated": "~3.16.1",
59+
"react-native-safe-area-context": "4.12.0",
60+
"react-native-screens": "~4.4.0",
6161
"react-native-vector-icons": "^10.0.3",
6262
"react-native-web": "~0.19.10",
6363
"rn-placeholder": "^3.0.3"
6464
},
6565
"devDependencies": {
6666
"@babel/core": "^7.24.0",
6767
"@babel/preset-typescript": "^7.18.6",
68-
"@react-native-community/datetimepicker": "8.0.1",
69-
"@react-native-community/slider": "4.5.2",
68+
"@react-native-community/datetimepicker": "8.2.0",
69+
"@react-native-community/slider": "4.5.5",
7070
"@storybook/addon-controls": "^7.6.10",
7171
"@storybook/addon-ondevice-actions": "^7.6.15",
7272
"@storybook/addon-ondevice-backgrounds": "^7.6.15",
@@ -80,16 +80,16 @@
8080
"@testing-library/jest-native": "^5.4.3",
8181
"@testing-library/react-native": "^12.4.3",
8282
"@types/jest": "^29.5.4",
83-
"@types/react": "~18.2.79",
84-
"@types/react-dom": "~18.2.25",
83+
"@types/react": "~18.3.12",
84+
"@types/react-dom": "~18.3.1",
8585
"@typescript-eslint/eslint-plugin": "^7.11.0",
8686
"@typescript-eslint/parser": "^7.11.0",
87-
"app-icon-badge": "^0.0.15",
87+
"app-icon-badge": "^0.1.2",
8888
"babel-loader": "^9.1.3",
8989
"babel-plugin-module-resolver": "^5.0.0",
9090
"babel-plugin-transform-remove-console": "^6.9.4",
9191
"eslint": "^8.56.0",
92-
"eslint-config-expo": "^7.0.0",
92+
"eslint-config-expo": "~8.0.1",
9393
"eslint-config-prettier": "^9.1.0",
9494
"eslint-config-react-native-wcandillon": "^3.9.0",
9595
"eslint-plugin-perfectionist": "^3.3.0",
@@ -99,7 +99,7 @@
9999
"eslint-plugin-react-native": "^4.1.0",
100100
"eslint-plugin-testing-library": "^6.3.0",
101101
"jest": "^29.6.4",
102-
"jest-expo": "~51.0.2",
102+
"jest-expo": "~52.0.3",
103103
"prettier": "^3.2.5",
104104
"typescript": "~5.3.3"
105105
}

Diff for: hackathon/spacecraft/src/components/Card.stories.tsx

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
import type { StarshipProps } from "api/types";
22

3+
import { StarshipCard } from "@/components/StarshipCard";
34
import { NavigationContainer } from "@react-navigation/native";
45

5-
import { StarshipCard } from "~/components/StarshipCard";
6-
76
const shipFixture = {
87
model: "YT-1300 light freighter",
98
name: "Millennium Falcon",

Diff for: hackathon/spacecraft/src/components/FromInput.test.tsx

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
1+
import { FormInput } from "@/components/FromInput";
12
import { fireEvent, render, screen } from "@testing-library/react-native";
23

3-
import { FormInput } from "~/components/FromInput";
4-
54
describe("FormInput", () => {
65
const mock = jest.fn();
76
it("renders correctly", () => {

Diff for: hackathon/spacecraft/src/components/Offline.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1+
import { useNetwork } from "@/context/Network";
2+
import React from "react";
13
import { StyleSheet, Text, View } from "react-native";
24
import { ActivityIndicator, useTheme } from "react-native-paper";
35

4-
import { useNetwork } from "~/context/Network";
5-
66
export const Offline = () => {
77
const { isConnected } = useNetwork();
88
const { colors } = useTheme();

Diff for: hackathon/spacecraft/src/components/PeopleItem.tsx

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
import type { PeopleProps } from "api/types";
22

3+
import { Routes } from "@/navigation/Routes";
34
import { useNavigation } from "@react-navigation/native";
45
import { List } from "react-native-paper";
56

6-
import { Routes } from "~/navigation/Routes";
7-
87
interface PeopleItemProps {
98
people: PeopleProps;
109
}

Diff for: hackathon/spacecraft/src/components/ScreenContainer.tsx

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
import type { ReactNode } from "react";
22

3+
import { Offline } from "@/components/Offline";
34
import { useNavigation } from "@react-navigation/native";
45
import { ScrollView, StyleSheet, View } from "react-native";
56
import { IconButton, Text, useTheme } from "react-native-paper";
67

7-
import { Offline } from "~/components/Offline";
8-
98
interface ScreenContainerProps {
109
accessoryFooter?: ReactNode;
1110
children?: ReactNode;

Diff for: hackathon/spacecraft/src/components/SkeletonList.stories.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { SkeletonList } from "~/components/SkeletonList";
1+
import { SkeletonList } from "@/components/SkeletonList";
22

33
export default {
44
title: "SkeletonList",

Diff for: hackathon/spacecraft/src/components/StarshipCard.test.tsx

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
1+
import { StarshipCard } from "@/components/StarshipCard";
12
import { NavigationContainer } from "@react-navigation/native";
23
import { render, screen } from "@testing-library/react-native";
34

4-
import { StarshipCard } from "~/components/StarshipCard";
5-
65
const shipFixture = {
76
model: "YT-1300 light freighter",
87
name: "Millennium Falcon",

Diff for: hackathon/spacecraft/src/components/StarshipCard.tsx

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
1+
import { Image } from "@/components/Image";
12
import { useNavigation } from "@react-navigation/native";
23
import CurrencyFormat from "react-currency-format";
34
import { Alert, StyleSheet } from "react-native";
45
import { Button, Card, Text } from "react-native-paper";
56
import { FadeInDown, FadeOut } from "react-native-reanimated";
67

7-
import { Image } from "~/components/Image";
8-
98
import type { StarshipProps } from "../../api/types";
109

1110
import { Routes } from "../navigation/Routes";

Diff for: hackathon/spacecraft/src/components/StarshipLoadableList.tsx

+30-19
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,35 @@
1+
import { useStarships } from "@/hooks/useStarships";
2+
import { UseQueryResult } from "@tanstack/react-query";
13
import { StyleSheet, View } from "react-native";
24
import { Text } from "react-native-paper";
35

4-
import { useStarships } from "~/hooks/useStarships";
5-
66
interface StarshipLoadableListProps {
77
starships: string[];
88
}
99

10-
function getRandom(max: number) {
11-
return Math.floor(Math.random() * max);
10+
function randomId() {
11+
return Math.random().toString(36).substring(7);
12+
}
13+
14+
function StarshipLoadableListItem({
15+
result,
16+
}: {
17+
result: UseQueryResult<any, Error>;
18+
}) {
19+
if (result.isLoading) {
20+
return <Text variant="bodyMedium">Loading…</Text>;
21+
}
22+
23+
if (result.isError) {
24+
return <Text variant="bodyMedium">Error 😕</Text>;
25+
}
26+
27+
return (
28+
<View style={styles.container}>
29+
<Text variant="titleMedium">{result.data.name}</Text>
30+
<Text variant="bodyMedium">{result.data.model}</Text>
31+
</View>
32+
);
1233
}
1334

1435
export const StarshipLoadableList = ({
@@ -17,22 +38,12 @@ export const StarshipLoadableList = ({
1738
const queryResult = useStarships(starships);
1839

1940
return queryResult.map((result) => {
20-
if (result.isInitialLoading || result.isLoading) {
21-
return <Text variant="bodyMedium">Loading…</Text>;
22-
}
23-
24-
if (result.isError) {
25-
return <Text variant="bodyMedium">Error 😕</Text>;
26-
}
27-
41+
const id = randomId();
2842
return (
29-
<View
30-
key={getRandom(1000)}
31-
style={styles.container}
32-
>
33-
<Text variant="titleMedium">{result.data.name}</Text>
34-
<Text variant="bodyMedium">{result.data.model}</Text>
35-
</View>
43+
<StarshipLoadableListItem
44+
key={id}
45+
result={result}
46+
/>
3647
);
3748
});
3849
};

Diff for: hackathon/spacecraft/src/hooks/useAppearanceTheme.ts

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
import type { AppStateStatus } from "react-native";
22

3+
import { CombinedDarkTheme, CombinedDefaultTheme } from "@/theme/theme";
34
import { useEffect, useState } from "react";
45
import { Appearance, AppState } from "react-native";
56

6-
import { CombinedDarkTheme, CombinedDefaultTheme } from "~/theme/theme";
7-
87
export const useAppearanceTheme = () => {
98
const [theme, setTheme] = useState(
109
Appearance.getColorScheme() === "dark"

Diff for: hackathon/spacecraft/src/navigation/AuthNavigator.tsx

+3-4
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
1+
import { Routes } from "@/navigation/Routes";
2+
import { LoginScreen } from "@/screens/LoginScreen";
3+
import { TermsScreen } from "@/screens/TermsScreen";
14
import { createNativeStackNavigator } from "@react-navigation/native-stack";
25

3-
import { Routes } from "~/navigation/Routes";
4-
import { LoginScreen } from "~/screens/LoginScreen";
5-
import { TermsScreen } from "~/screens/TermsScreen";
6-
76
const Stack = createNativeStackNavigator();
87

98
export const AuthNavigator = () => {

Diff for: hackathon/spacecraft/src/navigation/BottomTabNavigator.tsx

+5-6
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
1+
import { PilotNavigator } from "@/navigation/PilotNavigator";
2+
import { PlanetNavigator } from "@/navigation/PlanetNavigator";
3+
import { PlusNavigator } from "@/navigation/PlusNavigator";
4+
import { Routes } from "@/navigation/Routes";
5+
import { StarshipNavigator } from "@/navigation/StarshipNavigator";
16
/* eslint-disable react/no-unstable-nested-components */
27
import { FontAwesome5, Ionicons } from "@expo/vector-icons";
38
import { createBottomTabNavigator } from "@react-navigation/bottom-tabs";
49
import { getFocusedRouteNameFromRoute } from "@react-navigation/native";
510
import { useTheme } from "react-native-paper";
611

7-
import { PilotNavigator } from "~/navigation/PilotNavigator";
8-
import { PlanetNavigator } from "~/navigation/PlanetNavigator";
9-
import { PlusNavigator } from "~/navigation/PlusNavigator";
10-
import { Routes } from "~/navigation/Routes";
11-
import { StarshipNavigator } from "~/navigation/StarshipNavigator";
12-
1312
const Tab = createBottomTabNavigator();
1413

1514
export const BottomTabNavigator = () => {

Diff for: hackathon/spacecraft/src/navigation/Navigator.tsx

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
1+
import { useAuthentication } from "@/context/Authentication";
2+
import { useAppearanceTheme } from "@/hooks/useAppearanceTheme";
13
import { useReactNavigationDevTools } from "@dev-plugins/react-navigation";
24
import {
35
NavigationContainer,
46
useNavigationContainerRef,
57
} from "@react-navigation/native";
68
import { createNativeStackNavigator } from "@react-navigation/native-stack";
79

8-
import { useAuthentication } from "~/context/Authentication";
9-
import { useAppearanceTheme } from "~/hooks/useAppearanceTheme";
10-
1110
import { AuthNavigator } from "./AuthNavigator";
1211
import { BottomTabNavigator } from "./BottomTabNavigator";
1312

Diff for: hackathon/spacecraft/src/navigation/PilotNavigator.tsx

+4-5
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
1+
import { Routes } from "@/navigation/Routes";
2+
import { PilotDetailsScreen } from "@/screens/PilotDetailsScreen";
3+
import { PilotScreen } from "@/screens/PilotScreen";
4+
import { StarshipDetailsScreen } from "@/screens/StarshipDetailsScreen";
15
import { createNativeStackNavigator } from "@react-navigation/native-stack";
26

3-
import { Routes } from "~/navigation/Routes";
4-
import { PilotDetailsScreen } from "~/screens/PilotDetailsScreen";
5-
import { PilotScreen } from "~/screens/PilotScreen";
6-
import { StarshipDetailsScreen } from "~/screens/StarshipDetailsScreen";
7-
87
const Stack = createNativeStackNavigator();
98

109
export const PilotNavigator = () => {

Diff for: hackathon/spacecraft/src/navigation/PlanetNavigator.tsx

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
1+
import { PlanetDetailsScreen } from "@/screens/PlanetDetailsScreen";
2+
import { PlanetsScreen } from "@/screens/PlanetsScreen";
13
import { createNativeStackNavigator } from "@react-navigation/native-stack";
24

3-
import { PlanetDetailsScreen } from "~/screens/PlanetDetailsScreen";
4-
import { PlanetsScreen } from "~/screens/PlanetsScreen";
5-
65
import { Routes } from "./Routes";
76

87
const Stack = createNativeStackNavigator();

Diff for: hackathon/spacecraft/src/navigation/PlusNavigator.tsx

+5-6
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
1+
import { Routes } from "@/navigation/Routes";
2+
import { DisappointedScreen } from "@/screens/DisappointedScreen";
3+
import { DoYouLikeScreen } from "@/screens/DoYouLikeScreen";
4+
import { LoveScreen } from "@/screens/LoveScreen";
5+
import { PlusScreen } from "@/screens/PlusScreen";
16
import { createNativeStackNavigator } from "@react-navigation/native-stack";
27

3-
import { Routes } from "~/navigation/Routes";
4-
import { DisappointedScreen } from "~/screens/DisappointedScreen";
5-
import { DoYouLikeScreen } from "~/screens/DoYouLikeScreen";
6-
import { LoveScreen } from "~/screens/LoveScreen";
7-
import { PlusScreen } from "~/screens/PlusScreen";
8-
98
const Stack = createNativeStackNavigator();
109

1110
export const PlusNavigator = () => {

0 commit comments

Comments
 (0)