Browse Source

Make ReleaseNotes modal take care of itself

develop
meriadec 6 years ago
parent
commit
7d0dbeaabd
No known key found for this signature in database GPG Key ID: 1D2FC2305E2CB399
  1. 55
      src/components/modals/ReleaseNotes/index.js

55
src/components/modals/ReleaseNotes/index.js

@ -1,16 +1,55 @@
// @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 from 'components/base/Modal'
import ReleaseNotesBody from './ReleaseNotesBody'
const ReleaseNotesModal = () => (
<Modal
name={MODAL_RELEASES_NOTES}
render={({ data, onClose }) => <ReleaseNotesBody version={data} onClose={onClose} />}
/>
)
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
name={MODAL_RELEASES_NOTES}
render={({ data, onClose }) => <ReleaseNotesBody version={data} onClose={onClose} />}
/>
)
}
}
export default ReleaseNotesModal
export default connect(
mapStateToProps,
mapDispatchToProps,
)(ReleaseNotesModal)

Loading…
Cancel
Save