49 lines
1.4 KiB
JavaScript
49 lines
1.4 KiB
JavaScript
import React, { Component } from 'react'
|
|
import { View } from 'react-native'
|
|
import Header from './components/header'
|
|
import Menu from './components/menu'
|
|
import Home from './components/home'
|
|
import Calendar from './components/calendar'
|
|
import CycleDay from './components/cycle-day/cycle-day-overview'
|
|
import SymptomView from './components/cycle-day/symptoms'
|
|
import Chart from './components/chart/chart'
|
|
import Settings from './components/settings'
|
|
import Stats from './components/stats'
|
|
|
|
// this is until react native fixes this bugg, see
|
|
// https://github.com/facebook/react-native/issues/18868#issuecomment-382671739
|
|
import { YellowBox } from 'react-native'
|
|
YellowBox.ignoreWarnings(['Warning: isMounted(...) is deprecated'])
|
|
|
|
export default class App extends Component {
|
|
constructor(props) {
|
|
super(props)
|
|
this.state = {
|
|
currentPage: 'Home'
|
|
}
|
|
}
|
|
|
|
navigate(pageName) {
|
|
this.setState({currentPage: pageName})
|
|
}
|
|
|
|
render() {
|
|
return (
|
|
<View>
|
|
<Header title={this.state.currentPage}/>
|
|
<CurrentPage page={this.state.currentPage} />
|
|
<Menu navigate={this.navigate.bind(this)}/>
|
|
</View>
|
|
)
|
|
}
|
|
}
|
|
|
|
class CurrentPage extends Component {
|
|
render () {
|
|
console.log('urrentpage render')
|
|
const page = {
|
|
Home, Calendar, CycleDay, SymptomView, Chart, Settings, Stats
|
|
}[this.props.page]
|
|
return React.createElement(page)
|
|
}
|
|
} |