Release notification changes
This commit is contained in:
21
src/App.js
21
src/App.js
@@ -14,6 +14,10 @@ import MountItems from './containers/MountItems/MountItems';
|
|||||||
import NewReleases from './components/NewReleases/NewReleases';
|
import NewReleases from './components/NewReleases/NewReleases';
|
||||||
import {notifyError} from './redux/actions/error_actions';
|
import {notifyError} from './redux/actions/error_actions';
|
||||||
import Reboot from './components/Reboot/Reboot';
|
import Reboot from './components/Reboot/Reboot';
|
||||||
|
import {
|
||||||
|
setDismissNewReleasesAvailable,
|
||||||
|
setNewReleasesAvailable
|
||||||
|
} from './redux/actions/release_version_actions';
|
||||||
import ReleaseVersionDisplay from './components/ReleaseVersionDisplay/ReleaseVersionDisplay';
|
import ReleaseVersionDisplay from './components/ReleaseVersionDisplay/ReleaseVersionDisplay';
|
||||||
import {
|
import {
|
||||||
displaySelectAppPlatform,
|
displaySelectAppPlatform,
|
||||||
@@ -73,6 +77,15 @@ class App extends IPCContainer {
|
|||||||
this.props.VersionLookup[Constants.RELEASE_TYPES[this.props.Release]][this.props.ReleaseVersion];
|
this.props.VersionLookup[Constants.RELEASE_TYPES[this.props.Release]][this.props.ReleaseVersion];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
handleUpgradeIconClicked = () => {
|
||||||
|
if (this.props.UpgradeAvailable) {
|
||||||
|
this.props.setDismissUIUpgrade(false)
|
||||||
|
} else if (this.props.NewReleasesAvailable2.length > 0) {
|
||||||
|
this.props.setNewReleasesAvailable(this.props.NewReleasesAvailable2);
|
||||||
|
this.props.setDismissNewReleasesAvailable(false);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const selectedVersion = this.getSelectedVersion();
|
const selectedVersion = this.getSelectedVersion();
|
||||||
|
|
||||||
@@ -177,8 +190,9 @@ class App extends IPCContainer {
|
|||||||
textAlign={'center'}
|
textAlign={'center'}
|
||||||
type={'Heading1'}/>
|
type={'Heading1'}/>
|
||||||
<UpgradeIcon
|
<UpgradeIcon
|
||||||
available={this.props.UpgradeAvailable}
|
available={this.props.UpgradeAvailable || (this.props.NewReleasesAvailable2.length > 0)}
|
||||||
clicked={()=>this.props.setDismissUIUpgrade(false)}
|
newReleases={!this.props.UpgradeAvailable && (this.props.NewReleasesAvailable2.length > 0)}
|
||||||
|
clicked={this.handleUpgradeIconClicked}
|
||||||
col={dimensions => dimensions.columns - 6}
|
col={dimensions => dimensions.columns - 6}
|
||||||
colSpan={5}
|
colSpan={5}
|
||||||
row={1}
|
row={1}
|
||||||
@@ -225,6 +239,7 @@ const mapStateToProps = state => {
|
|||||||
MissingDependencies: state.install.MissingDependencies,
|
MissingDependencies: state.install.MissingDependencies,
|
||||||
MountsBusy: state.mounts.MountsBusy,
|
MountsBusy: state.mounts.MountsBusy,
|
||||||
NewReleasesAvailable: state.relver.NewReleasesAvailable,
|
NewReleasesAvailable: state.relver.NewReleasesAvailable,
|
||||||
|
NewReleasesAvailable2: state.relver.NewReleasesAvailable2,
|
||||||
Platform: state.common.Platform,
|
Platform: state.common.Platform,
|
||||||
ProviderState: state.mounts.ProviderState,
|
ProviderState: state.mounts.ProviderState,
|
||||||
RebootRequired: state.common.RebootRequired,
|
RebootRequired: state.common.RebootRequired,
|
||||||
@@ -243,6 +258,8 @@ const mapDispatchToProps = dispatch => {
|
|||||||
loadReleases: ()=> dispatch(loadReleases()),
|
loadReleases: ()=> dispatch(loadReleases()),
|
||||||
notifyError: (msg, critical, callback) => dispatch(notifyError(msg, critical, callback)),
|
notifyError: (msg, critical, callback) => dispatch(notifyError(msg, critical, callback)),
|
||||||
saveState: () => dispatch(saveState()),
|
saveState: () => dispatch(saveState()),
|
||||||
|
setDismissNewReleasesAvailable: dismiss => dispatch(setDismissNewReleasesAvailable),
|
||||||
|
setNewReleasesAvailable: items => dispatch(setNewReleasesAvailable(items)),
|
||||||
setDismissUIUpgrade: dismiss => dispatch(setDismissUIUpgrade(dismiss)),
|
setDismissUIUpgrade: dismiss => dispatch(setDismissUIUpgrade(dismiss)),
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 70 KiB |
@@ -17,5 +17,9 @@
|
|||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
max-height: 100%;
|
max-height: 100%;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
opacity: 0.65;
|
color: var(--heading_text_color);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.UpgradeIcon.Release {
|
||||||
|
color: var(--heading_other_text_color);
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,13 +1,19 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import './UpgradeIcon.css';
|
import './UpgradeIcon.css';
|
||||||
import availableImage from '../../assets/images/release_available.png';
|
|
||||||
import ReactTooltip from 'react-tooltip';
|
import ReactTooltip from 'react-tooltip';
|
||||||
|
import {faExclamationTriangle} from '@fortawesome/free-solid-svg-icons';
|
||||||
|
import {FontAwesomeIcon} from '@fortawesome/react-fontawesome';
|
||||||
|
|
||||||
export default props => {
|
export default props => {
|
||||||
|
const styles = ['UpgradeIcon'];
|
||||||
let placement = 'left';
|
let placement = 'left';
|
||||||
let toolTipText = 'UI Upgrade Available';
|
let toolTipText = 'UI Upgrade Available';
|
||||||
if (props.release) {
|
if (props.release) {
|
||||||
placement='bottom';
|
placement='bottom';
|
||||||
|
styles.push('Release');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (props.release || props.newReleases) {
|
||||||
toolTipText = 'New Release Available';
|
toolTipText = 'New Release Available';
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -16,10 +22,11 @@ export default props => {
|
|||||||
(
|
(
|
||||||
<div className={'UpgradeIconOwner'}>
|
<div className={'UpgradeIconOwner'}>
|
||||||
<p data-tip='' data-for={placement}>
|
<p data-tip='' data-for={placement}>
|
||||||
<img alt=''
|
<a href={'#'}
|
||||||
onClick={props.clicked}
|
className={styles.join(' ')}
|
||||||
src={availableImage}
|
onClick={props.clicked}>
|
||||||
className={'UpgradeIcon'}/>
|
<FontAwesomeIcon icon={faExclamationTriangle}/>
|
||||||
|
</a>
|
||||||
</p>
|
</p>
|
||||||
<ReactTooltip id={placement} place={placement}>{toolTipText}</ReactTooltip>
|
<ReactTooltip id={placement} place={placement}>{toolTipText}</ReactTooltip>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -10,7 +10,8 @@ import {
|
|||||||
loadReleases,
|
loadReleases,
|
||||||
setActiveRelease,
|
setActiveRelease,
|
||||||
setInstalledVersion,
|
setInstalledVersion,
|
||||||
setReleaseUpgradeAvailable
|
setReleaseUpgradeAvailable,
|
||||||
|
setNewReleasesAvailable2,
|
||||||
} from './release_version_actions';
|
} from './release_version_actions';
|
||||||
import {
|
import {
|
||||||
confirmYesNo,
|
confirmYesNo,
|
||||||
@@ -224,6 +225,11 @@ export const installRelease = source => {
|
|||||||
FilePath: source,
|
FilePath: source,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (arg.data.Success) {
|
||||||
|
localStorage.setItem('previous_releases', localStorage.getItem('releases'));
|
||||||
|
dispatch(setNewReleasesAvailable2([]));
|
||||||
|
}
|
||||||
|
|
||||||
dispatch(setInstallComplete(arg.data));
|
dispatch(setInstallComplete(arg.data));
|
||||||
dispatch(checkVersionInstalled());
|
dispatch(checkVersionInstalled());
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ import {
|
|||||||
} from './install_actions';
|
} from './install_actions';
|
||||||
import {unmountAll} from './mount_actions';
|
import {unmountAll} from './mount_actions';
|
||||||
import {
|
import {
|
||||||
|
checkNewReleases,
|
||||||
getIPCRenderer,
|
getIPCRenderer,
|
||||||
getNewReleases
|
getNewReleases
|
||||||
} from '../../utils';
|
} from '../../utils';
|
||||||
@@ -140,8 +141,11 @@ export const loadReleases = () => {
|
|||||||
|
|
||||||
dispatch(setNewReleasesAvailable(newReleases));
|
dispatch(setNewReleasesAvailable(newReleases));
|
||||||
if (getState().relver.NewReleasesAvailable.length > 0) {
|
if (getState().relver.NewReleasesAvailable.length > 0) {
|
||||||
|
dispatch(setNewReleasesAvailable2(newReleases));
|
||||||
localStorage.setItem('previous_releases', storedReleases);
|
localStorage.setItem('previous_releases', storedReleases);
|
||||||
dispatch(showWindow());
|
dispatch(showWindow());
|
||||||
|
} else if ((newReleases = checkNewReleases()).length > 0) {
|
||||||
|
dispatch(setNewReleasesAvailable2(newReleases));
|
||||||
}
|
}
|
||||||
}).catch(error => {
|
}).catch(error => {
|
||||||
const releases = localStorage.getItem('releases');
|
const releases = localStorage.getItem('releases');
|
||||||
@@ -193,6 +197,7 @@ export const setDismissNewReleasesAvailable = createAction('relver/setDismissNew
|
|||||||
export const setDismissUIUpgrade = createAction('relver/setDismissUIUpgrade');
|
export const setDismissUIUpgrade = createAction('relver/setDismissUIUpgrade');
|
||||||
export const setInstalledVersion = createAction('relver/setInstalledVersion');
|
export const setInstalledVersion = createAction('relver/setInstalledVersion');
|
||||||
export const setNewReleasesAvailable = createAction('relver/setNewReleasesAvailable');
|
export const setNewReleasesAvailable = createAction('relver/setNewReleasesAvailable');
|
||||||
|
export const setNewReleasesAvailable2 = createAction('relver/setNewReleasesAvailable2');
|
||||||
|
|
||||||
export const SET_RELEASE_DATA = 'relver/setReleaseData';
|
export const SET_RELEASE_DATA = 'relver/setReleaseData';
|
||||||
export const setReleaseData = (locationsLookup, versionLookup)=> {
|
export const setReleaseData = (locationsLookup, versionLookup)=> {
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ export const releaseVersionReducer = createReducer({
|
|||||||
InstalledVersion: 'none',
|
InstalledVersion: 'none',
|
||||||
LocationsLookup: {},
|
LocationsLookup: {},
|
||||||
NewReleasesAvailable: [],
|
NewReleasesAvailable: [],
|
||||||
|
NewReleasesAvailable2: [],
|
||||||
Release: 0,
|
Release: 0,
|
||||||
ReleaseDefault: 0,
|
ReleaseDefault: 0,
|
||||||
ReleaseUpgradeAvailable: false,
|
ReleaseUpgradeAvailable: false,
|
||||||
@@ -76,6 +77,12 @@ export const releaseVersionReducer = createReducer({
|
|||||||
NewReleasesAvailable: action.payload,
|
NewReleasesAvailable: action.payload,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
[Actions.setNewReleasesAvailable2]: (state, action) => {
|
||||||
|
return {
|
||||||
|
...state,
|
||||||
|
NewReleasesAvailable2: action.payload,
|
||||||
|
};
|
||||||
|
},
|
||||||
[Actions.SET_RELEASE_DATA]: (state, action) => {
|
[Actions.SET_RELEASE_DATA]: (state, action) => {
|
||||||
return {
|
return {
|
||||||
...state,
|
...state,
|
||||||
|
|||||||
Reference in New Issue
Block a user