From 34dfbd11b9bb3802812d4b1abdb727d9d74bc26b Mon Sep 17 00:00:00 2001 From: Nate Kelley Date: Sat, 5 Jul 2025 09:35:28 -0600 Subject: [PATCH] dashboard metric links --- .DS_Store | Bin 6148 -> 6148 bytes .../metrics/[metricId]/chart/loading.tsx | 3 +++ .../metrics/[metricId]/chart/page.tsx | 3 +++ .../metrics/[metricId]/file/loading.tsx | 3 +++ .../metrics/[metricId]/file/page.tsx | 3 +++ .../metrics/[metricId]/layout.tsx | 3 +++ .../metrics/[metricId]/loading.tsx | 3 +++ .../[dashboardId]/metrics/[metricId]/page.tsx | 18 +++++++++++++++++ .../metrics/[metricId]/results/loading.tsx | 3 +++ .../metrics/[metricId]/results/page.tsx | 3 +++ .../metrics/[metricId]/sql/loading.tsx | 3 +++ .../metrics/[metricId]/sql/page.tsx | 3 +++ .../DashboardMetricItem.tsx | 19 ++++++++---------- apps/web/src/lib/assets/createMetricRoute.ts | 2 ++ 14 files changed, 58 insertions(+), 11 deletions(-) create mode 100644 apps/web/src/app/app/(primary_layout)/(chat_experience)/chats/[chatId]/dashboards/[dashboardId]/metrics/[metricId]/chart/loading.tsx create mode 100644 apps/web/src/app/app/(primary_layout)/(chat_experience)/chats/[chatId]/dashboards/[dashboardId]/metrics/[metricId]/chart/page.tsx create mode 100644 apps/web/src/app/app/(primary_layout)/(chat_experience)/chats/[chatId]/dashboards/[dashboardId]/metrics/[metricId]/file/loading.tsx create mode 100644 apps/web/src/app/app/(primary_layout)/(chat_experience)/chats/[chatId]/dashboards/[dashboardId]/metrics/[metricId]/file/page.tsx create mode 100644 apps/web/src/app/app/(primary_layout)/(chat_experience)/chats/[chatId]/dashboards/[dashboardId]/metrics/[metricId]/layout.tsx create mode 100644 apps/web/src/app/app/(primary_layout)/(chat_experience)/chats/[chatId]/dashboards/[dashboardId]/metrics/[metricId]/loading.tsx create mode 100644 apps/web/src/app/app/(primary_layout)/(chat_experience)/chats/[chatId]/dashboards/[dashboardId]/metrics/[metricId]/page.tsx create mode 100644 apps/web/src/app/app/(primary_layout)/(chat_experience)/chats/[chatId]/dashboards/[dashboardId]/metrics/[metricId]/results/loading.tsx create mode 100644 apps/web/src/app/app/(primary_layout)/(chat_experience)/chats/[chatId]/dashboards/[dashboardId]/metrics/[metricId]/results/page.tsx create mode 100644 apps/web/src/app/app/(primary_layout)/(chat_experience)/chats/[chatId]/dashboards/[dashboardId]/metrics/[metricId]/sql/loading.tsx create mode 100644 apps/web/src/app/app/(primary_layout)/(chat_experience)/chats/[chatId]/dashboards/[dashboardId]/metrics/[metricId]/sql/page.tsx diff --git a/.DS_Store b/.DS_Store index 5008ddfcf53c02e82d7eee2e57c38e5672ef89f6..e07d7222c3791bd53ca49a44d2829b7e82d0ec97 100644 GIT binary patch delta 120 zcmZoMXfc=|&e%3FQEZ}~q9`K+0|O8XFfb%Cq%)*46sM&WCr?aNpKKt)BE`W_02EGU z$VQe-%FoYX+?W{04pOq2n}dggv2A1Gcjn3bB8s9+K;smEI01-3MjrrThRu#5`eKJh@*W_At%4o20D8^1G8<`+@q1WGX^ TfYeMj;Zfe4AhLvcVgm~RE=&+7 diff --git a/apps/web/src/app/app/(primary_layout)/(chat_experience)/chats/[chatId]/dashboards/[dashboardId]/metrics/[metricId]/chart/loading.tsx b/apps/web/src/app/app/(primary_layout)/(chat_experience)/chats/[chatId]/dashboards/[dashboardId]/metrics/[metricId]/chart/loading.tsx new file mode 100644 index 000000000..6a07db048 --- /dev/null +++ b/apps/web/src/app/app/(primary_layout)/(chat_experience)/chats/[chatId]/dashboards/[dashboardId]/metrics/[metricId]/chart/loading.tsx @@ -0,0 +1,3 @@ +import LoadingMetric from '@metrics/chart/loading'; + +export default LoadingMetric; diff --git a/apps/web/src/app/app/(primary_layout)/(chat_experience)/chats/[chatId]/dashboards/[dashboardId]/metrics/[metricId]/chart/page.tsx b/apps/web/src/app/app/(primary_layout)/(chat_experience)/chats/[chatId]/dashboards/[dashboardId]/metrics/[metricId]/chart/page.tsx new file mode 100644 index 000000000..f4afe9d3a --- /dev/null +++ b/apps/web/src/app/app/(primary_layout)/(chat_experience)/chats/[chatId]/dashboards/[dashboardId]/metrics/[metricId]/chart/page.tsx @@ -0,0 +1,3 @@ +import MetricChartPage from '@metrics/chart/page'; + +export default MetricChartPage; diff --git a/apps/web/src/app/app/(primary_layout)/(chat_experience)/chats/[chatId]/dashboards/[dashboardId]/metrics/[metricId]/file/loading.tsx b/apps/web/src/app/app/(primary_layout)/(chat_experience)/chats/[chatId]/dashboards/[dashboardId]/metrics/[metricId]/file/loading.tsx new file mode 100644 index 000000000..57894a906 --- /dev/null +++ b/apps/web/src/app/app/(primary_layout)/(chat_experience)/chats/[chatId]/dashboards/[dashboardId]/metrics/[metricId]/file/loading.tsx @@ -0,0 +1,3 @@ +import LoadingMetric from '@metrics/file/loading'; + +export default LoadingMetric; diff --git a/apps/web/src/app/app/(primary_layout)/(chat_experience)/chats/[chatId]/dashboards/[dashboardId]/metrics/[metricId]/file/page.tsx b/apps/web/src/app/app/(primary_layout)/(chat_experience)/chats/[chatId]/dashboards/[dashboardId]/metrics/[metricId]/file/page.tsx new file mode 100644 index 000000000..282d8551a --- /dev/null +++ b/apps/web/src/app/app/(primary_layout)/(chat_experience)/chats/[chatId]/dashboards/[dashboardId]/metrics/[metricId]/file/page.tsx @@ -0,0 +1,3 @@ +import MetricFilePage from '@metrics/file/page'; + +export default MetricFilePage; diff --git a/apps/web/src/app/app/(primary_layout)/(chat_experience)/chats/[chatId]/dashboards/[dashboardId]/metrics/[metricId]/layout.tsx b/apps/web/src/app/app/(primary_layout)/(chat_experience)/chats/[chatId]/dashboards/[dashboardId]/metrics/[metricId]/layout.tsx new file mode 100644 index 000000000..98e472be8 --- /dev/null +++ b/apps/web/src/app/app/(primary_layout)/(chat_experience)/chats/[chatId]/dashboards/[dashboardId]/metrics/[metricId]/layout.tsx @@ -0,0 +1,3 @@ +import MetricLayout from '@metrics/layout'; + +export default MetricLayout; diff --git a/apps/web/src/app/app/(primary_layout)/(chat_experience)/chats/[chatId]/dashboards/[dashboardId]/metrics/[metricId]/loading.tsx b/apps/web/src/app/app/(primary_layout)/(chat_experience)/chats/[chatId]/dashboards/[dashboardId]/metrics/[metricId]/loading.tsx new file mode 100644 index 000000000..443108fc7 --- /dev/null +++ b/apps/web/src/app/app/(primary_layout)/(chat_experience)/chats/[chatId]/dashboards/[dashboardId]/metrics/[metricId]/loading.tsx @@ -0,0 +1,3 @@ +import LoadingMetric from '@metrics/loading'; + +export default LoadingMetric; diff --git a/apps/web/src/app/app/(primary_layout)/(chat_experience)/chats/[chatId]/dashboards/[dashboardId]/metrics/[metricId]/page.tsx b/apps/web/src/app/app/(primary_layout)/(chat_experience)/chats/[chatId]/dashboards/[dashboardId]/metrics/[metricId]/page.tsx new file mode 100644 index 000000000..fdd0f2fd9 --- /dev/null +++ b/apps/web/src/app/app/(primary_layout)/(chat_experience)/chats/[chatId]/dashboards/[dashboardId]/metrics/[metricId]/page.tsx @@ -0,0 +1,18 @@ +import { redirect } from 'next/navigation'; +import { BusterRoutes, createBusterRoute } from '@/routes'; + +export default async function Page(props: { + params: Promise<{ chatId: string; metricId: string; dashboardId: string }>; +}) { + const params = await props.params; + const { chatId, metricId, dashboardId } = params; + + return redirect( + createBusterRoute({ + route: BusterRoutes.APP_CHAT_ID_DASHBOARD_ID_METRIC_ID_CHART, + chatId, + metricId, + dashboardId + }) + ); +} diff --git a/apps/web/src/app/app/(primary_layout)/(chat_experience)/chats/[chatId]/dashboards/[dashboardId]/metrics/[metricId]/results/loading.tsx b/apps/web/src/app/app/(primary_layout)/(chat_experience)/chats/[chatId]/dashboards/[dashboardId]/metrics/[metricId]/results/loading.tsx new file mode 100644 index 000000000..4582fe15d --- /dev/null +++ b/apps/web/src/app/app/(primary_layout)/(chat_experience)/chats/[chatId]/dashboards/[dashboardId]/metrics/[metricId]/results/loading.tsx @@ -0,0 +1,3 @@ +import LoadingMetric from '@metrics/results/loading'; + +export default LoadingMetric; diff --git a/apps/web/src/app/app/(primary_layout)/(chat_experience)/chats/[chatId]/dashboards/[dashboardId]/metrics/[metricId]/results/page.tsx b/apps/web/src/app/app/(primary_layout)/(chat_experience)/chats/[chatId]/dashboards/[dashboardId]/metrics/[metricId]/results/page.tsx new file mode 100644 index 000000000..7f0bd99ca --- /dev/null +++ b/apps/web/src/app/app/(primary_layout)/(chat_experience)/chats/[chatId]/dashboards/[dashboardId]/metrics/[metricId]/results/page.tsx @@ -0,0 +1,3 @@ +import MetricResultsPage from '@metrics/results/page'; + +export default MetricResultsPage; diff --git a/apps/web/src/app/app/(primary_layout)/(chat_experience)/chats/[chatId]/dashboards/[dashboardId]/metrics/[metricId]/sql/loading.tsx b/apps/web/src/app/app/(primary_layout)/(chat_experience)/chats/[chatId]/dashboards/[dashboardId]/metrics/[metricId]/sql/loading.tsx new file mode 100644 index 000000000..0153494a5 --- /dev/null +++ b/apps/web/src/app/app/(primary_layout)/(chat_experience)/chats/[chatId]/dashboards/[dashboardId]/metrics/[metricId]/sql/loading.tsx @@ -0,0 +1,3 @@ +import LoadingMetric from '@metrics/sql/loading'; + +export default LoadingMetric; diff --git a/apps/web/src/app/app/(primary_layout)/(chat_experience)/chats/[chatId]/dashboards/[dashboardId]/metrics/[metricId]/sql/page.tsx b/apps/web/src/app/app/(primary_layout)/(chat_experience)/chats/[chatId]/dashboards/[dashboardId]/metrics/[metricId]/sql/page.tsx new file mode 100644 index 000000000..195d2750a --- /dev/null +++ b/apps/web/src/app/app/(primary_layout)/(chat_experience)/chats/[chatId]/dashboards/[dashboardId]/metrics/[metricId]/sql/page.tsx @@ -0,0 +1,3 @@ +import MetricSQLPage from '@metrics/sql/page'; + +export default MetricSQLPage; diff --git a/apps/web/src/controllers/DashboardController/DashboardViewDashboardController/DashboardContentController/DashboardMetricItem/DashboardMetricItem.tsx b/apps/web/src/controllers/DashboardController/DashboardViewDashboardController/DashboardContentController/DashboardMetricItem/DashboardMetricItem.tsx index 44f986002..45e573a96 100644 --- a/apps/web/src/controllers/DashboardController/DashboardViewDashboardController/DashboardContentController/DashboardMetricItem/DashboardMetricItem.tsx +++ b/apps/web/src/controllers/DashboardController/DashboardViewDashboardController/DashboardContentController/DashboardMetricItem/DashboardMetricItem.tsx @@ -8,6 +8,7 @@ import { cn } from '@/lib/classMerge'; import { BusterRoutes, createBusterRoute } from '@/routes'; import { MetricTitle } from './MetricTitle'; import { useDashboardMetric } from './useDashboardMetric'; +import { assetParamsToRoute } from '@/lib/assets'; const DashboardMetricItemBase: React.FC<{ metricId: string; @@ -55,18 +56,14 @@ const DashboardMetricItemBase: React.FC<{ ); const metricLink = useMemo(() => { - if (chatId) { - return createBusterRoute({ - route: BusterRoutes.APP_CHAT_ID_METRIC_ID_CHART, - chatId, - metricId - }); - } - return createBusterRoute({ - route: BusterRoutes.APP_METRIC_ID_CHART, - metricId: metricId + return assetParamsToRoute({ + type: 'metric', + assetId: metricId, + chatId, + dashboardId, + page: 'chart' }); - }, [metricId, chatId]); + }, [metricId, chatId, dashboardId]); const onInitialAnimationEndPreflight = useMemoizedFn(() => { setInitialAnimationEnded(metricId); diff --git a/apps/web/src/lib/assets/createMetricRoute.ts b/apps/web/src/lib/assets/createMetricRoute.ts index d751f0117..e130e4b37 100644 --- a/apps/web/src/lib/assets/createMetricRoute.ts +++ b/apps/web/src/lib/assets/createMetricRoute.ts @@ -3,6 +3,7 @@ import type { MetricFileViewSecondary } from '../../layouts/ChatLayout/ChatLayou export type MetricRouteParams = { assetId: string; + dashboardId?: string; chatId?: string; secondaryView?: MetricFileViewSecondary; versionNumber?: number; @@ -14,6 +15,7 @@ export const createMetricRoute = ({ assetId: metricId, chatId, secondaryView, + dashboardId, versionNumber: metricVersionNumber, page = 'chart' }: Omit) => {