Compare commits

...

5 Commits

Author SHA1 Message Date
Samuel Oberhofer d09e64e9ba Merge branch 'os-events' of sa1177/ProjectGroup8 into main 2022-12-12 20:39:49 +01:00
Samuel Oberhofer 7e5d4b421e Add EventOverviewScreen to Navigarot 2022-12-12 20:39:23 +01:00
Samuel Oberhofer 227b973cc5 Merge branch 'os-events' of sa1177/ProjectGroup8 into main 2022-12-12 20:39:01 +01:00
Samuel Oberhofer 2fbae5215e Add EventCard and EventOverviewScreen 2022-12-12 20:38:15 +01:00
Samuel Oberhofer dd639c087f Add Event model & dummydata 2022-12-12 20:37:54 +01:00
5 changed files with 107 additions and 1 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

@ -8,6 +8,7 @@ import Colors from "../constants/colors";
import MainScreen from "../screens/MainScreen";
import LogoTitle from "../components/LogoTitle";
import PersonOverviewScreen from "../screens/PersonOverviewScreen";
import EventOverviewScreen from "../screens/EventOverviewScreen";
const Tab = createBottomTabNavigator();
@ -58,7 +59,7 @@ function Navigator() {
/>
<Tab.Screen
name="Calendar"
component={MainScreen}
component={EventOverviewScreen}
options={{
tabBarIcon: ({ color, size }) => (
<Icon name="calendar-outline" color={color} size={size} />

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;