Remove dark theme

This commit is contained in:
Milan Paunovic
2024-09-23 20:58:48 +02:00
parent e5540c15e3
commit 926af6212b
11 changed files with 122 additions and 28 deletions

6
.github/workflows/.env vendored Executable file
View File

@ -0,0 +1,6 @@
EXPO_ASC_API_KEY_PATH=../AuthKey_F7ZX3C8C69.p8
EXPO_ASC_KEY_ID=F7ZX3C8C69
EXPO_ASC_ISSUER_ID=f7d6175c-75fe-416c-b6d1-0bc9eaf87415
EXPO_APPLE_TEAM_ID=MV9C3PHV87
EXPO_APPLE_TEAM_TYPE=INDIVIDUAL
EXPO_TOKEN=qt2h_4xhuhFB-ArysIkzgpsBtWOrrZ-c_So_S9ch

View File

@ -1,5 +1,5 @@
import {Stack} from "expo-router";
export default function Layout() {
return <Stack screenOptions={{title: ""}}/>
return <Stack screenOptions={{headerShown: false}}/>
}

View File

@ -12,6 +12,7 @@ import functions from "@react-native-firebase/functions";
import firestore from "@react-native-firebase/firestore";
import auth from "@react-native-firebase/auth";
import {QueryClient, QueryClientProvider} from "react-query";
import {Toast} from "react-native-ui-lib";
// Prevent the splash screen from auto-hiding before asset loading is complete.
SplashScreen.preventAutoHideAsync();
@ -26,7 +27,6 @@ if (__DEV__) {
}
export default function RootLayout() {
const colorScheme = useColorScheme();
const [loaded] = useFonts({
SpaceMono: require('../assets/fonts/SpaceMono-Regular.ttf'),
});
@ -44,12 +44,13 @@ export default function RootLayout() {
return (
<QueryClientProvider client={queryClient}>
<AuthContextProvider>
<ThemeProvider value={colorScheme === 'dark' ? DarkTheme : DefaultTheme}>
<ThemeProvider value={DefaultTheme}>
<Stack>
<Stack.Screen name="(auth)" options={{headerShown: false}}/>
<Stack.Screen name="(unauth)" options={{headerShown: false}}/>
<Stack.Screen name="+not-found"/>
</Stack>
<Toast />
</ThemeProvider>
</AuthContextProvider>
</QueryClientProvider>

View File

@ -1,29 +1,19 @@
import { View, Text } from "react-native-ui-lib";
import React, { useState } from "react";
import {View} from "react-native-ui-lib";
import React, {useState} from "react";
import SignUpPage from "./SignUpPage";
import SignInPage from "./SignInPage";
import { useSignUp } from "@/hooks/firebase/useSignUp";
import { StyleSheet } from "react-native";
import {ResetPasswordPage} from "@/components/pages/main/ResetPasswordPage";
const Entry = () => {
const [isRegister, setIsRegister] = useState<boolean>(false);
const { mutateAsync: signUp } = useSignUp();
const [tab, setTab] = useState<"register" | "login" | "reset-password">("login");
const setRegister = () => {
setIsRegister(true);
};
const unsetRegister = () => {
setIsRegister(false);
};
return (
<View>
{isRegister ? (
<SignUpPage unsetRegister={unsetRegister} />
) : (
<SignInPage setRegister={setRegister} />
)}
</View>
);
return (
<View>
{tab === "register" && <SignUpPage setTab={setTab}/>}
{tab === "login" && <SignInPage setTab={setTab}/>}
{tab === "reset-password" && <ResetPasswordPage setTab={setTab}/>}
</View>
);
};
export default Entry;

View File

@ -0,0 +1,51 @@
import {Button, ButtonSize, Text, TextField, View} from "react-native-ui-lib";
import React, {useState} from "react";
import {useSignIn} from "@/hooks/firebase/useSignIn";
import {StyleSheet} from "react-native";
import {useResetPassword} from "@/hooks/firebase/useResetPassword";
import {isLoading} from "expo-font";
export const ResetPasswordPage = ({setTab}: { setTab: React.Dispatch<React.SetStateAction<"register" | "login" | "reset-password">> }) => {
const [email, setEmail] = useState<string>("");
const {mutateAsync: resetPassword, error, isError, isLoading} = useResetPassword();
const handleResetPassword = async () => {
await resetPassword({email});
alert("Password reset, please check your email")
};
return (
<View padding-10 centerV height={"100%"}>
<Text text70 center>
Please enter your email and reset your password
</Text>
<TextField
placeholder="Email"
value={email}
onChangeText={setEmail}
style={styles.textfield}
/>
<Button
label="Reset Password"
onPress={handleResetPassword}
marginB-20
backgroundColor="#fd1775"
disabled={isLoading}
/>
{isError && <Text center style={{marginBottom: 20}}>{`${error}`}</Text>}
</View>
);
};
const styles = StyleSheet.create({
textfield: {
backgroundColor: "white",
marginVertical: 10,
padding: 30,
height: 45,
borderRadius: 50,
},
});

View File

@ -2,8 +2,9 @@ import {Button, ButtonSize, Text, TextField, View} from "react-native-ui-lib";
import React, {useState} from "react";
import {useSignIn} from "@/hooks/firebase/useSignIn";
import {StyleSheet} from "react-native";
import Toast from 'react-native-toast-message';
const SignInPage = (props: { setRegister: () => any }) => {
const SignInPage = ({setTab}: { setTab: React.Dispatch<React.SetStateAction<"register" | "login" | "reset-password">> }) => {
const [email, setEmail] = useState<string>("");
const [password, setPassword] = useState<string>("");
@ -11,6 +12,12 @@ const SignInPage = (props: { setRegister: () => any }) => {
const handleSignIn = async () => {
await signIn({email, password});
if(!isError) {
Toast.show({
type: "success",
text1: "Password successfully reset, please check your messages."
})
}
};
return (
@ -41,7 +48,7 @@ const SignInPage = (props: { setRegister: () => any }) => {
Don't have an account?
</Text>
<Button
onPress={props.setRegister}
onPress={() => setTab("register")}
label="Sign Up"
link
size={ButtonSize.xSmall}
@ -52,6 +59,23 @@ const SignInPage = (props: { setRegister: () => any }) => {
color="#fd1775"
/>
</View>
<View row centerH marginB-5 gap-5>
<Text text70>
Forgot your password?
</Text>
<Button
onPress={() => setTab("reset-password")}
label="Reset password"
link
size={ButtonSize.xSmall}
padding-0
margin-0
text70
left
color="#fd1775"
/>
</View>
</View>
);
};

View File

@ -5,7 +5,7 @@ import {ProfileType} from "@/contexts/AuthContext";
import {StyleSheet} from "react-native";
import {AntDesign} from "@expo/vector-icons";
const SignUpPage = (props: { unsetRegister: () => any }) => {
const SignUpPage = ({setTab}: { setTab: React.Dispatch<React.SetStateAction<"register" | "login" | "reset-password">> }) => {
const [email, setEmail] = useState<string>("");
const [firstName, setFirstName] = useState<string>("");
const [lastName, setLastName] = useState<string>("");
@ -125,7 +125,7 @@ const SignUpPage = (props: { unsetRegister: () => any }) => {
color="#fd1775"
size={ButtonSize.small}
text70
onPress={props.unsetRegister}
onPress={() => setTab("login")}
/>
</View>
</View>

View File

@ -0,0 +1,16 @@
import {useMutation} from "react-query";
import auth from "@react-native-firebase/auth";
export const useResetPassword = () => {
return useMutation({
mutationKey: ["resetPassword"],
mutationFn: async (
{
email,
}: {
email: string;
}) => {
return await auth().sendPasswordResetEmail(email);
},
});
};

View File

@ -64,6 +64,7 @@
"react-native-safe-area-context": "4.10.5",
"react-native-screens": "3.31.1",
"react-native-svg": "^15.6.0",
"react-native-toast-message": "^2.2.1",
"react-native-ui-lib": "^7.27.0",
"react-native-web": "~0.19.10",
"react-query": "^3.39.3"

View File

@ -8544,6 +8544,11 @@ react-native-swipe-gestures@^1.0.5:
resolved "https://registry.npmjs.org/react-native-swipe-gestures/-/react-native-swipe-gestures-1.0.5.tgz"
integrity sha512-Ns7Bn9H/Tyw278+5SQx9oAblDZ7JixyzeOczcBK8dipQk2pD7Djkcfnf1nB/8RErAmMLL9iXgW0QHqiII8AhKw==
react-native-toast-message@^2.2.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/react-native-toast-message/-/react-native-toast-message-2.2.1.tgz#f395321e9bc818ce63274c38a3d294ed997a4a27"
integrity sha512-iXFMnlxPcgKKs4bZOIl06W16m6KXMh/bAYpWLyVXlISSCdcL2+FX5WPpRP3TGQeM/u9q+j5ex48DDY+72en+Sw==
react-native-ui-lib@^7.27.0:
version "7.29.0"
resolved "https://registry.npmjs.org/react-native-ui-lib/-/react-native-ui-lib-7.29.0.tgz"