diff --git a/app.json b/app.json index 2a248f42..8ce0dbe7 100644 --- a/app.json +++ b/app.json @@ -26,7 +26,8 @@ "foregroundImage": "./assets/images/adaptive-icon.png", "backgroundColor": "#ffffff" }, - "package": "medical.app" + "package": "medical.app", + "softwareKeyboardLayoutMode": "pan" }, "web": { "bundler": "metro", diff --git a/app/(auth)/SignIn&SignOut/LetsYouIn.tsx b/app/(auth)/SignIn&SignOut/LetsYouIn.tsx new file mode 100644 index 00000000..b6485c85 --- /dev/null +++ b/app/(auth)/SignIn&SignOut/LetsYouIn.tsx @@ -0,0 +1,145 @@ +import * as React from "react"; +import { StyleSheet, Text, View, Image, TouchableOpacity } from "react-native"; +import { useState } from "react"; +import { LeftArrow } from "@/components/UI/icons"; +import { router } from "expo-router"; +import Typography from "../../../constants/Typography"; +import { Colors } from "../../../constants/Colors"; + +const LetsYouIn = () => { + const [visible, setVisible] = React.useState(false); + const hideDialog = () => setVisible(false); + + return ( + + + + + + + + + + + Let's you in + + + + + + + + Continue with facebook + + + + + + + Continue with Google + + + + + + Continue with Apple + + + + + + + + + Sign in with password + + + + + Don't have an account? + + router.replace("/(auth)/SignIn&SignOut/SignUpBlankForm") + } + > + Sign up + + + + ); +}; + +export default LetsYouIn; + +const styles = StyleSheet.create({ + signupText: { + color: "#246BFD", + fontWeight: "600", + }, + signText: { + fontSize: 16, + color: "#FFFFFF", + fontWeight: "bold", + }, + signinBtn: { + backgroundColor: "#246BFD", + width: "100%", + height: 58, + borderRadius: 100, + justifyContent: "center", + alignItems: "center", + }, + textBtn: { + fontSize: 16, + fontWeight: "bold", + }, + middleButton: { + flexDirection: "row", + gap: 15, + borderWidth: 1, + borderColor: "#eeeeee", + justifyContent: "center", + alignItems: "center", + padding: 15, + width: "110%", + borderRadius: 16, + }, + Buttons: { + gap: 10, + justifyContent: "center", + alignItems: "center", + }, + textOne: { + fontSize: 48, + fontWeight: "bold", + color: "#212121", + fontFamily: "Bold", + }, + midPartOne: { + justifyContent: "center", + alignItems: "center", + }, + middlePart: { + gap: 30, + }, + arrow: { + alignSelf: "flex-start", + }, + container: { + flex: 1, + flexDirection: "column", + justifyContent: "center", + alignItems: "center", + backgroundColor: "#FFFFFF", + gap: 20, + paddingTop: 24, + paddingLeft: 24, + paddingBottom: 48, + paddingRight: 24, + // borderWidth: 4, + // borderColor: 'red', + }, +}); diff --git a/app/(auth)/SignIn&SignOut/SignInBlankForm.tsx b/app/(auth)/SignIn&SignOut/SignInBlankForm.tsx new file mode 100644 index 00000000..816ead12 --- /dev/null +++ b/app/(auth)/SignIn&SignOut/SignInBlankForm.tsx @@ -0,0 +1,339 @@ +import React, { useState } from "react"; +import { + StyleSheet, + Text, + View, + Image, + TouchableOpacity, + TextInput, + TouchableWithoutFeedback, +} from "react-native"; +import { Ionicons } from "@expo/vector-icons"; +import CheckBox from "expo-checkbox"; +import { LeftArrow } from "@/components/UI/icons"; +import { router } from "expo-router"; +import Typography from '../../../constants/Typography'; +import {Colors} from '../../../constants/Colors'; + +const Login = () => { + const [email, setEmail] = useState(""); + const [password, setPassword] = useState(""); + const [secureTextEntry, setSecureTextEntry] = useState(true); + const [isChecked, setIsChecked] = useState(false); + const [emailFocused, setEmailFocused] = useState(false); + const [passwordFocused, setPasswordFocused] = useState(false); + + + const handleEmailChange = (text: string) => { + setEmail(text); + }; + + const handlePasswordChange = (text: string) => { + setPassword(text); + }; + + const togglePasswordVisibility = () => { + setSecureTextEntry(!secureTextEntry); + }; + + const handleEmailFocus = () => { + setEmailFocused(true); + setPasswordFocused(false); + }; + + const handlePasswordFocus = () => { + setPasswordFocused(true); + setEmailFocused(false); + } + + const handleEmailBlur = () => { + setEmailFocused(false); + }; + + const handlePasswordBlur = () => { + setPasswordFocused(false); + } + + return ( + + + router.replace("/(auth)/SignIn&SignOut/SignUpBlankForm")}> + + + + + + + + + + Login to Your Account + + + + + + + + + + + + + + + + + + + + + + + + + Remember me + + + + + Sign in + + + + + Forgot the password? + + + + + + + + + + + + + + + + + + + + Don’t have an account? + router.replace("/(auth)/SignIn&SignOut/SignUpBlankForm")} + > + Sign up + + + + ); +}; + +export default Login; + +const styles = StyleSheet.create({ + + inputOneFocused: { + borderColor: "#246BFD", + borderWidth: 2, + }, + emailFocused: { + color: "#212121", + fontSize: 16 + }, + iconFocused: { + tintColor: "#246BFD", + }, + passwordInputContainerFocused: { + borderColor: "#246BFD", + // borderWidth: 2, + // borderRadius: 5, + }, + icon: { + tintColor: "#868a94", + }, + eye:{ + marginRight: 10 + }, + passwordIconContainer:{ + flexDirection: "row", + alignItems: "center", + justifyContent: "flex-end", + }, + textInputFocused: { + borderColor: "blue", + }, + checkbox: { + width: 24, + height: 24, + borderRadius: 8, + borderWidth: 3, + borderColor: "#246BFD", + }, + remember: { + fontSize: 14, + fontWeight: "600", + lineHeight: 19.6, + letterSpacing: 0.2, + }, + Check: { + justifyContent: "center", + alignItems: "center", + flexDirection: "row", + gap: 10, + }, + smallCont: { + width: 80, + height: 60, + backgroundColor: "#FFFFFF", + borderColor: "#eeeeee", + borderWidth: 1, + borderRadius: 16, + justifyContent: "center", + alignItems: "center", + }, + overCont: { + flexDirection: "row", + gap: 10, + }, + passwordInputContainer: { + // flex: 1, + flexDirection: "row", + alignItems: "center", + }, + inputs1: { + backgroundColor: "#fff", + margin: 30, + marginTop: 30, + marginBottom: 0, + padding: 8, + borderRadius: 10, + paddingHorizontal: 10, + }, + inputOne: { + borderRadius: 16, + backgroundColor: "#FAFAFA", + width: 380, + height: 60, + padding: 8, + paddingHorizontal: 10, + flexDirection: "row", + paddingLeft: 20, + alignItems: "center", + gap: 10, + }, + email: { + fontSize: 16, + flex: 1, + }, + signText: { + fontSize: 16, + color: "#FFFFFF", + fontWeight: "bold", + }, + signinBtn: { + backgroundColor: "#246BFD", + width: 380, + height: 58, + borderRadius: 100, + justifyContent: "center", + alignItems: "center", + shadowColor: '#246BFD', + elevation: 15, + }, + textBtn: { + fontSize: 16, + fontWeight: "bold", + }, + middleButton: { + flexDirection: "row", + gap: 15, + borderWidth: 0.5, + justifyContent: "center", + alignItems: "center", + padding: 10, + width: 380, + borderRadius: 16, + }, + Buttons: { + gap: 10, + justifyContent: "center", + alignItems: "center", + }, + textOne: { + fontSize: 32, + fontWeight: "bold", + color: "#212121", + }, + midPartOne: { + justifyContent: "center", + alignItems: "center", + }, + frogotPass: { + fontSize: 16, + fontWeight: "600", + lineHeight: 22.4, + letterSpacing: 0.2, + textAlign: "center", + color: "#246BFD", + }, + account: { + flexDirection: "row", + }, + middlePart: { + gap: 30, + }, + arrow: { + alignSelf: "flex-start" + }, + container: { + flex: 1, + flexDirection: "column", + justifyContent: "center", + alignItems: "center", + backgroundColor: "#FFFFFF", + gap: 15, + paddingTop: 24, + paddingLeft: 24, + paddingBottom: 48, + paddingRight: 24, + }, + LoginText: { + color: "#246BFD", + fontWeight: "600", + }, + +}); diff --git a/app/(auth)/SignIn&SignOut/SignUpBlankForm.tsx b/app/(auth)/SignIn&SignOut/SignUpBlankForm.tsx new file mode 100644 index 00000000..d6726509 --- /dev/null +++ b/app/(auth)/SignIn&SignOut/SignUpBlankForm.tsx @@ -0,0 +1,330 @@ +import React, { useState } from "react"; +import { + StyleSheet, + Text, + View, + Image, + TouchableOpacity, + TextInput, + TouchableWithoutFeedback, + KeyboardAvoidingView, + ScrollView, + Platform, +} from "react-native"; +import { Ionicons } from "@expo/vector-icons"; +import CheckBox from "expo-checkbox"; +import { LeftArrow } from "@/components/UI/icons"; +import { router } from "expo-router"; +import Typography from "../../../constants/Typography"; +import { Colors } from "../../../constants/Colors"; + +const Signup = () => { + const [email, setEmail] = useState(""); + const [password, setPassword] = useState(""); + const [secureTextEntry, setSecureTextEntry] = useState(true); + const [isChecked, setIsChecked] = useState(false); + const [isFocused, setIsFocused] = useState(false); + const [passwordFocused, setPasswordFocused] = useState(false); + + const handleEmailChange = (text: string) => { + setEmail(text); + }; + + const handlePasswordChange = (text: string) => { + setPassword(text); + }; + + const togglePasswordVisibility = () => { + setSecureTextEntry(!secureTextEntry); + }; + + const handleEmailFocused = () => { + setIsFocused(true); + } + const handleEmailBlur = () => { + setIsFocused(false); + } + const handlePasswordFocused = () =>{ + setPasswordFocused(true); + } + const handlePasswordBlur = () => { + setPasswordFocused(false); + } + + return ( + + router.replace("/(auth)/SignIn&SignOut/LetsYouIn")} + > + + + + + + + + + Create new account + + + + + + + + + + + + + + + + + + + + + + + + + + + Remember me + + + + + + Sign up + + + + + + + + + + + + + + + + + + + + Already have an account? + + router.replace("/(auth)/SignIn&SignOut/SignInBlankForm") + } + > + Sign In + + + + + ); +}; + +export default Signup; + +const styles = StyleSheet.create({ + + inputOneFocused: { + borderColor: "#246BFD", + borderWidth: 2, + }, + emailFocused: { + color: "#212121", + fontSize: 16 + }, + iconFocused: { + tintColor: "#246BFD", + }, + passwordInputContainerFocused: { + borderColor: "#246BFD", + }, + icon: { + tintColor: "#868a94", + }, + eye: { + marginRight: 40, + }, + passwordIconContainer: { + flexDirection: "row", + alignItems: "center", + justifyContent: "flex-end", + }, + textInputFocused: { + borderColor: "blue", + }, + checkbox: { + width: 24, + height: 24, + borderRadius: 8, + borderWidth: 3, + borderColor: "#246BFD", + }, + remember: { + fontSize: 14, + fontWeight: "600", + lineHeight: 19.6, + letterSpacing: 0.2, + }, + Check: { + justifyContent: "center", + alignItems: "center", + flexDirection: "row", + gap: 10, + }, + smallCont: { + width: 80, + height: 60, + backgroundColor: "#FFFFFF", + borderColor: "#eeeeee", + borderWidth: 1, + borderRadius: 16, + justifyContent: "center", + alignItems: "center", + }, + overCont: { + flexDirection: "row", + gap: 10, + }, + passwordInputContainer: { + // flex: 1, + flexDirection: "row", + alignItems: "center", + }, + inputs1: { + backgroundColor: "#fff", + margin: 30, + marginTop: 30, + marginBottom: 0, + padding: 8, + borderRadius: 10, + paddingHorizontal: 10, + }, + inputOne: { + borderRadius: 16, + backgroundColor: "#FAFAFA", + width: 380, + height: 60, + padding: 8, + flexDirection: "row", + paddingLeft: 20, + alignItems: "center", + gap: 10, + }, + email: { + fontSize: 16, + flex: 1, + }, + signupText: { + color: "#246BFD", + fontWeight: "600", + }, + // signText: { + // fontSize: 16, + // color: "#FFFFFF", + // fontWeight: "bold", + // }, + signinBtn: { + backgroundColor: "#246BFD", + width: "90%", + height: 58, + borderRadius: 100, + justifyContent: "center", + alignItems: "center", + shadowColor: "#246BFD", + elevation: 15, + }, + textBtn: { + fontSize: 16, + fontWeight: "bold", + }, + middleButton: { + flexDirection: "row", + gap: 15, + borderWidth: 0.5, + justifyContent: "center", + alignItems: "center", + padding: 10, + width: 380, + borderRadius: 16, + }, + Buttons: { + gap: 10, + justifyContent: "center", + alignItems: "center", + }, + textOne: { + fontSize: 32, + fontWeight: "bold", + color: "#212121", + }, + midPartOne: { + justifyContent: "center", + alignItems: "center", + }, + middlePart: { + gap: 30, + }, + arrow: { + alignSelf: "flex-start", + }, + container: { + flex: 1, + flexDirection: "column", + justifyContent: "center", + alignItems: "center", + backgroundColor: "#FFFFFF", + gap: 20, + paddingTop: 24, + paddingLeft: 24, + paddingBottom: 48, + paddingRight: 24, + }, +}); diff --git a/app/_layout.tsx b/app/_layout.tsx index bb4bae56..ae6f559d 100644 --- a/app/_layout.tsx +++ b/app/_layout.tsx @@ -6,18 +6,18 @@ import * as SecureStore from "expo-secure-store"; import { useContext, useEffect, useState } from "react"; -import * as NavigationBar from "expo-navigation-bar"; -import { ZoomOutUp } from "react-native-reanimated"; import ThemeProvider, { ThemeContext } from "@/ctx/ThemeContext"; import { Pressable, View, useColorScheme } from "react-native"; import { ThemeType } from "@/constants/Types"; import { Text } from "@/components/Themed"; -import ModalProvider from "@/ctx/ModalContext"; -import ModalContainer from "@/components/UI/Modal"; -export { ErrorBoundary } from "expo-router"; +export { + + ErrorBoundary, +} from "expo-router"; export const unstable_settings = { + initialRouteName: "(auth)", }; @@ -62,22 +62,7 @@ export default function RootLayout() { }, [error]); useEffect(() => { - async function handleNavigationButtons() { - await NavigationBar.setPositionAsync("absolute"); - await NavigationBar.setBackgroundColorAsync("#ffffff00"); - await NavigationBar.setBehaviorAsync("inset-swipe"); - await NavigationBar.setVisibilityAsync("hidden"); - - NavigationBar.addVisibilityListener(({ visibility }) => { - if (visibility === "visible") { - setTimeout(async () => { - await NavigationBar.setVisibilityAsync("hidden"); - }, 2000); - } - }); - } - if (loaded) { - handleNavigationButtons(); + if (loaded && favoredTheme) { SplashScreen.hideAsync(); } }, [loaded, favoredTheme]); @@ -88,9 +73,7 @@ export default function RootLayout() { return ( - - - + ); } @@ -102,9 +85,7 @@ function RootLayoutNav() { - - ); } diff --git a/app/index.tsx b/app/index.tsx index d47c1f7b..c08c25ef 100644 --- a/app/index.tsx +++ b/app/index.tsx @@ -34,7 +34,7 @@ export default function App() { useEffect(() => { setTimeout(() => { - router.push("/(auth)/SignIn&SignOut/SetYourFingerPrint"); + router.push("/(auth)/SignIn&SignOut/LetsYouIn"); }, 2000); }, []); diff --git a/assets/icons/AppleIcon.png b/assets/icons/AppleIcon.png new file mode 100644 index 00000000..67a355a9 Binary files /dev/null and b/assets/icons/AppleIcon.png differ diff --git a/assets/icons/FrameOne.png b/assets/icons/FrameOne.png new file mode 100644 index 00000000..06771a34 Binary files /dev/null and b/assets/icons/FrameOne.png differ diff --git a/assets/icons/Google.png b/assets/icons/Google.png new file mode 100644 index 00000000..b7db776e Binary files /dev/null and b/assets/icons/Google.png differ diff --git a/assets/icons/HeartPlus.png b/assets/icons/HeartPlus.png new file mode 100644 index 00000000..bf19fdc3 Binary files /dev/null and b/assets/icons/HeartPlus.png differ diff --git a/assets/icons/Lock.png b/assets/icons/Lock.png new file mode 100644 index 00000000..fc79a483 Binary files /dev/null and b/assets/icons/Lock.png differ diff --git a/assets/icons/Message.png b/assets/icons/Message.png new file mode 100644 index 00000000..fe32ebf2 Binary files /dev/null and b/assets/icons/Message.png differ diff --git a/assets/icons/OR.png b/assets/icons/OR.png new file mode 100644 index 00000000..d5e3bf73 Binary files /dev/null and b/assets/icons/OR.png differ diff --git a/assets/icons/continue.png b/assets/icons/continue.png new file mode 100644 index 00000000..8c7b8dc7 Binary files /dev/null and b/assets/icons/continue.png differ diff --git a/assets/icons/facebook.png b/assets/icons/facebook.png new file mode 100644 index 00000000..eefc1c8b Binary files /dev/null and b/assets/icons/facebook.png differ diff --git a/package-lock.json b/package-lock.json index aa83f31f..8ad78b29 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,6 +13,7 @@ "@react-navigation/native": "^6.0.2", "eas-cli": "^8.0.0", "expo": "~50.0.14", + "expo-checkbox": "^2.7.0", "expo-font": "~11.10.3", "expo-linear-gradient": "~12.7.2", "expo-linking": "~6.2.2", @@ -13399,6 +13400,11 @@ "md5-file": "^3.2.3" } }, + "node_modules/expo-checkbox": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/expo-checkbox/-/expo-checkbox-2.7.0.tgz", + "integrity": "sha512-1wYgoOZ9pBg64PPPULbdD7jEVFX354dpJdUZRmkrO/7ybI668qO4r4+9777CUQ+2JoZEEJBBQzN6UiAl0Uodkg==" + }, "node_modules/expo-constants": { "version": "15.4.6", "resolved": "https://registry.npmjs.org/expo-constants/-/expo-constants-15.4.6.tgz", diff --git a/package.json b/package.json index 9ef076fc..f0e65ad7 100644 --- a/package.json +++ b/package.json @@ -22,6 +22,7 @@ "@react-navigation/native": "^6.0.2", "eas-cli": "^8.0.0", "expo": "~50.0.14", + "expo-checkbox": "^2.7.0", "expo-font": "~11.10.3", "expo-linear-gradient": "~12.7.2", "expo-linking": "~6.2.2",