退出写日记页面增加提示 & 优化写日记页面打开逻辑

This commit is contained in:
mx1700 2019-08-04 20:29:03 +08:00
parent 2bc456dadd
commit d159650186
2 changed files with 53 additions and 57 deletions

View file

@ -23,41 +23,15 @@ export default class EmptyPage extends Component {
componentDidMount() { componentDidMount() {
this.navigationEventListener = Navigation.events().bindComponent(this); this.navigationEventListener = Navigation.events().bindComponent(this);
} this.bottomTabEventListener = Navigation.events().registerBottomTabSelectedListener(({ selectedTabIndex, unselectedTabIndex }) => {
if(selectedTabIndex === 2) {
componentWillUnmount() { Navigation.showModal({
this.navigationEventListener.remove(); stack: {
} children: [{
componentDidAppear() {
let forword = true;
if(this.state.from == 'write') {
forword = false;
this.setState({from: ''});
}
if(!forword) {
Navigation.mergeOptions(this.props.componentId, {
bottomTabs: {
currentTabIndex: 4
}
});
} else {
Navigation.push(this.props.componentId, {
component: { component: {
name: 'Write', name: 'Write',
options: { passProps: {
animations: { text: 'stack with one child'
push: {
enabled: false
},
pop: {
enabled: false
}
}, },
bottomTabs: { bottomTabs: {
visible: false, visible: false,
@ -66,14 +40,30 @@ export default class EmptyPage extends Component {
drawBehind: true, drawBehind: true,
animate: true animate: true
} }
},
passProps: {
} }
}]
}
});
setTimeout(() => {
Navigation.mergeOptions(this.props.componentId, {
bottomTabs: {
currentTabIndex: unselectedTabIndex
}
});
}, 1000)
} }
}); });
} }
componentWillUnmount() {
this.navigationEventListener.remove();
this.bottomTabEventListener.remove();
}
componentDidAppear() {
} }

View file

@ -81,23 +81,19 @@ export default class WritePage extends Component {
navigationButtonPressed({buttonId}) { navigationButtonPressed({buttonId}) {
if(buttonId == 'cancel') { if(buttonId == 'cancel') {
if(this.diary || this.topic) { if(this.state.content.length > 0) {
Navigation.pop(this.props.componentId); Alert.alert('提示', '日记还没保存,退出将删除日记内容', [
{
} else { text: '取消', onPress: () => {}
Navigation.setStackRoot(this.props.componentId, {
component: {
name: 'Empty',
options: {
bottomTabs: {
visible: true
}
}, },
passProps: { {
from: 'write' text: '删除并退出', onPress: () => {
this.closePage();
} }
} }
}); ]);
} else {
this.closePage();
} }
} else if(buttonId == 'save') { } else if(buttonId == 'save') {
@ -105,6 +101,16 @@ export default class WritePage extends Component {
} }
} }
closePage() {
this.contentInput.blur();
if (this.diary || this.topic) {
Navigation.pop(this.props.componentId);
} else {
Navigation.dismissModal(this.props.componentId);
}
}
componentDidMount() { componentDidMount() {
this.loadNotebook().then(notebookCount => { this.loadNotebook().then(notebookCount => {
if(notebookCount > 0) { if(notebookCount > 0) {