Advertisement
Guest User

Untitled

a guest
Jul 3rd, 2018
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import { compose, withProps, withHandlers, withState } from 'recompose';
  2. import { connect } from 'react-redux';
  3. import { injectIntl, defineMessages } from 'react-intl';
  4. import { withRouter } from 'react-router';
  5.  
  6. import { isAutoUpdateEnabled, getReleaseNotes } from 'app/state/selectors';
  7. import { injectMinerConsumables, injectMiner } from 'app/components/wrappers';
  8. import { POCKET_MINER_PAGE } from 'app/constants/navigation';
  9. import { DOWNLOAD_STATE } from 'shared/constants';
  10.  
  11. import ReleaseNotes, { UPDATE_FLOW } from './ReleaseNotes';
  12.  
  13. const messages = defineMessages({
  14.   release_notes_version: {
  15.     id: 'release_notes_version',
  16.     defaultMessage: 'GShare version',
  17.   },
  18.   release_notes_whats_new: {
  19.     id: 'release_notes_whats_new',
  20.     defaultMessage: `What's new`,
  21.  },
  22.  release_notes_remind_later: {
  23.    id: 'release_notes_remind_later',
  24.    defaultMessage: 'Remind me later',
  25.  },
  26.  release_notes_install_and_restart: {
  27.    id: 'release_notes_install_and_restart',
  28.    defaultMessage: 'Install & Restart',
  29.  },
  30.  release_notes_update_progress: {
  31.    id: 'release_notes_update_progress',
  32.    defaultMessage: 'Downloading update...',
  33.  },
  34.  release_notes_download_update: {
  35.    id: 'release_notes_download_update',
  36.    defaultMessage: 'Download Update',
  37.  },
  38.  release_notes_restart_hint: {
  39.    id: 'release_notes_restart_hint',
  40.    defaultMessage: 'Restart is necessary after install to apply update.',
  41.  },
  42. });
  43.  
  44. const mapStateToProps = state => ({
  45.  notes: getReleaseNotes(state).notes,
  46.  version: getReleaseNotes(state).version,
  47.  isAutoUpdateEnabled: isAutoUpdateEnabled(state),
  48. });
  49.  
  50. const actions = {};
  51.  
  52. export default compose(
  53.  injectMiner,
  54.  injectIntl,
  55.  withRouter,
  56.  connect(mapStateToProps, actions),
  57.  withState('updateFlowStep', 'setUpdateFlowStep', UPDATE_FLOW.UPDATE_CONTROLS),
  58.  withHandlers({
  59.    onDownloadUpdate: ({ setUpdateFlowStep, minerMiddleware }) => () => {
  60.      minerMiddleware.installUpdate();
  61.      setUpdateFlowStep(UPDATE_FLOW.DOWNLOAD_UPDATE);
  62.    },
  63.    onRemindLater: ({ history }) => () => {
  64.      history.push(POCKET_MINER_PAGE);
  65.    },
  66.    onInstallAndRestart: ({ minerMiddleware }) => () => {
  67.      minerMiddleware.finalizeUpdate();
  68.    },
  69.  }),
  70.  withProps(({ intl: { formatMessage }, version }) => ({
  71.    titleDisplayName: `${formatMessage(
  72.      messages.release_notes_version,
  73.    )} ${version}`,
  74.    notesSubHeaderDisplayName: formatMessage(messages.release_notes_whats_new),
  75.    downloadProgressDisplayName: formatMessage(
  76.      messages.release_notes_update_progress,
  77.    ),
  78.    downloadUpdateDisplayName: formatMessage(
  79.      messages.release_notes_download_update,
  80.    ),
  81.    remindLaterDisplayName: formatMessage(messages.release_notes_remind_later),
  82.    installAndRestartDisplayName: formatMessage(
  83.      messages.release_notes_install_and_restart,
  84.    ),
  85.    restartHintDisplayName: formatMessage(messages.release_notes_restart_hint),
  86.  })),
  87.  injectMinerConsumables({
  88.    appDownloadProgress: (
  89.      { status, percent },
  90.      { setUpdateFlowStep },
  91.      setState,
  92.    ) => {
  93.      switch (status) {
  94.        case DOWNLOAD_STATE.IN_PROGRESS: {
  95.          setState({
  96.            downloadProgress: percent,
  97.          });
  98.          break;
  99.        }
  100.        case DOWNLOAD_STATE.FINISHED: {
  101.          setUpdateFlowStep(UPDATE_FLOW.INSTALL_READY);
  102.          break;
  103.        }
  104.        default:
  105.          break;
  106.      }
  107.    },
  108.  }),
  109. )(ReleaseNotes);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement