mirror of
https://github.com/flarum/core.git
synced 2025-08-04 15:37:51 +02:00
fix(em): prevent major updater for pre-releases (#4131)
This commit is contained in:
@@ -7,6 +7,7 @@ import MajorUpdater from './MajorUpdater';
|
|||||||
import ExtensionItem from './ExtensionItem';
|
import ExtensionItem from './ExtensionItem';
|
||||||
import { Extension } from 'flarum/admin/AdminApplication';
|
import { Extension } from 'flarum/admin/AdminApplication';
|
||||||
import ItemList from 'flarum/common/utils/ItemList';
|
import ItemList from 'flarum/common/utils/ItemList';
|
||||||
|
import { isProductionReady } from '../utils/versions';
|
||||||
|
|
||||||
export interface IUpdaterAttrs extends ComponentAttrs {}
|
export interface IUpdaterAttrs extends ComponentAttrs {}
|
||||||
|
|
||||||
@@ -24,7 +25,7 @@ export default class Updater extends Component<IUpdaterAttrs> {
|
|||||||
<div className="ExtensionManager-updaterControls">{this.controlItems().toArray()}</div>
|
<div className="ExtensionManager-updaterControls">{this.controlItems().toArray()}</div>
|
||||||
{this.availableUpdatesView()}
|
{this.availableUpdatesView()}
|
||||||
</div>,
|
</div>,
|
||||||
core && core.package['latest-major'] ? (
|
core && core.package['latest-major'] && isProductionReady(core.package['latest-major']) ? (
|
||||||
<MajorUpdater coreUpdate={core.package} updateState={app.extensionManager.control.lastUpdateRun.major} />
|
<MajorUpdater coreUpdate={core.package} updateState={app.extensionManager.control.lastUpdateRun.major} />
|
||||||
) : null,
|
) : null,
|
||||||
];
|
];
|
||||||
|
32
extensions/package-manager/js/src/admin/utils/versions.ts
Normal file
32
extensions/package-manager/js/src/admin/utils/versions.ts
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
export enum VersionStability {
|
||||||
|
Stable = 'stable',
|
||||||
|
Alpha = 'alpha',
|
||||||
|
Beta = 'beta',
|
||||||
|
RC = 'rc',
|
||||||
|
Dev = 'dev',
|
||||||
|
}
|
||||||
|
|
||||||
|
export function isProductionReady(version: string): boolean {
|
||||||
|
return [VersionStability.Stable].includes(stability(version));
|
||||||
|
}
|
||||||
|
|
||||||
|
export function stability(version: string): VersionStability {
|
||||||
|
const split = version.split('-');
|
||||||
|
|
||||||
|
if (split.length === 1) {
|
||||||
|
return VersionStability.Stable;
|
||||||
|
}
|
||||||
|
|
||||||
|
const stab = split[1].split('.')[0].toLowerCase();
|
||||||
|
|
||||||
|
switch (stab) {
|
||||||
|
case 'alpha':
|
||||||
|
return VersionStability.Alpha;
|
||||||
|
case 'beta':
|
||||||
|
return VersionStability.Beta;
|
||||||
|
case 'rc':
|
||||||
|
return VersionStability.RC;
|
||||||
|
default:
|
||||||
|
return VersionStability.Dev;
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user