diff --git a/package.json b/package.json
index b938acc979..85bdcc7d45 100644
--- a/package.json
+++ b/package.json
@@ -183,8 +183,8 @@
"@hapi/call": "^8.0.1",
"@hapi/subtext": "^7.0.3",
"@kubernetes/client-node": "^0.15.1",
- "@sentry/electron": "^2.5.0",
- "@sentry/integrations": "^6.10.0",
+ "@sentry/electron": "^2.5.4",
+ "@sentry/integrations": "^6.13.3",
"abort-controller": "^3.0.0",
"array-move": "^3.0.1",
"auto-bind": "^4.0.0",
@@ -258,8 +258,7 @@
"@material-ui/icons": "^4.11.2",
"@material-ui/lab": "^4.0.0-alpha.60",
"@pmmmwh/react-refresh-webpack-plugin": "^0.4.3",
- "@sentry/react": "^6.8.0",
- "@sentry/types": "^6.8.0",
+ "@sentry/types": "^6.13.3",
"@testing-library/jest-dom": "^5.14.1",
"@testing-library/react": "^11.2.6",
"@types/byline": "^4.2.32",
diff --git a/src/renderer/bootstrap.tsx b/src/renderer/bootstrap.tsx
index d381f560e9..3ed8d098f6 100644
--- a/src/renderer/bootstrap.tsx
+++ b/src/renderer/bootstrap.tsx
@@ -52,6 +52,10 @@ import { SentryInit } from "../common/sentry";
import { TerminalStore } from "./components/dock/terminal.store";
import cloudsMidnight from "./monaco-themes/Clouds Midnight.json";
+if (process.isMainFrame) {
+ SentryInit();
+}
+
configurePackages();
/**
@@ -72,6 +76,8 @@ type AppComponent = React.ComponentType & {
export async function bootstrap(App: AppComponent) {
const rootElem = document.getElementById("app");
+ UserStore.createInstance();
+
await attachChromeDebugger();
rootElem.classList.toggle("is-mac", isMac);
@@ -90,10 +96,6 @@ export async function bootstrap(App: AppComponent) {
ExtensionLoader.createInstance().init();
ExtensionDiscovery.createInstance().init();
- UserStore.createInstance();
-
- SentryInit();
-
// ClusterStore depends on: UserStore
const cs = ClusterStore.createInstance();
diff --git a/src/renderer/components/error-boundary/error-boundary.tsx b/src/renderer/components/error-boundary/error-boundary.tsx
index dd345e9f48..6268bd40b1 100644
--- a/src/renderer/components/error-boundary/error-boundary.tsx
+++ b/src/renderer/components/error-boundary/error-boundary.tsx
@@ -21,54 +21,68 @@
import "./error-boundary.scss";
-import React from "react";
+import React, { ErrorInfo } from "react";
+import { observer } from "mobx-react";
import { Button } from "../button";
import { navigation } from "../../navigation";
import { issuesTrackerUrl, slackUrl } from "../../../common/vars";
-import * as Sentry from "@sentry/react";
-import { observer } from "mobx-react";
+
+interface Props {
+}
+
+interface State {
+ error?: Error;
+ errorInfo?: ErrorInfo;
+}
@observer
-export class ErrorBoundary extends React.Component {
- render() {
- return (
- {
- const slackLink = Slack;
- const githubLink = GitHub;
- const pageUrl = location.pathname;
+export class ErrorBoundary extends React.Component {
+ public state: State = {};
- return (
-
-
- App crash at {pageUrl}
-
-
- To help us improve the product please report bugs to {slackLink} community or {githubLink} issues tracker.
-
-
-
- Component stack:
- {componentStack}
-
-
- Error stack:
- {error.stack}
-
-
-
- );
- }}>
- {this.props.children}
-
- );
+ componentDidCatch(error: Error, errorInfo: ErrorInfo) {
+ this.setState({ error, errorInfo });
+ }
+
+ back = () => {
+ this.setState({ error: null, errorInfo: null });
+ navigation.goBack();
+ };
+
+ render() {
+ const { error, errorInfo } = this.state;
+
+ if (error) {
+ const slackLink = Slack;
+ const githubLink = Github;
+ const pageUrl = location.pathname;
+
+ return (
+
+
+ App crash at {pageUrl}
+
+
+ To help us improve the product please report bugs to {slackLink} community or {githubLink} issues tracker.
+
+
+
+ Component stack:
+ {errorInfo.componentStack}
+
+
+ Error stack:
+ {error.stack}
+
+
+
+
+ );
+ }
+
+ return this.props.children;
}
}
diff --git a/yarn.lock b/yarn.lock
index 081fc44d94..84e35b742c 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -967,16 +967,6 @@
"@sentry/utils" "6.7.1"
tslib "^1.9.3"
-"@sentry/browser@6.8.0":
- version "6.8.0"
- resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-6.8.0.tgz#023707cd2302f6818014e9a7e124856b2d064178"
- integrity sha512-nxa71csHlG5sMHUxI4e4xxuCWtbCv/QbBfMsYw7ncJSfCKG3yNlCVh8NJ7NS0rZW/MJUT6S6+r93zw0HetNDOA==
- dependencies:
- "@sentry/core" "6.8.0"
- "@sentry/types" "6.8.0"
- "@sentry/utils" "6.8.0"
- tslib "^1.9.3"
-
"@sentry/core@6.7.1":
version "6.7.1"
resolved "https://registry.yarnpkg.com/@sentry/core/-/core-6.7.1.tgz#c3aaa6415d06bec65ac446b13b84f073805633e3"
@@ -988,21 +978,10 @@
"@sentry/utils" "6.7.1"
tslib "^1.9.3"
-"@sentry/core@6.8.0":
- version "6.8.0"
- resolved "https://registry.yarnpkg.com/@sentry/core/-/core-6.8.0.tgz#bfac76844deee9126460c18dc6166015992efdc3"
- integrity sha512-vJzWt/znEB+JqVwtwfjkRrAYRN+ep+l070Ti8GhJnvwU4IDtVlV3T/jVNrj6rl6UChcczaJQMxVxtG5x0crlAA==
- dependencies:
- "@sentry/hub" "6.8.0"
- "@sentry/minimal" "6.8.0"
- "@sentry/types" "6.8.0"
- "@sentry/utils" "6.8.0"
- tslib "^1.9.3"
-
-"@sentry/electron@^2.5.0":
- version "2.5.0"
- resolved "https://registry.yarnpkg.com/@sentry/electron/-/electron-2.5.0.tgz#4168ff04ee01cb5a99ce042f3435660a510c634d"
- integrity sha512-OiJWi9BKtlj4UeoaCArVXIvfW808fgW1GLmeiC7wD7B64ALHSYSwu8tkqZK+IMVhPmQN04AUyoYXrZohfJ7sOg==
+"@sentry/electron@^2.5.4":
+ version "2.5.4"
+ resolved "https://registry.yarnpkg.com/@sentry/electron/-/electron-2.5.4.tgz#337b2f7e228e805a3e4eb3611c7b12c6cf87c618"
+ integrity sha512-tCCK+P581TmdjsDpHBQz7qYcldzGdUk1Fd6FPxPy1JKGzeY4uf/uSLKzR80Lzs5kTpEZFOwiMHSA8yjwFp5qoA==
dependencies:
"@sentry/browser" "6.7.1"
"@sentry/core" "6.7.1"
@@ -1021,22 +1000,13 @@
"@sentry/utils" "6.7.1"
tslib "^1.9.3"
-"@sentry/hub@6.8.0":
- version "6.8.0"
- resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-6.8.0.tgz#cb0f8509093919ed3c1ef98ef8cf63dc102a6524"
- integrity sha512-hFrI2Ss1fTov7CH64FJpigqRxH7YvSnGeqxT9Jc1BL7nzW/vgCK+Oh2mOZbosTcrzoDv+lE8ViOnSN3w/fo+rg==
+"@sentry/integrations@^6.13.3":
+ version "6.13.3"
+ resolved "https://registry.yarnpkg.com/@sentry/integrations/-/integrations-6.13.3.tgz#9d80229de6e815c53fa52ca2422a0d13820b8d4e"
+ integrity sha512-iC8LkbBTxlRo9FNxRqFfEm85FrELltc3E9gFsFSBkCnf7S/3nDCDW+mJX92KpRk97Wqid6/JwlXttKz8lsdF2A==
dependencies:
- "@sentry/types" "6.8.0"
- "@sentry/utils" "6.8.0"
- tslib "^1.9.3"
-
-"@sentry/integrations@^6.10.0":
- version "6.10.0"
- resolved "https://registry.yarnpkg.com/@sentry/integrations/-/integrations-6.10.0.tgz#f8f9e7efd55ec44d0408bd4493df1c9ceabaaa63"
- integrity sha512-NMtB0jjFYFZRxyjYu2dWLThk9YPIwqhi4hYywmWkbv4/ILzi5Rwnh+aqNW6yrj8qG4b9itNMh3YvEzmf0aqauw==
- dependencies:
- "@sentry/types" "6.10.0"
- "@sentry/utils" "6.10.0"
+ "@sentry/types" "6.13.3"
+ "@sentry/utils" "6.13.3"
localforage "^1.8.1"
tslib "^1.9.3"
@@ -1049,15 +1019,6 @@
"@sentry/types" "6.7.1"
tslib "^1.9.3"
-"@sentry/minimal@6.8.0":
- version "6.8.0"
- resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-6.8.0.tgz#d6c3e4c96f231367aeb2b8a87a83b53d28e7c6db"
- integrity sha512-MRxUKXiiYwKjp8mOQMpTpEuIby1Jh3zRTU0cmGZtfsZ38BC1JOle8xlwC4FdtOH+VvjSYnPBMya5lgNHNPUJDQ==
- dependencies:
- "@sentry/hub" "6.8.0"
- "@sentry/types" "6.8.0"
- tslib "^1.9.3"
-
"@sentry/node@6.7.1":
version "6.7.1"
resolved "https://registry.yarnpkg.com/@sentry/node/-/node-6.7.1.tgz#b09e2eca8e187168feba7bd865a23935bf0f5cc0"
@@ -1073,18 +1034,6 @@
lru_map "^0.3.3"
tslib "^1.9.3"
-"@sentry/react@^6.8.0":
- version "6.8.0"
- resolved "https://registry.yarnpkg.com/@sentry/react/-/react-6.8.0.tgz#3cf4a2e1ef042ee227836e268e702e9cb3b67e41"
- integrity sha512-yXNnDaVw8kIacbwQjA27w8DA74WxmDVw4RlUTJGtq35SDmWsaGN1mwvU+mE1u3zEg927QTCBYig2Zqk8Tdt/fQ==
- dependencies:
- "@sentry/browser" "6.8.0"
- "@sentry/minimal" "6.8.0"
- "@sentry/types" "6.8.0"
- "@sentry/utils" "6.8.0"
- hoist-non-react-statics "^3.3.2"
- tslib "^1.9.3"
-
"@sentry/tracing@6.7.1":
version "6.7.1"
resolved "https://registry.yarnpkg.com/@sentry/tracing/-/tracing-6.7.1.tgz#b11f0c17a6c5dc14ef44733e5436afb686683268"
@@ -1096,27 +1045,22 @@
"@sentry/utils" "6.7.1"
tslib "^1.9.3"
-"@sentry/types@6.10.0", "@sentry/types@^6.8.0":
- version "6.10.0"
- resolved "https://registry.yarnpkg.com/@sentry/types/-/types-6.10.0.tgz#6b1f44e5ed4dbc2710bead24d1b32fb08daf04e1"
- integrity sha512-M7s0JFgG7/6/yNVYoPUbxzaXDhnzyIQYRRJJKRaTD77YO4MHvi4Ke8alBWqD5fer0cPIfcSkBqa9BLdqRqcMWw==
+"@sentry/types@6.13.3", "@sentry/types@^6.13.3":
+ version "6.13.3"
+ resolved "https://registry.yarnpkg.com/@sentry/types/-/types-6.13.3.tgz#63ad5b6735b0dfd90b3a256a9f8e77b93f0f66b2"
+ integrity sha512-Vrz5CdhaTRSvCQjSyIFIaV9PodjAVFkzJkTRxyY7P77RcegMsRSsG1yzlvCtA99zG9+e6MfoJOgbOCwuZids5A==
"@sentry/types@6.7.1":
version "6.7.1"
resolved "https://registry.yarnpkg.com/@sentry/types/-/types-6.7.1.tgz#c8263e1886df5e815570c4668eb40a1cfaa1c88b"
integrity sha512-9AO7HKoip2MBMNQJEd6+AKtjj2+q9Ze4ooWUdEvdOVSt5drg7BGpK221/p9JEOyJAZwEPEXdcMd3VAIMiOb4MA==
-"@sentry/types@6.8.0":
- version "6.8.0"
- resolved "https://registry.yarnpkg.com/@sentry/types/-/types-6.8.0.tgz#97fd531a0ed1e75e65b4a24b26509fb7c15eb7b8"
- integrity sha512-PbSxqlh6Fd5thNU5f8EVYBVvX+G7XdPA+ThNb2QvSK8yv3rIf0McHTyF6sIebgJ38OYN7ZFK7vvhC/RgSAfYTA==
-
-"@sentry/utils@6.10.0":
- version "6.10.0"
- resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-6.10.0.tgz#839a099fa0a1f0ca0893c7ce8c55ba0608c1d80f"
- integrity sha512-F9OczOcZMFtazYVZ6LfRIe65/eOfQbiAedIKS0li4npuMz0jKYRbxrjd/U7oLiNQkPAp4/BujU4m1ZIwq6a+tg==
+"@sentry/utils@6.13.3":
+ version "6.13.3"
+ resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-6.13.3.tgz#188754d40afe693c3fcae410f9322531588a9926"
+ integrity sha512-zYFuFH3MaYtBZTeJ4Yajg7pDf0pM3MWs3+9k5my9Fd+eqNcl7dYQYJbT9gyC0HXK1QI4CAMNNlHNl4YXhF91ag==
dependencies:
- "@sentry/types" "6.10.0"
+ "@sentry/types" "6.13.3"
tslib "^1.9.3"
"@sentry/utils@6.7.1":
@@ -1127,14 +1071,6 @@
"@sentry/types" "6.7.1"
tslib "^1.9.3"
-"@sentry/utils@6.8.0":
- version "6.8.0"
- resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-6.8.0.tgz#0ffafa5b69fe0cdeabad5c4a6cc68a426eaa6b37"
- integrity sha512-OYlI2JNrcWKMdvYbWNdQwR4QBVv2V0y5wK0U6f53nArv6RsyO5TzwRu5rMVSIZofUUqjoE5hl27jqnR+vpUrsA==
- dependencies:
- "@sentry/types" "6.8.0"
- tslib "^1.9.3"
-
"@sideway/address@^4.1.0":
version "4.1.0"
resolved "https://registry.yarnpkg.com/@sideway/address/-/address-4.1.0.tgz#0b301ada10ac4e0e3fa525c90615e0b61a72b78d"