From 20c90cef076daba1a6c38f8dc488837bed2db667 Mon Sep 17 00:00:00 2001 From: Jonas Franz Date: Wed, 6 Sep 2017 17:55:29 +0200 Subject: [PATCH] Adding NoResultsFound Adding dataArray to list --- drawer/Drawer.js | 5 +--- pages/Home.js | 14 +++++++++- pages/NoResultsFound.js | 16 +++++++++++ tabs/Stundenliste.js | 18 ++++++++----- tabs/Vertretungsplan.js | 59 +++++++++++++++++++++++++++++++++-------- 5 files changed, 89 insertions(+), 23 deletions(-) create mode 100644 pages/NoResultsFound.js diff --git a/drawer/Drawer.js b/drawer/Drawer.js index eb63448..1d540a0 100644 --- a/drawer/Drawer.js +++ b/drawer/Drawer.js @@ -1,7 +1,5 @@ import React from "react"; import {DrawerNavigator} from "react-navigation"; - -import Home from "../pages/Home"; import SideBar from "./Sidebar"; import Stundenplan from '../tabs/Stundenplan'; @@ -11,13 +9,12 @@ import Klausurplan from "../tabs/Klausurplan"; const DrawerNav = DrawerNavigator( { - Home: {screen: Home}, splan: {screen: Stundenplan}, vplan: {screen: Vertretungsplan}, kplan: {screen: Klausurplan} }, { - initialRouteName: "Home", + initialRouteName: "vplan", contentOptions: { activeTintColor: "#e91e63" }, diff --git a/pages/Home.js b/pages/Home.js index abbd3f6..543af37 100644 --- a/pages/Home.js +++ b/pages/Home.js @@ -2,8 +2,20 @@ import React, {Component} from "react"; import {Button, Container, Content, H3, Header, Icon, Left, Right, Text, Title} from "native-base"; import {StatusBar, StyleSheet} from 'react-native'; import DefaultHeader from '../components/DefaultHeader'; +import ReplacementLessonsApi from '../api/ReplacementLessonsApi' +import ApiClient from '../ApiClient' class Home extends Component { + constructor(props) { + super(props) + this.state = {homeText: "Welcome! Loading content now!"} + api = new ApiClient(""); + repl = new ReplacementLessonsApi(api); + repl + repl.findReplacementLessons((sx, lessons, s) => { + this.setState({homeText: sx.toString()}) + }) + } render() { return ( @@ -11,7 +23,7 @@ class Home extends Component { - Content goes here + {this.state.homeText} diff --git a/pages/NoResultsFound.js b/pages/NoResultsFound.js new file mode 100644 index 0000000..4b0907e --- /dev/null +++ b/pages/NoResultsFound.js @@ -0,0 +1,16 @@ +import React, {Component} from "react"; +import {Container, Text} from "native-base"; + +class NoResultsFound extends Component { + + render() { + return ( + + Es konnten keine passenden Ergebnisse gefunden werden. + + ); + } +} + + +export default NoResultsFound; \ No newline at end of file diff --git a/tabs/Stundenliste.js b/tabs/Stundenliste.js index ed69c65..e3f171a 100644 --- a/tabs/Stundenliste.js +++ b/tabs/Stundenliste.js @@ -3,20 +3,24 @@ import {StyleSheet} from 'react-native'; import {Body, Left, List, ListItem, Separator, Text} from 'native-base'; export default class Stundenliste extends Component { + constructor(props) { + super(props); + console.log(props); + } render() { return ( - - - 20.03.2017 - + - 1. + {item.lesson.period}. - Englisch - Englisch + {item.lesson.subject.name} + {item.lesson.teacher.name} + }> + ); } diff --git a/tabs/Vertretungsplan.js b/tabs/Vertretungsplan.js index 8568bc6..239e6f1 100644 --- a/tabs/Vertretungsplan.js +++ b/tabs/Vertretungsplan.js @@ -2,24 +2,61 @@ import React, {Component} from 'react'; import {Container, Content, Header, Tab, Tabs} from 'native-base'; import Stundenliste from './Stundenliste'; import DefaultHeader from "../components/DefaultHeader"; +import NoResultsFound from "../pages/NoResultsFound"; +import ReplacementLesson from "../model/ReplacementLesson"; export default class Vertretungsplan extends Component { + constructor(props) { + super(props); + this.state = { + replacementLessons: [ + ReplacementLesson.constructFromObject({ + id: 2, + date: "2017-08-22", + lesson: {teacher: {name: "Szabo"}, period: 1, subject: {name: "Informatik"}} + }), + ReplacementLesson.constructFromObject({ + id: 4, + date: "2017-08-22", + lesson: {teacher: {name: "Szabo"}, period: 2, subject: {name: "Informatik"}} + }), + ReplacementLesson.constructFromObject({ + id: 3, + date: "2017-08-23", + lesson: {teacher: {name: "Szabo"}, period: 2, subject: {name: "Informatik"}} + }) + ] + } + } render() { return ( - - - - - - - - - - - + {this.renderTabsForLessons(this.state.replacementLessons)} ); } + + /** + * + * @param {ReplacementLesson[]} lessons + */ + renderTabsForLessons(lessons) { + tabsByDate = {}; + lessons.forEach((lesson) => { + console.log(lesson); + if (!(lesson.date.toLocaleDateString() in tabsByDate)) { + tabsByDate[lesson.date.toLocaleDateString()] = [] + } + tabsByDate[lesson.date.toLocaleDateString()].push(lesson) + }); + console.log(tabsByDate); + tabs = Object.keys(tabsByDate).map(value => ); + if (tabsByDate.length == 0) { + tabsByDate.push() + } + console.log(tabs); + return {tabs} + } } \ No newline at end of file