This repository has been archived on 2025-09-19. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
repertory-ui/src/redux/reducers/release_version_reducer.js
2020-02-04 12:59:58 -06:00

87 lines
2.0 KiB
JavaScript

import {createReducer} from '@reduxjs/toolkit';
import * as Actions from '../actions/release_version_actions';
import * as Constants from '../../constants';
const versionLookup = Constants.RELEASE_TYPES.map(k=> {
return {
[k]: ['unavailable']
};
}).reduce((map, obj) => {
return {
...map,
...obj,
};
});
export const releaseVersionReducer = createReducer({
AllowDismissDependencies: false,
InstalledVersion: 'none',
LocationsLookup: {},
Release: 0,
ReleaseDefault: 0,
ReleaseUpgradeAvailable: false,
UpgradeAvailable: false,
UpgradeData: null,
UpgradeVersion: null,
UpgradeDismissed: false,
Version: -1,
VersionLookup: versionLookup,
}, {
[Actions.CLEAR_UI_UPGRADE]: state => {
return {
...state,
UpgradeAvailable: false,
UpgradeDismissed: false,
UpgradeData: null,
UpgradeVersion: null,
};
},
[Actions.NOTIFY_ACTIVE_RELEASE]: (state, action) => {
return {
...state,
Release: action.payload.release,
Version: action.payload.version
};
},
[Actions.setAllowDismissDependencies]: (state, action) => {
return {
...state,
AllowDismissDependencies: action.payload,
};
},
[Actions.setDismissUIUpgrade]: (state, action) => {
return {
...state,
UpgradeDismissed: action.payload,
};
},
[Actions.setInstalledVersion]: (state, action) => {
return {
...state,
InstalledVersion: action.payload,
}
},
[Actions.SET_RELEASE_DATA]: (state, action) => {
return {
...state,
LocationsLookup: action.payload.locations,
VersionLookup: action.payload.versions,
};
},
[Actions.setReleaseUpgradeAvailable]: (state, action) => {
return {
...state,
ReleaseUpgradeAvailable: action.payload,
};
},
[Actions.SET_UI_UPGRADE_DATA]: (state, action) => {
return {
...state,
UpgradeAvailable: true,
UpgradeData: action.payload.upgrade_data,
UpgradeVersion: action.payload.version,
UpgradeDismissed: false,
};
}
});