Merge branch 'os-events' of sa1177/ProjectGroup8 into main

This commit is contained in:
Samuel Oberhofer 2022-12-12 20:39:01 +01:00 committed by Gitea
commit 227b973cc5
4 changed files with 105 additions and 0 deletions

37
components/EventCard.js Normal file
View File

@ -0,0 +1,37 @@
import { StyleSheet, Text, TouchableOpacity, View } from "react-native";
import Colors from "../constants/colors";
const EventCard = (props) => {
return (
<TouchableOpacity style={{ ...styles.screen, ...props.style }}>
<View style={styles.eventItem}>
<Text style={styles.text}>
{props.event._name} ({props.event._date})
</Text>
</View>
</TouchableOpacity>
);
};
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;

23
data/EventData.js Normal file
View File

@ -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)
);

12
models/Event.js Normal file
View File

@ -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 = [];
}
}

View File

@ -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 <EventCard event={event} key={index} />;
});
const EventOverviewScreen = (props) => {
return (
<View style={styles.container}>
<ScrollView>{eventsToDisplay}</ScrollView>
<FloatingButton />
<StatusBar style="auto" />
</View>
);
};
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: Colors.primary500,
alignItem: "center",
justifyContent: "center",
},
});
export default EventOverviewScreen;