1 changed files with 47 additions and 8 deletions
@ -1,16 +1,55 @@ |
|||||
// @flow
|
// @flow
|
||||
import React from 'react' |
|
||||
|
|
||||
|
import React, { PureComponent } from 'react' |
||||
|
import { connect } from 'react-redux' |
||||
|
import semver from 'semver' |
||||
|
|
||||
|
import type { State } from 'reducers' |
||||
|
import { openModal } from 'reducers/modals' |
||||
|
import { lastUsedVersionSelector } from 'reducers/settings' |
||||
|
import { saveSettings } from 'actions/settings' |
||||
import { MODAL_RELEASES_NOTES } from 'config/constants' |
import { MODAL_RELEASES_NOTES } from 'config/constants' |
||||
import Modal from 'components/base/Modal' |
import Modal from 'components/base/Modal' |
||||
|
|
||||
import ReleaseNotesBody from './ReleaseNotesBody' |
import ReleaseNotesBody from './ReleaseNotesBody' |
||||
|
|
||||
const ReleaseNotesModal = () => ( |
type Props = { |
||||
|
openModal: Function, |
||||
|
saveSettings: Function, |
||||
|
lastUsedVersion: string, |
||||
|
} |
||||
|
|
||||
|
const mapStateToProps = (state: State) => ({ |
||||
|
lastUsedVersion: lastUsedVersionSelector(state), |
||||
|
}) |
||||
|
|
||||
|
const mapDispatchToProps = { |
||||
|
openModal, |
||||
|
saveSettings, |
||||
|
} |
||||
|
|
||||
|
class ReleaseNotesModal extends PureComponent<Props> { |
||||
|
componentDidMount() { |
||||
|
const { lastUsedVersion, saveSettings, openModal } = this.props |
||||
|
const currentVersion = __APP_VERSION__ |
||||
|
|
||||
|
if (semver.gt(currentVersion, lastUsedVersion)) { |
||||
|
openModal(MODAL_RELEASES_NOTES, currentVersion) |
||||
|
saveSettings({ lastUsedVersion: currentVersion }) |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
render() { |
||||
|
return ( |
||||
<Modal |
<Modal |
||||
name={MODAL_RELEASES_NOTES} |
name={MODAL_RELEASES_NOTES} |
||||
render={({ data, onClose }) => <ReleaseNotesBody version={data} onClose={onClose} />} |
render={({ data, onClose }) => <ReleaseNotesBody version={data} onClose={onClose} />} |
||||
/> |
/> |
||||
) |
) |
||||
|
} |
||||
|
} |
||||
|
|
||||
export default ReleaseNotesModal |
export default connect( |
||||
|
mapStateToProps, |
||||
|
mapDispatchToProps, |
||||
|
)(ReleaseNotesModal) |
||||
|
Loading…
Reference in new issue