Display release changes from release notes instead of using GitHub's API.
This commit is contained in:
parent
3058dbb4a6
commit
080eee7d92
7 changed files with 29 additions and 49 deletions
|
@ -1,3 +1,12 @@
|
|||
import { connect } from 'react-redux';
|
||||
import { selectRemoteVersion, selectReleaseNotes } from 'redux/selectors/app';
|
||||
import LastReleaseChanges from './view';
|
||||
|
||||
export default LastReleaseChanges;
|
||||
const select = (state) => ({
|
||||
releaseVersion: selectRemoteVersion(state),
|
||||
releaseNotes: selectReleaseNotes(state),
|
||||
});
|
||||
|
||||
const perform = () => ({});
|
||||
|
||||
export default connect(select, perform)(LastReleaseChanges);
|
||||
|
|
|
@ -1,23 +1,21 @@
|
|||
// @flow
|
||||
import React, { useState, useEffect } from 'react';
|
||||
import MarkdownPreview from 'component/common/markdown-preview';
|
||||
import React from 'react';
|
||||
import Button from 'component/button';
|
||||
import I18nMessage from 'component/i18nMessage';
|
||||
|
||||
type Props = {
|
||||
hideReleaseVersion?: boolean,
|
||||
releaseVersion: string,
|
||||
releaseNotes: string,
|
||||
};
|
||||
|
||||
const LastReleaseChanges = (props: Props) => {
|
||||
const { hideReleaseVersion } = props;
|
||||
const [releaseTag, setReleaseTag] = useState('');
|
||||
const [releaseChanges, setReleaseChanges] = useState('');
|
||||
const [fetchingReleaseChanges, setFetchingReleaseChanges] = useState(false);
|
||||
const [fetchReleaseFailed, setFetchReleaseFailed] = useState(false);
|
||||
const { hideReleaseVersion, releaseVersion, releaseNotes } = props;
|
||||
|
||||
const releaseVersionTitle = (
|
||||
<p>
|
||||
{!hideReleaseVersion && __('A new version %release_tag% of LBRY is ready for you.', { release_tag: releaseTag })}
|
||||
{!hideReleaseVersion &&
|
||||
__('A new version %release_tag% of LBRY is ready for you.', { release_tag: releaseVersion })}
|
||||
</p>
|
||||
);
|
||||
const seeReleaseNotes = (
|
||||
|
@ -34,47 +32,10 @@ const LastReleaseChanges = (props: Props) => {
|
|||
</p>
|
||||
);
|
||||
|
||||
useEffect(() => {
|
||||
const lastReleaseUrl = 'https://api.github.com/repos/lbryio/lbry-desktop/releases/latest';
|
||||
const options = {
|
||||
method: 'GET',
|
||||
headers: { Accept: 'application/vnd.github.v3+json' },
|
||||
};
|
||||
|
||||
setFetchingReleaseChanges(true);
|
||||
fetch(lastReleaseUrl, options)
|
||||
.then((response) => response.json())
|
||||
.then((response) => {
|
||||
setReleaseTag(response.tag_name);
|
||||
setReleaseChanges(response.body);
|
||||
setFetchingReleaseChanges(false);
|
||||
setFetchReleaseFailed(false);
|
||||
})
|
||||
.catch(() => {
|
||||
setFetchingReleaseChanges(false);
|
||||
setFetchReleaseFailed(true);
|
||||
});
|
||||
}, []);
|
||||
|
||||
if (fetchingReleaseChanges) {
|
||||
return <p>{__('Loading...')}</p>;
|
||||
}
|
||||
|
||||
if (fetchReleaseFailed) {
|
||||
return (
|
||||
<div>
|
||||
{releaseVersionTitle}
|
||||
{seeReleaseNotes}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
return (
|
||||
<div className="release__notes">
|
||||
{releaseVersionTitle}
|
||||
<p>
|
||||
<MarkdownPreview content={releaseChanges} />
|
||||
</p>
|
||||
<p className="last-release-changes" dangerouslySetInnerHTML={{ __html: releaseNotes }} />
|
||||
{seeReleaseNotes}
|
||||
</div>
|
||||
);
|
||||
|
|
|
@ -117,12 +117,13 @@ ipcRenderer.on('open-uri-requested', (event, url, newSession) => {
|
|||
handleError();
|
||||
});
|
||||
|
||||
autoUpdater.on('update-available', ({ version }) => {
|
||||
autoUpdater.on('update-available', (e) => {
|
||||
app.store.dispatch({
|
||||
type: ACTIONS.CHECK_UPGRADE_SUCCESS,
|
||||
data: {
|
||||
upgradeAvailable: true,
|
||||
remoteVersion: version,
|
||||
remoteVersion: e.releaseName || e.version,
|
||||
releaseNotes: e.releaseNotes,
|
||||
},
|
||||
});
|
||||
});
|
||||
|
|
|
@ -201,6 +201,7 @@ reducers[ACTIONS.CHECK_UPGRADE_SUCCESS] = (state, action) =>
|
|||
Object.assign({}, state, {
|
||||
isUpgradeAvailable: action.data.upgradeAvailable,
|
||||
remoteVersion: action.data.remoteVersion,
|
||||
releaseNotes: action.data.releaseNotes,
|
||||
});
|
||||
|
||||
reducers[ACTIONS.CHECK_UPGRADE_SUBSCRIBE] = (state, action) =>
|
||||
|
|
|
@ -23,6 +23,8 @@ export const selectHasClickedComment = createSelector(selectState, (state) => st
|
|||
|
||||
export const selectRemoteVersion = createSelector(selectState, (state) => state.remoteVersion);
|
||||
|
||||
export const selectReleaseNotes = createSelector(selectState, (state) => state.releaseNotes);
|
||||
|
||||
export const selectIsUpgradeAvailable = createSelector(selectState, (state) => state.isUpgradeAvailable);
|
||||
|
||||
export const selectUpgradeFilename = createSelector(selectPlatform, selectRemoteVersion, (platform, version) => {
|
||||
|
|
|
@ -70,3 +70,4 @@
|
|||
@import 'component/utils';
|
||||
@import 'component/settings';
|
||||
@import 'component/embed-player';
|
||||
@import 'component/last-release-changes';
|
||||
|
|
5
ui/scss/component/_last-release-changes.scss
Normal file
5
ui/scss/component/_last-release-changes.scss
Normal file
|
@ -0,0 +1,5 @@
|
|||
.last-release-changes {
|
||||
a {
|
||||
@extend .button--link;
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue