mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Add UI to disable Sentry
Signed-off-by: Hung-Han (Henry) Chen <chenhungh@gmail.com>
This commit is contained in:
parent
728774a3c2
commit
4fb7113593
@ -106,6 +106,19 @@ const allowTelemetry: PreferenceDescription<boolean> = {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const allowErrorReporting: PreferenceDescription<boolean> = {
|
||||||
|
fromStore(val) {
|
||||||
|
return val ?? true;
|
||||||
|
},
|
||||||
|
toStore(val) {
|
||||||
|
if (val === true) {
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
return val;
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
const downloadMirror: PreferenceDescription<string> = {
|
const downloadMirror: PreferenceDescription<string> = {
|
||||||
fromStore(val) {
|
fromStore(val) {
|
||||||
return val ?? "default";
|
return val ?? "default";
|
||||||
@ -227,6 +240,7 @@ export const DESCRIPTORS = {
|
|||||||
localeTimezone,
|
localeTimezone,
|
||||||
allowUntrustedCAs,
|
allowUntrustedCAs,
|
||||||
allowTelemetry,
|
allowTelemetry,
|
||||||
|
allowErrorReporting,
|
||||||
downloadMirror,
|
downloadMirror,
|
||||||
downloadKubectlBinaries,
|
downloadKubectlBinaries,
|
||||||
downloadBinariesPath,
|
downloadBinariesPath,
|
||||||
|
|||||||
@ -59,6 +59,7 @@ export class UserStore extends BaseStore<UserStoreModel> /* implements UserStore
|
|||||||
@observable seenContexts = observable.set<string>();
|
@observable seenContexts = observable.set<string>();
|
||||||
@observable newContexts = observable.set<string>();
|
@observable newContexts = observable.set<string>();
|
||||||
@observable allowTelemetry: boolean;
|
@observable allowTelemetry: boolean;
|
||||||
|
@observable allowErrorReporting: boolean;
|
||||||
@observable allowUntrustedCAs: boolean;
|
@observable allowUntrustedCAs: boolean;
|
||||||
@observable colorTheme: string;
|
@observable colorTheme: string;
|
||||||
@observable localeTimezone: string;
|
@observable localeTimezone: string;
|
||||||
@ -169,6 +170,7 @@ export class UserStore extends BaseStore<UserStoreModel> /* implements UserStore
|
|||||||
this.localeTimezone = DESCRIPTORS.localeTimezone.fromStore(preferences?.localeTimezone);
|
this.localeTimezone = DESCRIPTORS.localeTimezone.fromStore(preferences?.localeTimezone);
|
||||||
this.allowUntrustedCAs = DESCRIPTORS.allowUntrustedCAs.fromStore(preferences?.allowUntrustedCAs);
|
this.allowUntrustedCAs = DESCRIPTORS.allowUntrustedCAs.fromStore(preferences?.allowUntrustedCAs);
|
||||||
this.allowTelemetry = DESCRIPTORS.allowTelemetry.fromStore(preferences?.allowTelemetry);
|
this.allowTelemetry = DESCRIPTORS.allowTelemetry.fromStore(preferences?.allowTelemetry);
|
||||||
|
this.allowErrorReporting = DESCRIPTORS.allowErrorReporting.fromStore(preferences?.allowErrorReporting);
|
||||||
this.downloadMirror = DESCRIPTORS.downloadMirror.fromStore(preferences?.downloadMirror);
|
this.downloadMirror = DESCRIPTORS.downloadMirror.fromStore(preferences?.downloadMirror);
|
||||||
this.downloadKubectlBinaries = DESCRIPTORS.downloadKubectlBinaries.fromStore(preferences?.downloadKubectlBinaries);
|
this.downloadKubectlBinaries = DESCRIPTORS.downloadKubectlBinaries.fromStore(preferences?.downloadKubectlBinaries);
|
||||||
this.downloadBinariesPath = DESCRIPTORS.downloadBinariesPath.fromStore(preferences?.downloadBinariesPath);
|
this.downloadBinariesPath = DESCRIPTORS.downloadBinariesPath.fromStore(preferences?.downloadBinariesPath);
|
||||||
@ -188,6 +190,7 @@ export class UserStore extends BaseStore<UserStoreModel> /* implements UserStore
|
|||||||
localeTimezone: DESCRIPTORS.localeTimezone.toStore(this.localeTimezone),
|
localeTimezone: DESCRIPTORS.localeTimezone.toStore(this.localeTimezone),
|
||||||
allowUntrustedCAs: DESCRIPTORS.allowUntrustedCAs.toStore(this.allowUntrustedCAs),
|
allowUntrustedCAs: DESCRIPTORS.allowUntrustedCAs.toStore(this.allowUntrustedCAs),
|
||||||
allowTelemetry: DESCRIPTORS.allowTelemetry.toStore(this.allowTelemetry),
|
allowTelemetry: DESCRIPTORS.allowTelemetry.toStore(this.allowTelemetry),
|
||||||
|
allowErrorReporting: DESCRIPTORS.allowErrorReporting.toStore(this.allowErrorReporting),
|
||||||
downloadMirror: DESCRIPTORS.downloadMirror.toStore(this.downloadMirror),
|
downloadMirror: DESCRIPTORS.downloadMirror.toStore(this.downloadMirror),
|
||||||
downloadKubectlBinaries: DESCRIPTORS.downloadKubectlBinaries.toStore(this.downloadKubectlBinaries),
|
downloadKubectlBinaries: DESCRIPTORS.downloadKubectlBinaries.toStore(this.downloadKubectlBinaries),
|
||||||
downloadBinariesPath: DESCRIPTORS.downloadBinariesPath.toStore(this.downloadBinariesPath),
|
downloadBinariesPath: DESCRIPTORS.downloadBinariesPath.toStore(this.downloadBinariesPath),
|
||||||
|
|||||||
@ -63,6 +63,13 @@ import { CaptureConsole, Dedupe, Offline } from "@sentry/integrations";
|
|||||||
import * as Sentry from "@sentry/electron/dist/main";
|
import * as Sentry from "@sentry/electron/dist/main";
|
||||||
|
|
||||||
Sentry.init({
|
Sentry.init({
|
||||||
|
beforeSend(event) {
|
||||||
|
const allow = UserStore.getInstance().allowErrorReporting;
|
||||||
|
|
||||||
|
if (allow) return event;
|
||||||
|
|
||||||
|
return null;
|
||||||
|
},
|
||||||
dsn,
|
dsn,
|
||||||
integrations: [
|
integrations: [
|
||||||
new CaptureConsole({ levels: ["error"] }),
|
new CaptureConsole({ levels: ["error"] }),
|
||||||
|
|||||||
@ -40,6 +40,7 @@ import { Tab, Tabs } from "../tabs";
|
|||||||
import { FormSwitch, Switcher } from "../switch";
|
import { FormSwitch, Switcher } from "../switch";
|
||||||
import { KubeconfigSyncs } from "./kubeconfig-syncs";
|
import { KubeconfigSyncs } from "./kubeconfig-syncs";
|
||||||
import { SettingLayout } from "../layout/setting-layout";
|
import { SettingLayout } from "../layout/setting-layout";
|
||||||
|
import { Checkbox } from "../checkbox";
|
||||||
|
|
||||||
enum Pages {
|
enum Pages {
|
||||||
Application = "application",
|
Application = "application",
|
||||||
@ -257,6 +258,25 @@ export class Preferences extends React.Component {
|
|||||||
<section id="telemetry">
|
<section id="telemetry">
|
||||||
<h2 data-testid="telemetry-header">Telemetry</h2>
|
<h2 data-testid="telemetry-header">Telemetry</h2>
|
||||||
{telemetryExtensions.map(this.renderExtension)}
|
{telemetryExtensions.map(this.renderExtension)}
|
||||||
|
<React.Fragment key='sentry'>
|
||||||
|
<section id='sentry' className="small">
|
||||||
|
<SubTitle title='Automatic Error Reporting' />
|
||||||
|
<Checkbox
|
||||||
|
label="Allow automatic error reporting"
|
||||||
|
value={UserStore.getInstance().allowErrorReporting}
|
||||||
|
onChange={value => {
|
||||||
|
UserStore.getInstance().allowErrorReporting = value;
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
<div className="hint">
|
||||||
|
<span>
|
||||||
|
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.
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<hr className="small" />
|
||||||
|
</React.Fragment>
|
||||||
</section>
|
</section>
|
||||||
)}
|
)}
|
||||||
{this.activeTab == Pages.Extensions && (
|
{this.activeTab == Pages.Extensions && (
|
||||||
|
|||||||
@ -39,8 +39,16 @@ import { catalogEntityRegistry } from "./api/catalog-entity-registry";
|
|||||||
import { dsn, isProduction } from "../common/vars";
|
import { dsn, isProduction } from "../common/vars";
|
||||||
import { CaptureConsole, Dedupe, Offline } from "@sentry/integrations";
|
import { CaptureConsole, Dedupe, Offline } from "@sentry/integrations";
|
||||||
import * as Sentry from "@sentry/electron/dist/renderer";
|
import * as Sentry from "@sentry/electron/dist/renderer";
|
||||||
|
import { UserStore } from "../common/user-store";
|
||||||
|
|
||||||
Sentry.init({
|
Sentry.init({
|
||||||
|
beforeSend(event) {
|
||||||
|
const allow = UserStore.getInstance().allowErrorReporting;
|
||||||
|
|
||||||
|
if (allow) return event;
|
||||||
|
|
||||||
|
return null;
|
||||||
|
},
|
||||||
dsn,
|
dsn,
|
||||||
integrations: [
|
integrations: [
|
||||||
new CaptureConsole({ levels: ["error"] }),
|
new CaptureConsole({ levels: ["error"] }),
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user