From dd639c087f314453cd871046132ac8a77fffc6e2 Mon Sep 17 00:00:00 2001 From: Samuel Oberhofer Date: Mon, 12 Dec 2022 20:37:54 +0100 Subject: [PATCH 1/2] Add Event model & dummydata --- data/EventData.js | 23 +++++++++++++++++++++++ models/Event.js | 12 ++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 data/EventData.js create mode 100644 models/Event.js diff --git a/data/EventData.js b/data/EventData.js new file mode 100644 index 0000000..a12b603 --- /dev/null +++ b/data/EventData.js @@ -0,0 +1,23 @@ +import { Event } from "../models/Event.js"; + +const events = [ + { + name: "Christmas", + date: "2020-12-24", + category: "family", + }, + { + name: "Valentines Day", + date: "2021-02-14", + category: "friends", + }, + { + name: "Birthday", + date: "2021-03-14", + category: "family", + }, +]; + +export const EVENTS = events.map( + (event) => new Event(event.name, event.date, event.category) +); diff --git a/models/Event.js b/models/Event.js new file mode 100644 index 0000000..d91ad57 --- /dev/null +++ b/models/Event.js @@ -0,0 +1,12 @@ +import { v4 as generateUniqueKey } from "uuid"; + +export class Event { + constructor(name, date, category) { + this._key = generateUniqueKey(); + this._name = name; + this._date = date; + this._category = category; + this._giftList = []; + this._personList = []; + } +} From 2fbae5215e6c3b469424134c4f752d1641c07d97 Mon Sep 17 00:00:00 2001 From: Samuel Oberhofer Date: Mon, 12 Dec 2022 20:38:15 +0100 Subject: [PATCH 2/2] Add EventCard and EventOverviewScreen --- components/EventCard.js | 37 ++++++++++++++++++++++++++++++++++ screens/EventOverviewScreen.js | 33 ++++++++++++++++++++++++++++++ 2 files changed, 70 insertions(+) create mode 100644 components/EventCard.js create mode 100644 screens/EventOverviewScreen.js diff --git a/components/EventCard.js b/components/EventCard.js new file mode 100644 index 0000000..b342f49 --- /dev/null +++ b/components/EventCard.js @@ -0,0 +1,37 @@ +import { StyleSheet, Text, TouchableOpacity, View } from "react-native"; +import Colors from "../constants/colors"; + +const EventCard = (props) => { + return ( + + + + {props.event._name} ({props.event._date}) + + + + ); +}; + +const styles = StyleSheet.create({ + screen: { + flex: 1, + alignItem: "center", + justifyContent: "center", + backgroundColor: Colors.primary500, + }, + eventItem: { + margin: 10, + padding: 10, + borderRadius: 10, + borderWidth: 1, + borderColor: "white", + height: 60, + backgroundColor: Colors.primary400, + }, + text: { + color: "white", + }, +}); + +export default EventCard; diff --git a/screens/EventOverviewScreen.js b/screens/EventOverviewScreen.js new file mode 100644 index 0000000..d96554c --- /dev/null +++ b/screens/EventOverviewScreen.js @@ -0,0 +1,33 @@ +import { ScrollView, StyleSheet, View } from "react-native"; +import { StatusBar } from "expo-status-bar"; + +import { EVENTS } from "../data/EventData"; + +import Colors from "../constants/colors"; +import EventCard from "../components/EventCard"; +import FloatingButton from "../components/FloatingButton"; + +const eventsToDisplay = EVENTS.map((event, index) => { + return ; +}); + +const EventOverviewScreen = (props) => { + return ( + + {eventsToDisplay} + + + + ); +}; + +const styles = StyleSheet.create({ + container: { + flex: 1, + backgroundColor: Colors.primary500, + alignItem: "center", + justifyContent: "center", + }, +}); + +export default EventOverviewScreen;