dashboard metric links

This commit is contained in:
Nate Kelley 2025-07-05 09:35:28 -06:00
parent fa7713f510
commit 34dfbd11b9
No known key found for this signature in database
GPG Key ID: FD90372AB8D98B4F
14 changed files with 58 additions and 11 deletions

BIN
.DS_Store vendored

Binary file not shown.

View File

@ -0,0 +1,3 @@
import LoadingMetric from '@metrics/chart/loading';
export default LoadingMetric;

View File

@ -0,0 +1,3 @@
import MetricChartPage from '@metrics/chart/page';
export default MetricChartPage;

View File

@ -0,0 +1,3 @@
import LoadingMetric from '@metrics/file/loading';
export default LoadingMetric;

View File

@ -0,0 +1,3 @@
import MetricFilePage from '@metrics/file/page';
export default MetricFilePage;

View File

@ -0,0 +1,3 @@
import MetricLayout from '@metrics/layout';
export default MetricLayout;

View File

@ -0,0 +1,3 @@
import LoadingMetric from '@metrics/loading';
export default LoadingMetric;

View File

@ -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
})
);
}

View File

@ -0,0 +1,3 @@
import LoadingMetric from '@metrics/results/loading';
export default LoadingMetric;

View File

@ -0,0 +1,3 @@
import MetricResultsPage from '@metrics/results/page';
export default MetricResultsPage;

View File

@ -0,0 +1,3 @@
import LoadingMetric from '@metrics/sql/loading';
export default LoadingMetric;

View File

@ -0,0 +1,3 @@
import MetricSQLPage from '@metrics/sql/page';
export default MetricSQLPage;

View File

@ -8,6 +8,7 @@ import { cn } from '@/lib/classMerge';
import { BusterRoutes, createBusterRoute } from '@/routes'; import { BusterRoutes, createBusterRoute } from '@/routes';
import { MetricTitle } from './MetricTitle'; import { MetricTitle } from './MetricTitle';
import { useDashboardMetric } from './useDashboardMetric'; import { useDashboardMetric } from './useDashboardMetric';
import { assetParamsToRoute } from '@/lib/assets';
const DashboardMetricItemBase: React.FC<{ const DashboardMetricItemBase: React.FC<{
metricId: string; metricId: string;
@ -55,18 +56,14 @@ const DashboardMetricItemBase: React.FC<{
); );
const metricLink = useMemo(() => { const metricLink = useMemo(() => {
if (chatId) { return assetParamsToRoute({
return createBusterRoute({ type: 'metric',
route: BusterRoutes.APP_CHAT_ID_METRIC_ID_CHART, assetId: metricId,
chatId, chatId,
metricId dashboardId,
}); page: 'chart'
}
return createBusterRoute({
route: BusterRoutes.APP_METRIC_ID_CHART,
metricId: metricId
}); });
}, [metricId, chatId]); }, [metricId, chatId, dashboardId]);
const onInitialAnimationEndPreflight = useMemoizedFn(() => { const onInitialAnimationEndPreflight = useMemoizedFn(() => {
setInitialAnimationEnded(metricId); setInitialAnimationEnded(metricId);

View File

@ -3,6 +3,7 @@ import type { MetricFileViewSecondary } from '../../layouts/ChatLayout/ChatLayou
export type MetricRouteParams = { export type MetricRouteParams = {
assetId: string; assetId: string;
dashboardId?: string;
chatId?: string; chatId?: string;
secondaryView?: MetricFileViewSecondary; secondaryView?: MetricFileViewSecondary;
versionNumber?: number; versionNumber?: number;
@ -14,6 +15,7 @@ export const createMetricRoute = ({
assetId: metricId, assetId: metricId,
chatId, chatId,
secondaryView, secondaryView,
dashboardId,
versionNumber: metricVersionNumber, versionNumber: metricVersionNumber,
page = 'chart' page = 'chart'
}: Omit<MetricRouteParams, 'type'>) => { }: Omit<MetricRouteParams, 'type'>) => {