Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import { compose, withProps, withHandlers, withState } from 'recompose';
- import { connect } from 'react-redux';
- import { injectIntl, defineMessages } from 'react-intl';
- import { withRouter } from 'react-router';
- import { isAutoUpdateEnabled, getReleaseNotes } from 'app/state/selectors';
- import { injectMinerConsumables, injectMiner } from 'app/components/wrappers';
- import { POCKET_MINER_PAGE } from 'app/constants/navigation';
- import { DOWNLOAD_STATE } from 'shared/constants';
- import ReleaseNotes, { UPDATE_FLOW } from './ReleaseNotes';
- const messages = defineMessages({
- release_notes_version: {
- id: 'release_notes_version',
- defaultMessage: 'GShare version',
- },
- release_notes_whats_new: {
- id: 'release_notes_whats_new',
- defaultMessage: `What's new`,
- },
- release_notes_remind_later: {
- id: 'release_notes_remind_later',
- defaultMessage: 'Remind me later',
- },
- release_notes_install_and_restart: {
- id: 'release_notes_install_and_restart',
- defaultMessage: 'Install & Restart',
- },
- release_notes_update_progress: {
- id: 'release_notes_update_progress',
- defaultMessage: 'Downloading update...',
- },
- release_notes_download_update: {
- id: 'release_notes_download_update',
- defaultMessage: 'Download Update',
- },
- release_notes_restart_hint: {
- id: 'release_notes_restart_hint',
- defaultMessage: 'Restart is necessary after install to apply update.',
- },
- });
- const mapStateToProps = state => ({
- notes: getReleaseNotes(state).notes,
- version: getReleaseNotes(state).version,
- isAutoUpdateEnabled: isAutoUpdateEnabled(state),
- });
- const actions = {};
- export default compose(
- injectMiner,
- injectIntl,
- withRouter,
- connect(mapStateToProps, actions),
- withState('updateFlowStep', 'setUpdateFlowStep', UPDATE_FLOW.UPDATE_CONTROLS),
- withHandlers({
- onDownloadUpdate: ({ setUpdateFlowStep, minerMiddleware }) => () => {
- minerMiddleware.installUpdate();
- setUpdateFlowStep(UPDATE_FLOW.DOWNLOAD_UPDATE);
- },
- onRemindLater: ({ history }) => () => {
- history.push(POCKET_MINER_PAGE);
- },
- onInstallAndRestart: ({ minerMiddleware }) => () => {
- minerMiddleware.finalizeUpdate();
- },
- }),
- withProps(({ intl: { formatMessage }, version }) => ({
- titleDisplayName: `${formatMessage(
- messages.release_notes_version,
- )} ${version}`,
- notesSubHeaderDisplayName: formatMessage(messages.release_notes_whats_new),
- downloadProgressDisplayName: formatMessage(
- messages.release_notes_update_progress,
- ),
- downloadUpdateDisplayName: formatMessage(
- messages.release_notes_download_update,
- ),
- remindLaterDisplayName: formatMessage(messages.release_notes_remind_later),
- installAndRestartDisplayName: formatMessage(
- messages.release_notes_install_and_restart,
- ),
- restartHintDisplayName: formatMessage(messages.release_notes_restart_hint),
- })),
- injectMinerConsumables({
- appDownloadProgress: (
- { status, percent },
- { setUpdateFlowStep },
- setState,
- ) => {
- switch (status) {
- case DOWNLOAD_STATE.IN_PROGRESS: {
- setState({
- downloadProgress: percent,
- });
- break;
- }
- case DOWNLOAD_STATE.FINISHED: {
- setUpdateFlowStep(UPDATE_FLOW.INSTALL_READY);
- break;
- }
- default:
- break;
- }
- },
- }),
- )(ReleaseNotes);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement