diff --git a/frontend/app/assets/leaves.png b/frontend/app/assets/leaves.png new file mode 100644 index 0000000..8606849 Binary files /dev/null and b/frontend/app/assets/leaves.png differ diff --git a/frontend/app/screens/welcome.js b/frontend/app/screens/welcome.js index 0141c16..4113830 100644 --- a/frontend/app/screens/welcome.js +++ b/frontend/app/screens/welcome.js @@ -1,89 +1,557 @@ -import React from 'react'; -import { StyleSheet, View, Text, Image, TouchableOpacity } from 'react-native'; -import { SafeAreaView } from 'react-native-safe-area-context'; +import React, { useState } from 'react'; +import { + SafeAreaView, + ScrollView, + View, + Text, + StyleSheet, + TouchableOpacity, + Image, +} from 'react-native'; +import { LinearGradient } from 'expo-linear-gradient'; +import { MaterialIcons, FontAwesome, Ionicons } from '@expo/vector-icons'; + +const RewireApp = () => { + const [currentStep, setCurrentStep] = useState(1); + + const goToNextStep = () => { + setCurrentStep(currentStep + 1); + }; + + const renderStep = () => { + switch (currentStep) { + case 1: + return ; + case 2: + return ; + case 3: + return ; + + default: + return ;// change this to the next page .yasith. + } + }; -export default function Welcome({ navigation }) { return ( - + + + Rewire + {currentStep < 4 && ( + + Step {currentStep} of 3 + + + + + + + )} + + {renderStep()} + + + ); +}; + +const Step1 = ({ onNext }) => { + return ( + + + + + < View > + ReWire + Heal the mind, Heal the life + + + Breaking free from addiction starts today - WELCOME TO REWIRE - - - Welcome! Rewire supports you in building better habits and staying motivated. Let's begin. - + + + No judgments. No pressure. Just a step-by-step journey designed for you. + + + Let's create a personalized recovery plan that fits into your daily life. + + + + + + Get Started + + + ); +}; - navigation.navigate('Login')} - > - Login - +const Step2 = ({ onNext }) => { + return ( + + How We'll Help You + "You're not alone. Here's how Rewire supports you, every step of the way:" + + + + + + + + + + + + {" The hardest part is starting. We'll make the rest easier."} + + + + Next + + + ); +}; - navigation.navigate('SignupStepOne')} - > - Create an account - +const Step3 = ({ onNext }) => { + return ( + + Why Rewire? + "Most people fail to quit because they do it alone. But with Rewire, you'll always have:" + + + + + + - + + + + {" Your journey to recovery starts now."} + + + + Let's Begin! + + ); -} +}; + + + +const FeatureCard = ({ icon, title, description }) => { + return ( + + + + + + {title} + {description} + + + ); +}; + +const WhyRewireItem = ({ icon, color, title, description }) => { + return ( + + + + + + {title} + {description} + + + ); +}; const styles = StyleSheet.create({ container: { flex: 1, - backgroundColor: '#fff', + backgroundColor: '#f8f9fa', + }, + scrollContainer: { + flexGrow: 1, + }, + header: { + padding: 16, + flexDirection: 'row', + justifyContent: 'space-between', + alignItems: 'center', + }, + logo: { + fontSize: 24, + fontWeight: 'bold', + color: '#40c4ff', + }, + stepIndicator: { + alignItems: 'flex-end', + }, + stepText: { + fontSize: 14, + color: '#666', + marginBottom: 4, + }, + stepDots: { + flexDirection: 'row', }, - content: { + dot: { + width: 8, + height: 8, + borderRadius: 4, + backgroundColor: '#ddd', + marginHorizontal: 4, + }, + activeDot: { + backgroundColor: '#40c4ff', + }, + minimalisticStepContainer: { flex: 1, + padding: 24, + backgroundColor: '#fff', + justifyContent: 'center', alignItems: 'center', - paddingHorizontal: 20, + }, + stepContainer: { + flex: 1, + padding: 16, + alignItems: 'center', // Center align all step containers + }, + logoContainer: { + width: 200, + height: 200, justifyContent: 'center', + alignItems: 'center', + marginBottom: 24, + position: 'relative', + }, - illustration: { - width: '80%', - height: 300, - marginBottom: 20, + logoImage: { + width: 200, + height: 200, + resizeMode: 'contain', }, - title: { + + appName: { + fontSize: 36, + fontWeight: 'bold', + color: '#40c4ff', + marginBottom: 4, + textAlign: 'center', // Ensure centered text + }, + tagline: { + fontSize: 16, + color: '#666', + marginBottom: 48, + textAlign: 'center', // Ensure centered text + }, + welcomeContent: { + width: '100%', + alignItems: 'center', + marginBottom: 40, + }, + welcomeTitle: { fontSize: 24, fontWeight: 'bold', - marginBottom: 16, + color: '#333', + marginBottom: 24, textAlign: 'center', }, - description: { + minimalisticBulletPoints: { + width: '100%', + }, + minimalisticBulletText: { fontSize: 16, - textAlign: 'center', color: '#666', - marginBottom: 32, - paddingHorizontal: 20, + textAlign: 'center', + marginBottom: 16, + lineHeight: 24, }, - loginButton: { - backgroundColor: '#1B8484', - width: '100%', - padding: 16, + minimalisticButton: { + backgroundColor: '#40c4ff', borderRadius: 8, - marginBottom: 16, + paddingVertical: 16, + paddingHorizontal: 32, + alignSelf: 'center', }, - loginButtonText: { + minimalisticButtonText: { color: '#fff', - textAlign: 'center', fontSize: 16, - fontWeight: '600', + fontWeight: 'bold', }, - createAccountButton: { - width: '100%', + stepTitle: { + fontSize: 28, + fontWeight: 'bold', + color: '#333', + marginBottom: 12, + textAlign: 'center', // Center align titles + }, + quote: { + fontSize: 16, + fontStyle: 'italic', + color: '#666', + marginBottom: 24, + lineHeight: 24, + textAlign: 'center', // Center align quotes + width: '90%', // Give some margin on the sides + }, + featureCards: { + marginBottom: 24, + width: '100%', // Full width for cards }, - createAccountText: { - color: '#1B8484', + featureCard: { + backgroundColor: '#fff', + borderRadius: 12, + padding: 16, + marginBottom: 12, + flexDirection: 'row', + alignItems: 'center', + shadowColor: '#000', + shadowOffset: { width: 0, height: 2 }, + shadowOpacity: 0.05, + shadowRadius: 4, + elevation: 2, + }, + featureIconContainer: { + width: 48, + height: 48, + borderRadius: 24, + backgroundColor: '#f0f7ff', + justifyContent: 'center', + alignItems: 'center', + marginRight: 16, + }, + featureContent: { + flex: 1, + }, + featureTitle: { + fontSize: 16, + fontWeight: 'bold', + color: '#333', + marginBottom: 4, + }, + featureDescription: { + fontSize: 14, + color: '#666', + }, + insightText: { + fontSize: 16, + fontStyle: 'italic', + color: '#666', + marginBottom: 24, textAlign: 'center', + width: '90%', // Give some margin on the sides + }, + whyRewireContainer: { + marginBottom: 24, + width: '100%', // Full width for items + }, + whyRewireItem: { + flexDirection: 'row', + alignItems: 'center', + marginBottom: 16, + }, + whyRewireIcon: { + width: 48, + height: 48, + borderRadius: 24, + justifyContent: 'center', + alignItems: 'center', + marginRight: 16, + }, + whyRewireContent: { + flex: 1, + }, + whyRewireTitle: { fontSize: 16, + fontWeight: 'bold', + color: '#333', + marginBottom: 4, + }, + whyRewireDescription: { + fontSize: 14, + color: '#666', + }, + dashboardContainer: { + flex: 1, + padding: 16, + }, + dashboardHeader: { + flexDirection: 'row', + alignItems: 'center', + marginBottom: 24, + }, + dashboardLogo: { + width: 32, + height: 32, + marginRight: 8, }, -}); \ No newline at end of file + dashboardAppName: { + fontSize: 20, + fontWeight: 'bold', + color: '#40c4ff', + }, + welcomeText: { + fontSize: 24, + fontWeight: 'bold', + color: '#333', + marginBottom: 24, + }, + statsContainer: { + flexDirection: 'row', + marginBottom: 24, + }, + statCard: { + flex: 1, + backgroundColor: '#fff', + borderRadius: 12, + padding: 16, + marginHorizontal: 4, + alignItems: 'center', + shadowColor: '#000', + shadowOffset: { width: 0, height: 2 }, + shadowOpacity: 0.05, + shadowRadius: 4, + elevation: 2, + }, + statTitle: { + fontSize: 24, + fontWeight: 'bold', + color: '#40c4ff', + marginBottom: 4, + }, + statLabel: { + fontSize: 14, + color: '#666', + }, + todayActions: { + marginBottom: 24, + }, + sectionTitle: { + fontSize: 18, + fontWeight: 'bold', + color: '#333', + marginBottom: 12, + textAlign: 'center', // Center align section titles + }, + actionCard: { + backgroundColor: '#fff', + borderRadius: 12, + padding: 16, + marginBottom: 12, + flexDirection: 'row', + alignItems: 'center', + shadowColor: '#000', + shadowOffset: { width: 0, height: 2 }, + shadowOpacity: 0.05, + shadowRadius: 4, + elevation: 2, + }, + actionIconContainer: { + marginRight: 16, + }, + actionContent: { + flex: 1, + }, + actionTitle: { + fontSize: 16, + fontWeight: 'bold', + color: '#333', + marginBottom: 4, + }, + actionDescription: { + fontSize: 14, + color: '#666', + }, + urgeShieldContainer: { + marginBottom: 36, + alignItems: 'center', + }, + urgeShieldButton: { + backgroundColor: '#26a69a', + borderRadius: 8, + paddingVertical: 16, + paddingHorizontal: 24, + flexDirection: 'row', + justifyContent: 'center', + alignItems: 'center', + width: '80%', + marginVertical: 12, + }, + urgeShieldText: { + color: '#fff', + fontSize: 16, + fontWeight: 'bold', + marginLeft: 8, + }, + urgeShieldDescription: { + fontSize: 14, + color: '#666', + textAlign: 'center', + }, + bottomNav: { + flexDirection: 'row', + justifyContent: 'space-between', + borderTopWidth: 1, + borderTopColor: '#eee', + paddingTop: 16, + }, + navItem: { + alignItems: 'center', + }, + navText: { + fontSize: 12, + color: '#888', + marginTop: 4, + }, + activeNavText: { + color: '#40c4ff', + fontWeight: 'bold', + }, +}); + +export default RewireApp; \ No newline at end of file diff --git a/frontend/package-lock.json b/frontend/package-lock.json index e9f60f0..368c8c0 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -11653,4 +11653,4 @@ } } } -} +} \ No newline at end of file diff --git a/frontend/package.json b/frontend/package.json index 2a8a83a..3684c22 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -41,4 +41,4 @@ "typescript": "^5.3.3" }, "private": true -} +} \ No newline at end of file diff --git a/frontend/yarn.lock b/frontend/yarn.lock index 84826cf..1e7d0a3 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -6585,4 +6585,4 @@ yargs@^17.6.2: yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..3087254 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,6 @@ +{ + "name": "App", + "lockfileVersion": 3, + "requires": true, + "packages": {} +}