/** * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ import { observer } from "mobx-react"; import React from "react"; import type { UserStore } from "../../../common/user-store"; import { Checkbox } from "../checkbox"; import { SubTitle } from "../layout/sub-title"; import { ExtensionSettings } from "./extension-settings"; import type { IComputedValue } from "mobx"; import { withInjectables } from "@ogre-tools/injectable-react"; import { Preferences } from "./preferences"; import type { ExtensionTelemetryPreferenceRegistration } from "./telemetry-preference-items.injectable"; import telemetryPreferenceItemsInjectable from "./telemetry-preference-items.injectable"; import sentryDnsUrlInjectable from "./sentry-dns-url.injectable"; import userStoreInjectable from "../../../common/user-store/user-store.injectable"; interface Dependencies { telemetryPreferenceItems: IComputedValue; sentryDnsUrl: string; userStore: UserStore; } const NonInjectedTelemetry: React.FC = ({ telemetryPreferenceItems, sentryDnsUrl, userStore, }) => { return (

Telemetry

{telemetryPreferenceItems.get().map((item) => ( ))} {sentryDnsUrl ? (
{ userStore.allowErrorReporting = value; }} />
Automatic error reports provide vital information about issues and application crashes. It is highly recommended to keep this feature enabled to ensure fast turnaround for issues you might encounter.

) : // we don't need to shows the checkbox at all if Sentry dsn is not a valid url null}
); }; export const Telemetry = withInjectables( observer(NonInjectedTelemetry), { getProps: (di) => ({ telemetryPreferenceItems: di.inject(telemetryPreferenceItemsInjectable), sentryDnsUrl: di.inject(sentryDnsUrlInjectable), userStore: di.inject(userStoreInjectable), }), }, );