40 lines
966 B
TypeScript
40 lines
966 B
TypeScript
import { connect } from 'react-redux';
|
|
|
|
import { cancelReplyCompose } from 'soapbox/actions/compose';
|
|
import { closeModal } from 'soapbox/actions/modals';
|
|
import { cancelReport } from 'soapbox/actions/reports';
|
|
|
|
import ModalRoot, { ModalType } from '../components/modal-root';
|
|
|
|
import type { AppDispatch, RootState } from 'soapbox/store';
|
|
|
|
const mapStateToProps = (state: RootState) => {
|
|
const modal = state.modals.last({
|
|
modalType: null,
|
|
modalProps: {},
|
|
});
|
|
|
|
return {
|
|
type: modal.modalType as ModalType,
|
|
props: modal.modalProps,
|
|
};
|
|
};
|
|
|
|
const mapDispatchToProps = (dispatch: AppDispatch) => ({
|
|
onClose(type?: ModalType) {
|
|
switch (type) {
|
|
case 'COMPOSE':
|
|
dispatch(cancelReplyCompose());
|
|
break;
|
|
case 'REPORT':
|
|
dispatch(cancelReport());
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
|
|
dispatch(closeModal(type));
|
|
},
|
|
});
|
|
|
|
export default connect(mapStateToProps, mapDispatchToProps)(ModalRoot);
|