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

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() {
this.navigationEventListener = Navigation.events().bindComponent(this);
}
componentWillUnmount() {
this.navigationEventListener.remove();
}
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, {
this.bottomTabEventListener = Navigation.events().registerBottomTabSelectedListener(({ selectedTabIndex, unselectedTabIndex }) => {
if(selectedTabIndex === 2) {
Navigation.showModal({
stack: {
children: [{
component: {
name: 'Write',
options: {
animations: {
push: {
enabled: false
},
pop: {
enabled: false
}
passProps: {
text: 'stack with one child'
},
bottomTabs: {
visible: false,
@ -66,14 +40,30 @@ export default class EmptyPage extends Component {
drawBehind: 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}) {
if(buttonId == 'cancel') {
if(this.diary || this.topic) {
Navigation.pop(this.props.componentId);
} else {
Navigation.setStackRoot(this.props.componentId, {
component: {
name: 'Empty',
options: {
bottomTabs: {
visible: true
}
if(this.state.content.length > 0) {
Alert.alert('提示', '日记还没保存,退出将删除日记内容', [
{
text: '取消', onPress: () => {}
},
passProps: {
from: 'write'
{
text: '删除并退出', onPress: () => {
this.closePage();
}
}
});
]);
} else {
this.closePage();
}
} 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() {
this.loadNotebook().then(notebookCount => {
if(notebookCount > 0) {