timepill-app/src/page/TopicPage.js
2019-08-04 20:45:16 +08:00

88 lines
2.2 KiB
JavaScript

import React, {Component} from 'react';
import {StyleSheet, Text, View, DeviceEventEmitter} from 'react-native';
import {Navigation} from 'react-native-navigation';
import {Icon} from '../style/icon'
import Event from '../util/event'
import DiaryList from '../component/diary/diaryList'
import TopicDiaryData from '../dataLoader/TopicDiaryData';
import Color from "../style/color";
export default class TopicPage extends Component {
constructor(props) {
super(props);
Navigation.events().bindComponent(this);
this.dataSource = new TopicDiaryData();
}
static options(passProps) {
return {
topBar: {
title: {
text: passProps.title
},
rightButtons: [{
id: 'write',
icon: Icon.navButtonWrite,
color: Color.primary
}]
},
statusBar: {
backgroundColor: 'white',
style: 'dark'
}
};
}
navigationButtonPressed({buttonId}) {
Navigation.push(this.props.componentId, {
component: {
name: 'Write',
options: {
bottomTabs: {
visible: false,
// hide bottom tab for android
drawBehind: true,
animate: true
}
},
passProps: {
topic: this.props.topic
}
}
});
}
componentDidMount() {
this.diaryListener = DeviceEventEmitter.addListener(Event.updateDiarys, (param) => {
this.diaryList.refresh();
});
}
componentWillUnmount() {
this.diaryListener.remove();
}
render() {
return (
<View style={localStyle.wrap}>
<DiaryList ref={(r) => this.diaryList = r}
dataSource={this.dataSource}
{...this.props}
></DiaryList>
</View>
);
}
}
const localStyle = StyleSheet.create({
wrap: {
flex: 1,
backgroundColor: '#fff'
}
});