Clean up versioning and packageJson uses

- Rename packageJsonInjectable -> applicationInformationInjectable

- Add injectables for all sub items

- Introduce storeMigrationVersionInjectable for BaseStores

- Introduce extensionApiVersionInjectable

- Use buildVersionInjectable in more places, such as in telemetry

Signed-off-by: Sebastian Malton <sebastian@malton.name>
This commit is contained in:
Sebastian Malton committed 2022-09-15 09:43:28 -04:00
1 parent a784ca70b1
commit cedb0c4fa9
79 files changed
+684 -491

No files matched your search

@@ -8,14 +8,14 @@ import routeIsActiveInjectable from "../../../routes/route-is-active.injectable"
import { computed } from "mobx";
import telemetryPreferenceItemsInjectable from "../telemetry-preference-items.injectable";
import telemetryPreferencesRouteInjectable from "../../../../common/front-end-routing/routes/preferences/telemetry/telemetry-preferences-route.injectable";
import sentryDnsUrlInjectable from "../sentry-dns-url.injectable";
import sentryDataSourceNameInjectable from "../../../../common/vars/sentry-dsn-url.injectable";
import navigateToPreferenceTabInjectable from "./navigate-to-preference-tab.injectable";
const terminalPreferencesNavigationItemInjectable = getInjectable({
id: "telemetry-preferences-navigation-item",
instantiate: (di) => {
const sentryDnsUrl = di.inject(sentryDnsUrlInjectable);
const sentryDataSourceName = di.inject(sentryDataSourceNameInjectable);
const telemetryPreferenceItems = di.inject(
telemetryPreferenceItemsInjectable,
@@ -37,7 +37,7 @@ const terminalPreferencesNavigationItemInjectable = getInjectable({
isActive: routeIsActive,
isVisible: computed(
() => !!sentryDnsUrl || telemetryPreferenceItems.get().length > 0,
() => !!sentryDataSourceName || telemetryPreferenceItems.get().length > 0,
),
orderNumber: 60,
@@ -1,13 +0,0 @@
/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { getInjectable } from "@ogre-tools/injectable";
import { sentryDsn } from "../../../common/vars";
const sentryDnsUrlInjectable = getInjectable({
id: "sentry-dns-url",
instantiate: () => sentryDsn,
});
export default sentryDnsUrlInjectable;
@@ -12,7 +12,7 @@ import type { IComputedValue } from "mobx";
import { withInjectables } from "@ogre-tools/injectable-react";
import { Preferences } from "./preferences";
import telemetryPreferenceItemsInjectable from "./telemetry-preference-items.injectable";
import sentryDnsUrlInjectable from "./sentry-dns-url.injectable";
import sentryDataSourceNameInjectable from "../../../common/vars/sentry-dsn-url.injectable";
import userStoreInjectable from "../../../common/user-store/user-store.injectable";
import type { AppPreferenceRegistration } from "./app-preferences/app-preference-registration";
@@ -74,7 +74,7 @@ export const Telemetry = withInjectables<Dependencies>(
{
getProps: (di) => ({
telemetryPreferenceItems: di.inject(telemetryPreferenceItemsInjectable),
sentryDnsUrl: di.inject(sentryDnsUrlInjectable),
sentryDnsUrl: di.inject(sentryDataSourceNameInjectable),
userStore: di.inject(userStoreInjectable),
}),
},
+9 -2
View File
@@ -10,12 +10,13 @@ import type { IComputedValue } from "mobx";
import type { CarouselProps } from "react-material-ui-carousel";
import LegacyCarousel from "react-material-ui-carousel";
import { Icon } from "../icon";
import { productName, slackUrl } from "../../../common/vars";
import { slackUrl } from "../../../common/vars";
import { withInjectables } from "@ogre-tools/injectable-react";
import welcomeMenuItemsInjectable from "./welcome-menu-items/welcome-menu-items.injectable";
import type { WelcomeMenuRegistration } from "./welcome-menu-items/welcome-menu-registration";
import welcomeBannerItemsInjectable from "./welcome-banner-items/welcome-banner-items.injectable";
import type { WelcomeBannerRegistration } from "./welcome-banner-items/welcome-banner-registration";
import productNameInjectable from "../../../common/vars/product-name.injectable";
export const defaultWidth = 320;
@@ -25,9 +26,14 @@ const Carousel = LegacyCarousel as React.ComponentType<CarouselProps>;
interface Dependencies {
welcomeMenuItems: IComputedValue<WelcomeMenuRegistration[]>;
welcomeBannerItems: IComputedValue<WelcomeBannerRegistration[]>;
productName: string;
}
const NonInjectedWelcome = observer(({ welcomeMenuItems, welcomeBannerItems }: Dependencies) => {
const NonInjectedWelcome = observer(({
welcomeMenuItems,
welcomeBannerItems,
productName,
}: Dependencies) => {
const welcomeBanners = welcomeBannerItems.get();
// if there is banner with specified width, use it to calculate the width of the container
@@ -129,5 +135,6 @@ export const Welcome = withInjectables<Dependencies>(NonInjectedWelcome, {
getProps: (di) => ({
welcomeMenuItems: di.inject(welcomeMenuItemsInjectable),
welcomeBannerItems: di.inject(welcomeBannerItemsInjectable),
productName: di.inject(productNameInjectable),
}),
});
@@ -11,10 +11,11 @@ import type { SelectOption } from "../../select";
import { Select } from "../../select";
import { Input } from "../../input";
import { observable, computed, autorun, makeObservable } from "mobx";
import { productName } from "../../../../common/vars";
import type { MetricProviderInfo } from "../../../../common/k8s-api/endpoints/metrics.api";
import { metricsApi } from "../../../../common/k8s-api/endpoints/metrics.api";
import { Spinner } from "../../spinner";
import { withInjectables } from "@ogre-tools/injectable-react";
import productNameInjectable from "../../../../common/vars/product-name.injectable";
export interface ClusterPrometheusSettingProps {
cluster: Cluster;
@@ -24,8 +25,12 @@ const autoDetectPrometheus = Symbol("auto-detect-prometheus");
type ProviderValue = typeof autoDetectPrometheus | string;
interface Dependencies {
productName: string;
}
@observer
export class ClusterPrometheusSetting extends React.Component<ClusterPrometheusSettingProps> {
class NonInjectedClusterPrometheusSetting extends React.Component<ClusterPrometheusSettingProps & Dependencies> {
@observable path = "";
@observable selectedOption: ProviderValue = autoDetectPrometheus;
@observable loading = true;
@@ -46,7 +51,7 @@ export class ClusterPrometheusSetting extends React.Component<ClusterPrometheusS
];
}
constructor(props: ClusterPrometheusSettingProps) {
constructor(props: ClusterPrometheusSettingProps & Dependencies) {
super(props);
makeObservable(this);
}
@@ -155,7 +160,7 @@ export class ClusterPrometheusSetting extends React.Component<ClusterPrometheusS
placeholder="<namespace>/<service>:<port>"
/>
<small className="hint">
{`An address to an existing Prometheus installation (<namespace>/<service>:<port>). ${productName} tries to auto-detect address if left empty.`}
{`An address to an existing Prometheus installation (<namespace>/<service>:<port>). ${this.props.productName} tries to auto-detect address if left empty.`}
</small>
</section>
</>
@@ -164,3 +169,10 @@ export class ClusterPrometheusSetting extends React.Component<ClusterPrometheusS
);
}
}
export const ClusterPrometheusSetting = withInjectables<Dependencies, ClusterPrometheusSettingProps>(NonInjectedClusterPrometheusSetting, {
getProps: (di, props) => ({
...props,
productName: di.inject(productNameInjectable),
}),
});