diff --git a/apps/webapp/app/components/navigation/SideMenu.tsx b/apps/webapp/app/components/navigation/SideMenu.tsx index adedf7b589..db86425b67 100644 --- a/apps/webapp/app/components/navigation/SideMenu.tsx +++ b/apps/webapp/app/components/navigation/SideMenu.tsx @@ -2,6 +2,7 @@ import { AdjustmentsHorizontalIcon, ArrowPathRoundedSquareIcon, ArrowRightOnRectangleIcon, + ArrowTopRightOnSquareIcon, BeakerIcon, BellAlertIcon, ChartBarIcon, @@ -9,6 +10,7 @@ import { ClockIcon, Cog8ToothIcon, CogIcon, + ExclamationTriangleIcon, FolderIcon, FolderOpenIcon, GlobeAmericasIcon, @@ -45,7 +47,7 @@ import { useHasAdminAccess } from "~/hooks/useUser"; import { type UserWithDashboardPreferences } from "~/models/user.server"; import { useCurrentPlan } from "~/routes/_app.orgs.$organizationSlug/route"; import { type FeedbackType } from "~/routes/resources.feedback"; -import { IncidentStatusPanel } from "~/routes/resources.incidents"; +import { IncidentStatusPanel, useIncidentStatus } from "~/routes/resources.incidents"; import { cn } from "~/utils/cn"; import { accountPath, @@ -164,6 +166,8 @@ export function SideMenu({ const isAdmin = useHasAdminAccess(); const { isManagedCloud } = useFeatures(); const featureFlags = useFeatureFlags(); + const incidentStatus = useIncidentStatus(); + const isV3Project = project.engine === "V1"; const persistSideMenuPreferences = useCallback( (data: { @@ -598,7 +602,18 @@ export function SideMenu({
- + + +
+ + + + + + + + + } + content="V3 deprecation warning" + side="right" + sideOffset={8} + disableHoverableContent + asChild + /> + +
+ + + + + ); +} + +function V3DeprecationContent() { + return ( +
+
+ + + V3 deprecation warning + +
+ + This is a v3 project. V3 deploys will stop working on 1 April 2026. Full shutdown is 1 July + 2026 where all v3 runs will stop executing. Migrate to v4 to avoid downtime. + + + View migration guide + +
+ ); +} + function ProjectSelector({ project, organization, diff --git a/apps/webapp/app/routes/resources.incidents.tsx b/apps/webapp/app/routes/resources.incidents.tsx index 445c3ef912..d9e107e545 100644 --- a/apps/webapp/app/routes/resources.incidents.tsx +++ b/apps/webapp/app/routes/resources.incidents.tsx @@ -70,9 +70,17 @@ export function useIncidentStatus() { }; } -export function IncidentStatusPanel({ isCollapsed = false }: { isCollapsed?: boolean }) { - const { title, hasIncident, isManagedCloud } = useIncidentStatus(); - +export function IncidentStatusPanel({ + isCollapsed = false, + title, + hasIncident, + isManagedCloud, +}: { + isCollapsed?: boolean; + title: string | null; + hasIncident: boolean; + isManagedCloud: boolean; +}) { if (!isManagedCloud || !hasIncident) { return null; }