From d95a224c60e02f5c096b569dda7b414720cfc5d8 Mon Sep 17 00:00:00 2001 From: xuwenyang Date: Sat, 9 Nov 2019 14:46:48 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AD=98=E8=8D=89=E7=A8=BF=E9=80=BB=E8=BE=91?= =?UTF-8?q?=20=E5=86=99=E6=97=A5=E8=AE=B0=E9=A1=B5=E9=9D=A2=E6=AF=8F?= =?UTF-8?q?=E9=9A=945=E7=A7=92=E4=BF=9D=E5=AD=98=E4=B8=80=E6=AC=A1?= =?UTF-8?q?=E7=BC=96=E8=BE=91=E5=86=85=E5=AE=B9=E4=BD=9C=E4=B8=BA=E8=8D=89?= =?UTF-8?q?=E7=A8=BF=20=E4=BF=9D=E5=AD=98=E6=97=A5=E8=AE=B0=E6=88=96?= =?UTF-8?q?=E5=8F=96=E6=B6=88=E4=BF=9D=E5=AD=98=EF=BC=8C=E9=80=80=E5=87=BA?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E6=97=B6=E6=B8=85=E7=A9=BA=E8=8D=89=E7=A8=BF?= =?UTF-8?q?=20=E5=BC=82=E5=B8=B8=E9=80=80=E5=87=BA=E6=97=B6=EF=BC=8C?= =?UTF-8?q?=E8=8B=A5=E6=9C=89=E4=B9=8B=E5=89=8D=E4=BF=9D=E5=AD=98=E4=B8=8B?= =?UTF-8?q?=E6=9D=A5=E7=9A=84=E8=8D=89=E7=A8=BF=E5=88=99=E6=81=A2=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/component/notification/notification.js | 1 - .../notification/notificationList.js | 12 ++----- src/page/WritePage.js | 33 +++++++++++++++++-- src/util/token.js | 4 +-- 4 files changed, 35 insertions(+), 15 deletions(-) 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()