From ce3dbde7123d4502acfad50c980d154be5c097af Mon Sep 17 00:00:00 2001 From: xuwenyang Date: Thu, 1 Aug 2019 23:01:03 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AF=84=E8=AE=BA=EF=BC=8Cok=E7=BB=B7=E5=9B=BE?= =?UTF-8?q?=E6=A0=87=E6=94=BE=E8=BF=9B=E5=88=97=E8=A1=A8=EF=BC=8C=E5=A4=A7?= =?UTF-8?q?=E4=BA=8E0=E6=97=B6=E6=98=BE=E7=A4=BA=E6=95=B0=E5=AD=97?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修复bug: 1. 创建日记本过期日期选择问题 2. 写日记没有日记本提示 --- src/component/dateInput.js | 6 +- src/component/diary/diaryIconComment.js | 8 +- src/component/diary/diaryIconOkB.js | 19 +++-- src/page/WritePage.js | 97 +++++++++++++++++-------- 4 files changed, 86 insertions(+), 44 deletions(-) diff --git a/src/component/dateInput.js b/src/component/dateInput.js index e556885..35f0c80 100644 --- a/src/component/dateInput.js +++ b/src/component/dateInput.js @@ -22,7 +22,7 @@ export default class DateInput extends Component { this.updateDate(); this.state = { - date: this.formatDate(this.nowDate) + date: this.minDate }; } @@ -36,11 +36,11 @@ export default class DateInput extends Component { this.nowDate = now(); let nowMSec = this.nowDate.getTime(); - let minExpiredMSec = 7 * 24 * 3600000; // at least 7 days to expire + let minExpiredMSec = 8 * 24 * 3600000; // at least 7 days to expire let minExpiredDate = new Date(nowMSec + minExpiredMSec); this.minDate = this.formatDate(minExpiredDate); - let maxExpiredMSec = 3650 * 24 * 3600000; // at most 10 years to expire + let maxExpiredMSec = 364 * 24 * 3600000; // at most 1 years to expire let maxExpireDate = new Date(nowMSec + maxExpiredMSec); this.maxDate = this.formatDate(maxExpireDate); } diff --git a/src/component/diary/diaryIconComment.js b/src/component/diary/diaryIconComment.js index eb8ddd1..5ad8b65 100644 --- a/src/component/diary/diaryIconComment.js +++ b/src/component/diary/diaryIconComment.js @@ -16,13 +16,15 @@ export default class DiaryIconComment extends Component { } render() { - return this.state.count > 0 ? ( + return ( - {this.state.count} + + {this.state.count > 0 ? this.state.count : ''} + - ) : null; + ); } } diff --git a/src/component/diary/diaryIconOkB.js b/src/component/diary/diaryIconOkB.js index 5c96ba2..6a042ba 100644 --- a/src/component/diary/diaryIconOkB.js +++ b/src/component/diary/diaryIconOkB.js @@ -80,12 +80,16 @@ export default class DiaryIconOkB extends Component { style={localStyle.icon} /> - {this.state.count > 0 ? this.state.count : ''} + { + this.state.count > 0 ? + {this.state.count} + : null + } ); @@ -101,8 +105,7 @@ const localStyle = StyleSheet.create({ icon: { width: 18, height: 18, - marginLeft: 4, - marginRight: 1 + marginLeft: 4 }, text: { fontSize: 15, diff --git a/src/page/WritePage.js b/src/page/WritePage.js index a2b9783..bb88d35 100644 --- a/src/page/WritePage.js +++ b/src/page/WritePage.js @@ -13,6 +13,7 @@ import { DeviceEventEmitter, Alert, Image, + InteractionManager, SafeAreaView } from 'react-native'; import {Navigation} from 'react-native-navigation'; @@ -105,8 +106,25 @@ export default class WritePage extends Component { } componentDidMount() { - this.loadNotebook(); - this.contentInput.focus(); + this.loadNotebook().then(notebookCount => { + if(notebookCount > 0) { + setTimeout(() => { + this.contentInput.focus(); + }, 500); + + } else { + Alert.alert('提示', '没有可用日记本,无法写日记',[ + {text: '取消', onPress: () => {}}, + {text: '创建一个', onPress: () => { + Navigation.push(this.props.componentId, { + component: { + name: 'NotebookEdit' + } + }); + }} + ]); + } + }); this.notebookListener = DeviceEventEmitter.addListener(Event.updateNotebooks, (param) => { this.loadNotebook(true); @@ -120,12 +138,6 @@ export default class WritePage extends Component { openModal() { this.contentInput.blur(); this.setState({modalVisible: true}); - - if(this.state.notebooks.length == 0) { - Alert.alert('提示', '没有可用日记本,无法写日记', [ - {text: '确定', onPress: () => {}} - ]); - } } closeModal(showKeyboard = true, callback) { @@ -185,29 +197,27 @@ export default class WritePage extends Component { }); } - loadNotebook(resetTargetbook = false) { - Api.getSelfNotebooks() - .then(notebooks => { - if (!notebooks || !notebooks.filter) { - notebooks = []; - } + async loadNotebook(resetTargetbook = false) { + let notebooks = await Api.getSelfNotebooks(); + if(!notebooks || !notebooks.filter) { + notebooks = []; + } - let unExpiredBooks = notebooks.filter(it => !it.isExpired); - if (unExpiredBooks.length > 0) { - let st = { - notebooks: unExpiredBooks - } + let unExpiredBooks = notebooks.filter(it => !it.isExpired);unExpiredBooks=[]; + if(unExpiredBooks && unExpiredBooks.length > 0) { + let st = { + notebooks: unExpiredBooks + } - if (resetTargetbook || this.state.targetbookId == 0) { - st.targetbookId = unExpiredBooks[0].id; - st.targetbookSubject = unExpiredBooks[0].subject; - } + if(resetTargetbook || this.state.targetbookId == 0) { + st.targetbookId = unExpiredBooks[0].id; + st.targetbookSubject = unExpiredBooks[0].subject; + } - this.setState(st); - } + this.setState(st); + } - }) - .catch((err) => { console.error(err) }) + return unExpiredBooks && unExpiredBooks.length > 0 ? unExpiredBooks.length : 0; } _onPickPhoto() { @@ -262,6 +272,29 @@ export default class WritePage extends Component { return; } + if(this.state.targetbookId == 0) { + if(this.state.notebooks.length == 0) { + this.contentInput.blur(); + Alert.alert('提示', '没有可用日记本,无法写日记',[ + {text: '取消', onPress: () => {}}, + {text: '创建一个', onPress: () => { + Navigation.push(this.props.componentId, { + component: { + name: 'NotebookEdit' + } + }); + }} + ]); + + } else { + Alert.alert('提示', '选择一个日记本先',[ + {text: '确定', onPress: () => this.openModal()} + ]); + } + + return; + } + let photoUri = this.state.photoUri; let topic = this.props.topic ? 1 : 0; @@ -431,9 +464,13 @@ export default class WritePage extends Component { - - 新添 - + { + !this.diary ? + + 新添 + : + } + 选择日记本 取消