diff --git a/src/component/notification/notification.js b/src/component/notification/notification.js index 70d3898..a6970cd 100644 --- a/src/component/notification/notification.js +++ b/src/component/notification/notification.js @@ -28,7 +28,6 @@ export default class Notification extends Component { if(msg && msg.type) { if(msg.type == 1) { return this.renderComment(msg); - } else if(msg.type == 2) { return this.renderFollow(msg); } else if(msg.type == 3) { diff --git a/src/component/notification/notificationList.js b/src/component/notification/notificationList.js index 601e4ce..bec7903 100644 --- a/src/component/notification/notificationList.js +++ b/src/component/notification/notificationList.js @@ -34,6 +34,7 @@ export default class NotificationList extends Component { (async () => { try { let notifications = await this.getMessages(); + this.notificationsData = notifications; this.setNotifications(notifications); this.setState({error: false}); @@ -230,16 +231,7 @@ export default class NotificationList extends Component { } } -// NotificationList.propTypes = { -// isHistory: PropTypes.boolean, -// onRefresh: PropTypes.func, -// isSetRead: PropTypes.boolean -// }; -// -// NotificationList.defaultProps = { -// isHistory: true, -// isSetRead: false, -// }; + diff --git a/src/page/WritePage.js b/src/page/WritePage.js index 3c6f2af..305023e 100644 --- a/src/page/WritePage.js +++ b/src/page/WritePage.js @@ -24,7 +24,8 @@ import {Icon} from '../style/icon'; import Color from '../style/color'; import Api from '../util/api'; import Msg from '../util/msg'; -import Event from "../util/event"; +import Event from '../util/event'; +import Token from '../util/token'; import NotebookLine from '../component/notebook/notebookLine'; import ImageAction from '../component/image/imageAction' @@ -54,6 +55,8 @@ export default class WritePage extends Component { fadeAnimOpacity: new Animated.Value(0), fadeAnimHeight: new Animated.Value(0) } + + this.draftTimer = null; } static options(passProps) { @@ -102,6 +105,9 @@ export default class WritePage extends Component { } closePage() { + clearInterval(this.draftTimer); + Token.setDraft(''); + this.contentInput.blur(); if (this.diary || this.topic) { Navigation.pop(this.props.componentId); @@ -112,10 +118,20 @@ export default class WritePage extends Component { } componentDidMount() { + Token.getDraft().then(draft => { + if(draft) { + this.setState({ + content: draft, + }); + } + }); + + this.resetDraftTimer(); + this.loadNotebook().then(notebookCount => { if(notebookCount > 0) { InteractionManager.runAfterInteractions(() => { - this && this.contentInput && this.contentInput.focus(); + this.contentInput && this.contentInput.focus(); }); } else { Alert.alert('提示', '没有可用日记本,无法写日记',[ @@ -140,6 +156,19 @@ export default class WritePage extends Component { this.notebookListener.remove(); } + resetDraftTimer() { + if(this.draftTimer) { + clearInterval(this.draftTimer); + } + + this.draftTimer = setInterval(() => { + let content = this.state.content; + if(content) { + Token.setDraft(content); + } + }, 5000); + } + openModal() { this.contentInput.blur(); this.setState({modalVisible: true}); diff --git a/src/util/token.js b/src/util/token.js index 36fe08c..d0d1bb5 100644 --- a/src/util/token.js +++ b/src/util/token.js @@ -2,7 +2,7 @@ import AsyncStorage from '@react-native-community/async-storage'; var base64 = require('base-64'); -class TokenManager { +class Token { generateToken(username, password) { return 'Basic ' + base64.encode(username + ":" + password); @@ -101,4 +101,4 @@ class TokenManager { } -export default new TokenManager() +export default new Token()