import React from 'react';
import { connect } from 'dva';
import intl from 'utils/intl';
import { onBeforeMenuTabRemove } from 'utils/menuTab';
import { Modal } from 'choerodon-ui/pro';
@connect()
export default class CloseTab extends React.Component {
constructor(props) {
super(props);
this.state = {};
}
componentDidMount() {
window.addEventListener('beforeunload', this.handleBeforeUnload);
const { id } = this.props;
onBeforeMenuTabRemove(`/ba-lims/project/detail/${id}`, () => {
return new Promise((resolve, reject) => {
const isChange = sessionStorage.getItem(`isChangeOffficeValue${id}`);
if (isChange == "true") {
Modal.confirm({
title: intl
.get('hzero.common.message.confirm.giveUpTip')
.d('你有修改未保存,是否确认离开?'),
onOk: () => {
sessionStorage.setItem(`isChangeOffficeValue${id}`, "false");
resolve();
},
onCancel: () => {
reject();
},
});
} else {
resolve();
}
});
});
}
componentWillUnmount() {
window.removeEventListener('beforeunload', this.handleBeforeUnload);
}
handleBeforeUnload = (event) => {
const { id } = this.props;
const isChange = sessionStorage.getItem(`isChangeOffficeValue${id}`);
if (isChange != "true") {
return;
}
event.preventDefault();
event.returnValue = "数据未保存!"
}
render() {
return (
<></>
);
}
}