diff --git a/app/components/ProfiledRoute.js b/app/components/ProfiledRoute.js new file mode 100644 index 000000000..2eef5bce3 --- /dev/null +++ b/app/components/ProfiledRoute.js @@ -0,0 +1,12 @@ +// @flow +import * as Sentry from "@sentry/react"; +import { Route } from "react-router-dom"; +import env from "env"; + +let Component = Route; + +if (env.SENTRY_DSN) { + Component = Sentry.withSentryRouting(Route); +} + +export default Component; diff --git a/app/routes/authenticated.js b/app/routes/authenticated.js index 5ee755df8..7a1ef1758 100644 --- a/app/routes/authenticated.js +++ b/app/routes/authenticated.js @@ -1,6 +1,6 @@ // @flow import * as React from "react"; -import { Switch, Route, Redirect, type Match } from "react-router-dom"; +import { Switch, Redirect, type Match } from "react-router-dom"; import Archive from "scenes/Archive"; import Collection from "scenes/Collection"; import Dashboard from "scenes/Dashboard"; @@ -16,6 +16,7 @@ import Trash from "scenes/Trash"; import CenteredContent from "components/CenteredContent"; import Layout from "components/Layout"; import LoadingPlaceholder from "components/LoadingPlaceholder"; +import Route from "components/ProfiledRoute"; import SocketProvider from "components/SocketProvider"; import { matchDocumentSlug as slug } from "utils/routeHelpers"; diff --git a/app/routes/index.js b/app/routes/index.js index 2be6870fb..420de6cb0 100644 --- a/app/routes/index.js +++ b/app/routes/index.js @@ -1,8 +1,9 @@ // @flow import * as React from "react"; -import { Switch, Route } from "react-router-dom"; +import { Switch } from "react-router-dom"; import DelayedMount from "components/DelayedMount"; import FullscreenLoading from "components/FullscreenLoading"; +import Route from "components/ProfiledRoute"; const Authenticated = React.lazy(() => import("components/Authenticated")); const AuthenticatedRoutes = React.lazy(() => import("./authenticated")); diff --git a/app/routes/settings.js b/app/routes/settings.js index 4e7c362c6..eff824598 100644 --- a/app/routes/settings.js +++ b/app/routes/settings.js @@ -1,6 +1,6 @@ // @flow import * as React from "react"; -import { Switch, Route } from "react-router-dom"; +import { Switch } from "react-router-dom"; import Settings from "scenes/Settings"; import Details from "scenes/Settings/Details"; import Export from "scenes/Settings/Export"; @@ -12,6 +12,7 @@ import Shares from "scenes/Settings/Shares"; import Slack from "scenes/Settings/Slack"; import Tokens from "scenes/Settings/Tokens"; import Zapier from "scenes/Settings/Zapier"; +import Route from "components/ProfiledRoute"; export default function SettingsRoutes() { return (