diff --git a/extensions/package-manager/js/src/admin/models/ExternalExtension.ts b/extensions/package-manager/js/src/admin/models/ExternalExtension.ts index fd1692a8a..ced2f2b09 100644 --- a/extensions/package-manager/js/src/admin/models/ExternalExtension.ts +++ b/extensions/package-manager/js/src/admin/models/ExternalExtension.ts @@ -22,21 +22,9 @@ export default class ExternalExtension extends Model { locale = Model.attribute('locale'); latestFlarumVersionSupported = Model.attribute('latestFlarumVersionSupported'); downloads = Model.attribute('downloads'); + isSupported = Model.attribute('isSupported'); readonly installed = false; - public isSupported(): boolean { - const currentVersion = app.data.settings.version; - const latestCompatibleVersion = this.latestFlarumVersionSupported(); - - // If stability is not the same, it's not compatible. - if (currentVersion.split('-')[1] !== latestCompatibleVersion.split('-')[1]) { - return false; - } - - // Minor versions are compatible. - return currentVersion.split('.')[0] === latestCompatibleVersion.split('.')[0]; - } - public isProductionReady(): boolean { return isProductionReady(this.highestVersion()); } diff --git a/extensions/package-manager/src/Api/Resource/ExternalExtensionResource.php b/extensions/package-manager/src/Api/Resource/ExternalExtensionResource.php index b0a90ee8d..0984cbc19 100644 --- a/extensions/package-manager/src/Api/Resource/ExternalExtensionResource.php +++ b/extensions/package-manager/src/Api/Resource/ExternalExtensionResource.php @@ -9,6 +9,7 @@ namespace Flarum\ExtensionManager\Api\Resource; +use Composer\Semver\Semver; use Flarum\Api\Endpoint; use Flarum\Api\Resource\AbstractResource; use Flarum\Api\Resource\Contracts\Countable; @@ -81,6 +82,11 @@ class ExternalExtensionResource extends AbstractResource implements Listable, Pa Schema\Boolean::make('compatibleWithLatestFlarum') ->property('compatible_with_latest_flarum'), Schema\Integer::make('downloads'), + + Schema\Boolean::make('isSupported') + ->get(function (Extension $extension) { + return Semver::satisfies(Application::VERSION, $extension->latest_flarum_version_supported); + }), ]; } diff --git a/framework/core/less/common/Badge.less b/framework/core/less/common/Badge.less index aa025a941..e0da86ae8 100644 --- a/framework/core/less/common/Badge.less +++ b/framework/core/less/common/Badge.less @@ -70,5 +70,6 @@ } .Badge--success { - --badge-bg: var(--success-color); + --badge-color: var(--control-success-color); + --badge-bg: var(--control-success-bg); }