Skip to content
This repository has been archived by the owner on Jan 4, 2025. It is now read-only.

Commit

Permalink
added paper, screens
Browse files Browse the repository at this point in the history
  • Loading branch information
RazerMoon committed Feb 6, 2021
1 parent 98b8bec commit add181a
Show file tree
Hide file tree
Showing 15 changed files with 365 additions and 74 deletions.
30 changes: 20 additions & 10 deletions App.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import React, { useEffect, useState } from "react";
import AppLoading from "expo-app-loading";
import { NavigationContainer } from "@react-navigation/native";
import { createStackNavigator } from "@react-navigation/stack";
import { Provider as PaperProvider } from "react-native-paper";

// eslint-disable-next-line camelcase
import {
Expand All @@ -12,12 +13,14 @@ import {
Inter_600SemiBold,
} from "@expo-google-fonts/inter";

import Home from "./src/modules/Home";
import Settings from "./src/modules/Settings";
import Home from "./src/screens/Home";
import Settings from "./src/screens/Settings";

import DarkModeContext from "./src/contexts/DarkModeContext";

import DarkTheme from "./src/themes/DarkTheme";
import DefaultTheme from "./src/themes/DefaultTheme";
import About from "./src/screens/About";

const Stack = createStackNavigator();

Expand All @@ -34,13 +37,20 @@ export default function App(): JSX.Element {
return !fontsLoaded ? (
<AppLoading />
) : (
<NavigationContainer theme={theme}>
<DarkModeContext.Provider value={{ dark, setDark }}>
<Stack.Navigator initialRouteName="Home">
<Stack.Screen name="Home" component={Home} />
<Stack.Screen name="Settings" component={Settings} />
</Stack.Navigator>
</DarkModeContext.Provider>
</NavigationContainer>
<DarkModeContext.Provider value={{ dark, setDark }}>
<NavigationContainer theme={theme}>
<PaperProvider theme={theme}>
<Stack.Navigator initialRouteName="Home">
<Stack.Screen
name="Home"
component={Home}
options={{ headerTitle: "Overall score" }}
/>
<Stack.Screen name="Settings" component={Settings} />
<Stack.Screen name="About" component={About} />
</Stack.Navigator>
</PaperProvider>
</NavigationContainer>
</DarkModeContext.Provider>
);
}
10 changes: 8 additions & 2 deletions babel.config.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
module.exports = function(api) {
// eslint-disable-next-line func-names
module.exports = function (api) {
api.cache(true);
return {
presets: ['babel-preset-expo'],
presets: ["babel-preset-expo"],
env: {
production: {
plugins: ["react-native-paper/babel"],
},
},
};
};
2 changes: 2 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
},
"dependencies": {
"@expo-google-fonts/inter": "^0.1.0",
"@expo/vector-icons": "^12.0.3",
"@react-native-async-storage/async-storage": "^1.13.2",
"@react-native-community/masked-view": "0.1.10",
"@react-navigation/native": "^5.9.2",
Expand All @@ -23,6 +24,7 @@
"react-dom": "16.13.1",
"react-native": "https://github.com/expo/react-native/archive/sdk-40.0.1.tar.gz",
"react-native-gesture-handler": "~1.8.0",
"react-native-paper": "^4.7.1",
"react-native-reanimated": "~1.13.0",
"react-native-safe-area-context": "3.1.9",
"react-native-screens": "~2.15.0"
Expand Down
18 changes: 18 additions & 0 deletions src/components/DarkModeSwitch.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import React, { useContext } from "react";
import { Switch } from "react-native-paper";
import DarkModeContext from "../contexts/DarkModeContext";

const DarkModeSwitch = (): JSX.Element => {
const { dark, setDark } = useContext(DarkModeContext);

return (
<Switch
value={dark}
onValueChange={() => setDark((prev) => !prev)}
accessibilityComponentType=""
accessibilityTraits=""
/>
);
};

export default DarkModeSwitch;
31 changes: 0 additions & 31 deletions src/modules/Home.tsx

This file was deleted.

19 changes: 0 additions & 19 deletions src/modules/Settings.tsx

This file was deleted.

13 changes: 13 additions & 0 deletions src/screens/About.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import React from "react";
import { View } from "react-native";
import { Text } from "react-native-paper";

export default function About(): JSX.Element {
return (
<View>
<Text accessibilityComponentType="" accessibilityTraits="">
Hello there
</Text>
</View>
);
}
35 changes: 35 additions & 0 deletions src/screens/Home.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
import React from "react";
import { View } from "react-native";

import { IconButton, Text } from "react-native-paper";
import { HomeProps as Props } from "../utils/StackTypes";

export default function Home({ navigation }: Props): JSX.Element {
React.useLayoutEffect(() => {
navigation.setOptions({
headerRight: () => (
<IconButton
icon="cog-outline"
onPress={() => navigation.navigate("Settings")}
accessibilityComponentType=""
accessibilityTraits=""
/>
),
});
}, [navigation]);

return (
<View
style={{
flex: 1,
flexDirection: "column",
justifyContent: "center",
alignItems: "center",
}}
>
<Text accessibilityComponentType="" accessibilityTraits="">
Hello
</Text>
</View>
);
}
38 changes: 38 additions & 0 deletions src/screens/Settings.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
import React from "react";
import { ScrollView } from "react-native";
import { Divider, IconButton, List } from "react-native-paper";
import DarkModeSwitch from "../components/DarkModeSwitch";

import { SettingsProps as Props } from "../utils/StackTypes";

export default function Settings({ navigation }: Props): JSX.Element {
React.useLayoutEffect(() => {
navigation.setOptions({
headerRight: () => (
<IconButton
icon="information-outline"
onPress={() => navigation.navigate("About")}
accessibilityComponentType=""
accessibilityTraits=""
/>
),
});
}, [navigation]);

return (
<ScrollView
style={{
flex: 1,
}}
>
<List.Item
title="Dark mode"
accessibilityComponentType=""
accessibilityTraits=""
right={() => <DarkModeSwitch />}
left={() => <List.Icon icon="weather-night" />}
/>
<Divider accessibilityComponentType="" accessibilityTraits="" />
</ScrollView>
);
}
File renamed without changes.
7 changes: 5 additions & 2 deletions src/themes/DarkTheme.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
import { DarkTheme as _DarkTheme } from "@react-navigation/native";
import { DarkTheme as _DarkThemePaper } from "react-native-paper";

const DarkTheme = {
..._DarkTheme,
..._DarkThemePaper,
colors: {
..._DarkTheme.colors,
primary: "rgb(37, 165, 95)",
background: "rgb(24, 26, 32)",
..._DarkThemePaper.colors,
primary: "#25A55F",
background: "#181A20",
},
};

Expand Down
3 changes: 3 additions & 0 deletions src/themes/DefaultTheme.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
import { DefaultTheme as _DefaultTheme } from "@react-navigation/native";
import { DefaultTheme as _DefaultThemePaper } from "react-native-paper";

const DefaultTheme = {
..._DefaultTheme,
..._DefaultThemePaper,
colors: {
..._DefaultTheme.colors,
..._DefaultThemePaper.colors,
primary: "rgb(37, 165, 95)",
background: "rgb(249, 249, 249)",
},
Expand Down
11 changes: 11 additions & 0 deletions src/utils/StackTypes.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import { StackScreenProps } from "@react-navigation/stack";

type RootStackParamList = {
Home: undefined;
Settings: undefined;
About: undefined;
Feed: { sort: "latest" | "top" } | undefined;
};

export type HomeProps = StackScreenProps<RootStackParamList, "Home">;
export type SettingsProps = StackScreenProps<RootStackParamList, "Settings">;
Loading

0 comments on commit add181a

Please sign in to comment.