diff --git a/App.js b/App.js index ccc692f..0600d31 100644 --- a/App.js +++ b/App.js @@ -1,29 +1,58 @@ import "@expo/metro-runtime"; +import { StyleSheet } from "react-native"; +import { StatusBar } from "expo-status-bar"; import { NavigationContainer } from "@react-navigation/native"; import { createNativeStackNavigator } from "@react-navigation/native-stack"; +import colors from "./src/constants/colors"; import HomeScreen from "./src/screens/HomeScreen"; -import SignInScreen from "./src/screens/SignInScreen"; +import AccountScreen from "./src/screens/AccountScreen"; +// import SignInScreen from "./src/screens/SignInScreen"; import DonateScreen from "./src/screens/DonateScreen"; import WebsitesScreen from "./src/screens/WebsitesScreen"; import VolunteerFormScreen from "./src/screens/VolunteerFormScreen"; - import VolunteerOpportunityScreen from "./src/screens/VolunteerOpportunityScreen"; import OtherInfoScreen from "./src/screens/OtherInfoScreen"; +import HomeHeader from "./src/components/HomeHeader"; const Stack = createNativeStackNavigator(); export default function App() { return ( - // - // - // - // - // - // - // - // - // - + + + + , + }} + /> + + + + + + + + ); } diff --git a/src/assets/placeholder-profile.png b/src/assets/placeholder-profile.png new file mode 100644 index 0000000..c5ef792 Binary files /dev/null and b/src/assets/placeholder-profile.png differ diff --git a/src/components/Heading.js b/src/components/Heading.js new file mode 100644 index 0000000..ab0f996 --- /dev/null +++ b/src/components/Heading.js @@ -0,0 +1,12 @@ +import { StyleSheet, Text } from "react-native"; + +export default function Heading({ children }) { + return {children}; +} + +const styles = StyleSheet.create({ + heading: { + fontSize: 18, + fontWeight: "bold", + }, +}); diff --git a/src/components/HomeHeader.js b/src/components/HomeHeader.js new file mode 100644 index 0000000..0850722 --- /dev/null +++ b/src/components/HomeHeader.js @@ -0,0 +1,45 @@ +import { Image, Text, StyleSheet, Pressable, View } from "react-native"; +import { LinearGradient } from "expo-linear-gradient"; +import colors from "../constants/colors"; + +export default function HomeHeader({ navigation }) { + return ( + + + Audacity Music Club + navigation.navigate("Account")}> + + + + + ); +} + +const styles = StyleSheet.create({ + container: { + height: 120, + paddingHorizontal: 20, + paddingBottom: 10, + justifyContent: "flex-end", + }, + subcontainer: { + flexDirection: "row", + justifyContent: "space-between", + alignItems: "center", + }, + headerText: { + color: colors.white, + fontSize: 20, + }, + profile: { + width: 40, + height: 40, + borderRadius: 100, + }, +}); diff --git a/src/components/Logout.js b/src/components/LogOutButton.js similarity index 58% rename from src/components/Logout.js rename to src/components/LogOutButton.js index fa796af..1cfecae 100644 --- a/src/components/Logout.js +++ b/src/components/LogOutButton.js @@ -1,8 +1,9 @@ -import { StyleSheet, Text, Pressable } from "react-native"; +import { StyleSheet, Text, Pressable, Alert } from "react-native"; +import colors from "../constants/colors"; -export default function Logout() { +export default function LogOutButton() { return ( - + Alert.alert("Log out")}> Log Out ); @@ -10,7 +11,7 @@ export default function Logout() { const styles = StyleSheet.create({ button: { - backgroundColor: "#d9534f", + backgroundColor: colors.danger, borderRadius: 10, paddingVertical: 10, paddingHorizontal: 110, diff --git a/src/components/OtherOpportunities.js b/src/components/OtherOpportunities.js index b622daa..efa29ef 100644 --- a/src/components/OtherOpportunities.js +++ b/src/components/OtherOpportunities.js @@ -1,42 +1,33 @@ -import React from "react"; import { View, Text, StyleSheet, Image, Pressable } from "react-native"; export default function OtherOpportunities() { return ( - - Other Opportunities - - - - Request a Concert - - - - - - Make a Donation - - - + + + + Request a Concert + + + + + + Make a Donation + + ); } const styles = StyleSheet.create({ - header: { - fontSize: 16, - fontWeight: "bold", - marginBottom: 10, - }, cardContainer: { backgroundColor: "#f5f5f5", borderRadius: 10, diff --git a/src/components/Profile.js b/src/components/Profile.js index 7d89025..7276751 100644 --- a/src/components/Profile.js +++ b/src/components/Profile.js @@ -5,11 +5,11 @@ export default function Profile() { - Rick - cat + Rick Astley + nevergonnagiveyouup@gmail.com ); @@ -20,16 +20,16 @@ const styles = StyleSheet.create({ flexDirection: "row", alignItems: "center", backgroundColor: "#f5f5f5", // Light grey background color - padding: 20, + padding: 15, borderRadius: 10, borderColor: "#e0e0e0", borderWidth: 1, margin: 10, }, image: { - width: 50, - height: 50, - borderRadius: 25, + width: 60, + height: 60, + borderRadius: 100, marginRight: 10, }, name: { diff --git a/src/components/SignUpButton.js b/src/components/SignUpButton.js index bb1d9c2..fa11da0 100644 --- a/src/components/SignUpButton.js +++ b/src/components/SignUpButton.js @@ -1,4 +1,5 @@ import { StyleSheet, Text, View, Image } from "react-native"; +import colors from "../constants/colors"; export default function SignUpButton() { return ( @@ -22,7 +23,7 @@ const styles = StyleSheet.create({ borderRadius: 15, height: 59, width: 145, - backgroundColor: "#007913", + backgroundColor: colors.primary, }, backText: { diff --git a/src/components/VolunteerOpportunity.js b/src/components/VolunteerOpportunity.js index 4e21945..5d4bb71 100644 --- a/src/components/VolunteerOpportunity.js +++ b/src/components/VolunteerOpportunity.js @@ -1,62 +1,61 @@ -import React from "react"; import { View, Text, StyleSheet, Image, Pressable } from "react-native"; -export default function VolunteerOpportunity(props) { +export default function VolunteerOpportunity({ navigation }) { return ( - + navigation.navigate("Volunteer Opportunity")} + > - - Library Music Hour - - - Saturday, August 10, 2024 2:30 PM - - - - Fremont Main Library - - + Library Music Hour + + + Saturday, August 10, 2024 2:30 PM + + + + Fremont Main Library + - + ); } const styles = StyleSheet.create({ - background: { + container: { flexDirection: "row", alignItems: "center", backgroundColor: "#f5f5f5", - borderTopRightRadius: 10, - borderBottomRightRadius: 10, - borderBottomLeftRadius: 1005, + borderTopRightRadius: 50, + borderBottomRightRadius: 50, + borderBottomLeftRadius: 1000, borderTopLeftRadius: 1000, - borderColor: "#e0e0e0", borderWidth: 1, - margin: 10, + marginBottom: 10, }, image: { width: 80, height: 80, marginRight: 10, - borderTopRightRadius: 1, - borderBottomRightRadius: 1, - borderBottomLeftRadius: 10, - borderTopLeftRadius: 10, + borderTopRightRadius: 0, + borderBottomRightRadius: 0, + borderBottomLeftRadius: 15, + borderTopLeftRadius: 15, }, title: { fontSize: 20, diff --git a/src/components/Websites.js b/src/components/Websites.js new file mode 100644 index 0000000..f0a8068 --- /dev/null +++ b/src/components/Websites.js @@ -0,0 +1,9 @@ +import { StyleSheet, Text } from "react-native"; + +export default function Websites() { + return TODO; +} + +const styles = StyleSheet.create({ + // TODO +}); diff --git a/src/constants/colors.js b/src/constants/colors.js new file mode 100644 index 0000000..ed1b461 --- /dev/null +++ b/src/constants/colors.js @@ -0,0 +1,9 @@ +export default { + primary: "#006000", + primaryLight: "#008000", + primaryDark: "#004000", + secondary: "#353535", + danger: "#E12504", + black: "#000", + white: "#fff", +}; diff --git a/src/screens/AccountScreen.js b/src/screens/AccountScreen.js index b18b0d6..e0ecc33 100644 --- a/src/screens/AccountScreen.js +++ b/src/screens/AccountScreen.js @@ -1,12 +1,13 @@ -import { StyleSheet, Text, View } from "react-native"; -import LogOutButton from "../components/Logout.js"; +import { View } from "react-native"; + +import LogOutButton from "../components/LogOutButton.js"; import Profile from "../components/Profile.js"; + export default function AccountScreen() { return ( - {"\n\n\n\n\n\n\n"} - - + + ); } diff --git a/src/screens/HomeScreen.js b/src/screens/HomeScreen.js index 1f5b117..a43f714 100644 --- a/src/screens/HomeScreen.js +++ b/src/screens/HomeScreen.js @@ -1,88 +1,26 @@ -import { StyleSheet, Text, Image, View, Pressable } from "react-native"; +import { StyleSheet, View } from "react-native"; +import VolunteerOpportunity from "../components/VolunteerOpportunity"; +import OtherOpportunities from "../components/OtherOpportunities"; +import Heading from "../components/Heading"; +import Websites from "../components/Websites"; export default function HomeScreen({ navigation }) { return ( - - navigation.navigate("Sign In")} - > - Volunteer - - navigation.navigate("Sign In")} - > - - Request a Concert - - - navigation.navigate("Donate")}> - Donate - - navigation.navigate("Websites")}> - Visit our websites - + Volunteer Opportunities + + + + Other Opportunities + + Websites + ); } const styles = StyleSheet.create({ container: { - display: "flex", - flex: 1, - flexDirection: "column", - justifyContent: "center", - alignItems: "center", - columnGap: 24, - }, - logo: { - flexDirection: "column", - justifyContent: "center", - width: 387, - height: 208, - }, - volunteer: { - flexDirection: "column", - justifyContent: "center", - borderRadius: 15, - borderWidth: 1, - width: 267, - height: 74, - backgroundColor: "#4B5588", - marginBottom: 24, - shadowColor: "black", - shadowOpacity: 0.25, - shadowOffset: { width: 0, height: 4 }, - shadowRadius: 4, - }, - buttonText: { - textAlign: "center", - fontSize: 36, - fontWeight: "medium", - color: "white", - }, - request: { - flexDirection: "column", - justifyContent: "center", - borderRadius: 15, - borderWidth: 1, - width: 267, - height: 74, - backgroundColor: "#000000", - marginBottom: 24, - shadowColor: "black", - shadowOpacity: 0.25, - shadowOffset: { width: 0, height: 4 }, - shadowRadius: 4, - }, - smallButton: { - borderBottomWidth: 2, - fontSize: 24, - marginBottom: 10, + margin: 20, }, }); diff --git a/src/screens/VolunteerOpportunityScreen.js b/src/screens/VolunteerOpportunityScreen.js index 4b607de..6ef5800 100644 --- a/src/screens/VolunteerOpportunityScreen.js +++ b/src/screens/VolunteerOpportunityScreen.js @@ -8,11 +8,11 @@ import { ImageBackground, } from "react-native"; import { LinearGradient } from "expo-linear-gradient"; -import BackButton from "../components/BackButton"; import SignUpButton from "../components/SignUpButton"; import Tag from "../components/Tag"; +import Heading from "../components/Heading"; -export default function VolunteerOpportunityScreen() { +export default function VolunteerOpportunityScreen({ navigation }) { const tagTexts = ["Electric Piano", "Indoors", "Presentation Equipment"]; const tags = tagTexts.map((text) => ); return ( @@ -27,9 +27,6 @@ export default function VolunteerOpportunityScreen() { style={{ width: "100%", height: "100%", position: "absolute" }} > - - - Music By The Tracks - - - - - Saturday, July 27, 2024 4:00 PM + + + + + + Saturday, July 27, 2024 4:00 PM + + + + + Warm Springs BART Station + + + + About + + Lorem ipsum dolor sit amet, consectetur adipiscing elit. In sit amet + nibh nulla. Vestibulum ante ipsum primis in faucibus orci luctus et + ultrices posuere cubilia curae; Aenean vitae orci in mi ultricies + varius et at tellus. Maecenas posuere vestibulum tortor, euismod + aliquam odio ullamcorper eget. Phasellus quam mi, bibendum id + elementum eget, semper id risus. Nunc eu bibendum erat, nec + pellentesque est. Nullam lobortis mattis laoreet. Aliquam quis ipsum + at arcu tempus scelerisque. - - - Warm Springs BART Station + + Tags + {tags} - - - - About - - - Lorem ipsum dolor sit amet, consectetur adipiscing elit. In sit amet - nibh nulla. Vestibulum ante ipsum primis in faucibus orci luctus et - ultrices posuere cubilia curae; Aenean vitae orci in mi ultricies - varius et at tellus. Maecenas posuere vestibulum tortor, euismod - aliquam odio ullamcorper eget. Phasellus quam mi, bibendum id - elementum eget, semper id risus. Nunc eu bibendum erat, nec - pellentesque est. Nullam lobortis mattis laoreet. Aliquam quis ipsum - at arcu tempus scelerisque. Nullam malesuada, enim quis dignissim - suscipit, neque massa tristique diam, non rhoncus diam felis at - turpis. Ut ullamcorper quis leo a pharetra. - - - - - Tags - - {tags} - - - + navigation.navigate("Volunteer Form")} + > @@ -100,34 +94,30 @@ const styles = StyleSheet.create({ justifyContent: "center", }, banner: { - flex: 4, + flex: 0.5, }, - details: { + subcontainer: { flex: 1, - paddingLeft: "4%", + marginHorizontal: 20, + }, + details: { + paddingTop: 10, justifyContent: "center", }, about: { - flex: 3, - paddingLeft: "4%", - paddingTop: "5%", - paddingRight: "8%", + paddingVertical: 10, }, tagsContainer: { - flex: 1.5, - paddingLeft: "4%", - paddingTop: "5%", flexDirection: "column", }, tags: { + paddingVertical: 5, flexDirection: "row", flexWrap: "wrap", - gap: 10, - paddingTop: "1%", - paddingRight: "4%", + gap: 5, }, signUpButton: { - flex: 1.5, + flex: 1, justifyContent: "flex-end", alignItems: "flex-end", }, @@ -136,12 +126,6 @@ const styles = StyleSheet.create({ height: "100%", resizeMode: "cover", }, - backButton: { - position: "absolute", - paddingTop: "15%", - - transform: [{ scale: 0.8 }], - }, headerText: { position: "absolute", fontSize: 48,