From b3cd78c833fd2c79af327f4e4f1d51f7a41aebdc Mon Sep 17 00:00:00 2001 From: Tom Moor Date: Fri, 22 Jan 2021 23:02:12 -0800 Subject: [PATCH] chore: Enable parameterized route profiling --- app/components/ProfiledRoute.js | 12 ++++++++++++ app/routes/authenticated.js | 3 ++- app/routes/index.js | 3 ++- app/routes/settings.js | 3 ++- 4 files changed, 18 insertions(+), 3 deletions(-) create mode 100644 app/components/ProfiledRoute.js diff --git a/app/components/ProfiledRoute.js b/app/components/ProfiledRoute.js new file mode 100644 index 00000000..2eef5bce --- /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 5ee755df..7a1ef175 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 2be6870f..420de6cb 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 4e7c362c..eff82459 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 (