import React from 'react'; import request from 'request'; import Modal from '../base/Modal'; import ModalBody from '../base/ModalBody'; import ModalHeader from '../base/ModalHeader'; import ModalFooter from '../base/ModalFooter'; import ModalComponent from '../lib/ModalComponent'; import {CHANGELOG_URL} from '../../lib/constants'; import {getAppVersion} from '../../lib/appInfo'; class ChangelogModal extends ModalComponent { constructor (props) { super(props); this.state = { startVersion: getAppVersion(), changelog: null }; } show (startVersion = null) { super.show(); if (startVersion) { this.setState({startVersion}); } } componentDidMount () { super.componentDidMount(); request.get(CHANGELOG_URL, (err, response) => { if (err) { console.error('Failed to load changelog', err); return; } let changelog; try { changelog = JSON.parse(response.body); } catch (e) { console.error('Failed to parse changelog', e); return; } this.setState({changelog}); }); } shouldComponentUpdate (nextProps, nextState) { return nextState !== this.state; } render () { const {changelog, startVersion} = this.state; let html; if (!changelog) { html = [
{change.summary}
] } else { html = [ ...html,{change.summary[0]}
, ...change.summary.slice(1).map((text, i) =>{text}
) ] } } if (change.major && change.major.length) { html = [ ...html,