diff --git a/frontend/packages/components/src/third-party-providers.tsx b/frontend/packages/components/src/third-party-providers.tsx index b823450cad..9b7fc6da63 100644 --- a/frontend/packages/components/src/third-party-providers.tsx +++ b/frontend/packages/components/src/third-party-providers.tsx @@ -36,6 +36,12 @@ export function initThirdPartyProviders(router: unknown, debug: boolean) { dsn: config.sentry.dsn, integrations, tunnel: getConfig().sentry?.tunnel, + tracePropagationTargets: [ + /.*\.rivet\.dev/, + /.*\.rivet\.gg/, + /.*rivet-dev\.vercel\.app/, + /localhost/, + ], }); } } diff --git a/frontend/src/app/route-layout.tsx b/frontend/src/app/route-layout.tsx index 3e2950a7e4..46522bf767 100644 --- a/frontend/src/app/route-layout.tsx +++ b/frontend/src/app/route-layout.tsx @@ -1,6 +1,7 @@ import { Outlet } from "@tanstack/react-router"; import { useRef, useState } from "react"; import type { ImperativePanelHandle } from "react-resizable-panels"; +import { H2, Skeleton } from "@/components"; import { RootLayoutContextProvider } from "@/components/actors/root-layout-context"; import * as Layout from "./layout"; @@ -35,3 +36,29 @@ export function RouteLayout({ ); } + +export function PendingRouteLayout() { + return ( + +
+
+

+ +

+
+

+ +

+
+
+ +
+ + + +
+
+
+
+ ); +} diff --git a/frontend/src/routes/_context/_cloud/orgs.$organization/index.tsx b/frontend/src/routes/_context/_cloud/orgs.$organization/index.tsx index 5319a81f25..e53637fd21 100644 --- a/frontend/src/routes/_context/_cloud/orgs.$organization/index.tsx +++ b/frontend/src/routes/_context/_cloud/orgs.$organization/index.tsx @@ -2,7 +2,7 @@ import { createFileRoute, notFound, redirect } from "@tanstack/react-router"; import { match } from "ts-pattern"; import CreateProjectFrameContent from "@/app/dialogs/create-project-frame"; import { RouteError } from "@/app/route-error"; -import { RouteLayout } from "@/app/route-layout"; +import { PendingRouteLayout, RouteLayout } from "@/app/route-layout"; import { Card, H2, Skeleton } from "@/components"; export const Route = createFileRoute("/_context/_cloud/orgs/$organization/")({ @@ -37,29 +37,7 @@ export const Route = createFileRoute("/_context/_cloud/orgs/$organization/")({ wrapInSuspense: true, pendingMinMs: 0, pendingMs: 0, - pendingComponent: () => ( - -
-
-

- -

-
-

- -

-
-
- -
- - - -
-
-
-
- ), + pendingComponent: PendingRouteLayout, component: RouteComponent, errorComponent: RouteError, }); diff --git a/frontend/src/routes/_context/_cloud/orgs.$organization/projects.$project.tsx b/frontend/src/routes/_context/_cloud/orgs.$organization/projects.$project.tsx index 2ee104c1ab..29435e9e46 100644 --- a/frontend/src/routes/_context/_cloud/orgs.$organization/projects.$project.tsx +++ b/frontend/src/routes/_context/_cloud/orgs.$organization/projects.$project.tsx @@ -2,6 +2,7 @@ import { createFileRoute, Outlet } from "@tanstack/react-router"; import { match } from "ts-pattern"; import { createProjectContext } from "@/app/data-providers/cloud-data-provider"; import { RouteError } from "@/app/route-error"; +import { PendingRouteLayout } from "@/app/route-layout"; import { useDialog } from "@/app/use-dialog"; export const Route = createFileRoute( @@ -25,6 +26,9 @@ export const Route = createFileRoute( }); }, errorComponent: RouteError, + pendingMinMs: 0, + pendingMs: 0, + pendingComponent: PendingRouteLayout, }); function RouteComponent() { diff --git a/frontend/src/routes/_context/_cloud/orgs.$organization/projects.$project/ns.$namespace.tsx b/frontend/src/routes/_context/_cloud/orgs.$organization/projects.$project/ns.$namespace.tsx index eec565c29e..ff93b0699b 100644 --- a/frontend/src/routes/_context/_cloud/orgs.$organization/projects.$project/ns.$namespace.tsx +++ b/frontend/src/routes/_context/_cloud/orgs.$organization/projects.$project/ns.$namespace.tsx @@ -1,7 +1,7 @@ import { createFileRoute } from "@tanstack/react-router"; import { createNamespaceContext } from "@/app/data-providers/cloud-data-provider"; import { NotFoundCard } from "@/app/not-found-card"; -import { RouteLayout } from "@/app/route-layout"; +import { PendingRouteLayout, RouteLayout } from "@/app/route-layout"; export const Route = createFileRoute( "/_context/_cloud/orgs/$organization/projects/$project/ns/$namespace", @@ -30,6 +30,9 @@ export const Route = createFileRoute( }; }, notFoundComponent: () => , + pendingMinMs: 0, + pendingMs: 0, + pendingComponent: PendingRouteLayout, }); function RouteComponent() { diff --git a/frontend/src/routes/_context/_cloud/orgs.$organization/projects.$project/ns.$namespace/connect.tsx b/frontend/src/routes/_context/_cloud/orgs.$organization/projects.$project/ns.$namespace/connect.tsx index 0c26e78eb4..6b5556311c 100644 --- a/frontend/src/routes/_context/_cloud/orgs.$organization/projects.$project/ns.$namespace/connect.tsx +++ b/frontend/src/routes/_context/_cloud/orgs.$organization/projects.$project/ns.$namespace/connect.tsx @@ -255,7 +255,7 @@ function ProviderDropdown({ children }: { children: React.ReactNode }) { > Vercel{" "} - Coming soon! + Soon! diff --git a/frontend/turbo.json b/frontend/turbo.json index 8812169ce9..5a0eeaa05d 100644 --- a/frontend/turbo.json +++ b/frontend/turbo.json @@ -4,17 +4,17 @@ "tasks": { "build:engine": { "dependsOn": ["^build"], - "env": ["VITE_APP_*"], + "env": ["VITE_APP_*", "DEPLOYMENT_TYPE"], "outputs": ["dist/**"] }, "build:inspector": { "dependsOn": ["^build"], - "env": ["VITE_APP_*"], + "env": ["VITE_APP_*", "DEPLOYMENT_TYPE"], "outputs": ["dist/**"] }, "build:cloud": { "dependsOn": ["^build"], - "env": ["VITE_APP_*"], + "env": ["VITE_APP_*", "DEPLOYMENT_TYPE"], "outputs": ["dist/**"] }, "dev": {