pass version ids better

This commit is contained in:
Nate Kelley 2025-04-08 22:28:32 -06:00
parent 6c4e96a73f
commit 2fe071e128
No known key found for this signature in database
GPG Key ID: FD90372AB8D98B4F
5 changed files with 26 additions and 38 deletions

View File

@ -1,21 +1,7 @@
'use client';
import { useGetMetric } from '@/api/buster_rest/metrics';
import { MetricViewChart } from '@/controllers/MetricController/MetricViewChart/MetricViewChart';
export default function EmbedMetricsPage({
params,
searchParams
}: {
params: { metricId: string };
searchParams: { version_number?: string };
}) {
export default function EmbedMetricsPage({ params }: { params: { metricId: string } }) {
const { metricId } = params;
const { version_number } = searchParams;
const { isFetched } = useGetMetric({
id: metricId,
version_number: version_number ? parseInt(version_number) : undefined
});
return <MetricViewChart metricId={metricId} readOnly={true} cardClassName="max-h-screen!" />;
}

View File

@ -18,7 +18,7 @@ export const VersionHistoryPanel = React.memo(
({ assetId, type }: { assetId: string; type: 'metric' | 'dashboard' }) => {
const chatId = useChatLayoutContextSelector((x) => x.chatId);
const onCloseVersionHistory = useCloseVersionHistory();
const { listItems, selectedVersion, selectedQueryVersion, onClickRestoreVersion } =
const { listItems, currentVersionNumber, selectedQueryVersion, onClickRestoreVersion } =
useListVersionHistories({
assetId,
type
@ -55,7 +55,7 @@ export const VersionHistoryPanel = React.memo(
key={item.version_number}
{...item}
selected={item.version_number === selectedQueryVersion}
showRestoreButton={item.version_number !== selectedVersion}
showRestoreButton={item.version_number !== currentVersionNumber}
onClickRestoreVersion={onClickRestoreVersion}
link={
getFileLink({

View File

@ -23,7 +23,7 @@ export const useListVersionHistories = ({
const {
dashboardVersions,
selectedQueryVersion: dashboardSelectedQueryVersion,
selectedVersion: dashboardSelectedVersion,
currentVersionNumber: dashboardCurrentVersionNumber,
onRestoreVersion: onRestoreDashboardVersion,
isSavingDashboard
} = useListDashboardVersions({
@ -33,7 +33,7 @@ export const useListVersionHistories = ({
const {
metricVersions,
selectedQueryVersion: metricSelectedQueryVersion,
selectedVersion: metricSelectedVersion,
currentVersionNumber: metricCurrentVersionNumber,
onRestoreVersion: onRestoreMetricVersion,
isSavingMetric
} = useListMetricVersions({
@ -46,9 +46,9 @@ export const useListVersionHistories = ({
return items ? [...items].reverse() : undefined;
}, [type, dashboardVersions, metricVersions]);
const selectedVersion = useMemo(() => {
return type === 'metric' ? metricSelectedVersion : dashboardSelectedVersion;
}, [type, dashboardSelectedVersion, metricSelectedVersion]);
const currentVersionNumber = useMemo(() => {
return type === 'metric' ? metricCurrentVersionNumber : dashboardCurrentVersionNumber;
}, [type, dashboardCurrentVersionNumber, metricCurrentVersionNumber]);
const selectedQueryVersion = useMemo(() => {
return type === 'metric' ? metricSelectedQueryVersion : dashboardSelectedQueryVersion;
@ -86,14 +86,14 @@ export const useListVersionHistories = ({
return useMemo(() => {
return {
listItems,
selectedVersion,
currentVersionNumber,
selectedQueryVersion,
onClickRestoreVersion,
isRestoringVersion: isSavingDashboard || isSavingMetric
};
}, [
listItems,
selectedVersion,
currentVersionNumber,
selectedQueryVersion,
onClickRestoreVersion,
isSavingDashboard,
@ -113,10 +113,10 @@ const useListDashboardVersions = ({
saveToServer: true,
updateVersion: true
});
const { data: dashData } = useGetDashboard(
const { data: dashboardData } = useGetDashboard(
{
id: type === 'dashboard' ? assetId : undefined,
version_number: null
versionNumber: null
},
{
select: (x) => ({
@ -126,8 +126,8 @@ const useListDashboardVersions = ({
}
);
const dashboardVersions = dashData?.versions;
const selectedVersion = dashboardVersionNumber || dashData?.version_number;
const dashboardVersions = dashboardData?.versions;
const currentVersionNumber = dashboardData?.version_number;
const selectedQueryVersion = useMemo(() => {
if (dashboardVersionNumber) return dashboardVersionNumber;
@ -146,12 +146,12 @@ const useListDashboardVersions = ({
dashboardVersions,
selectedQueryVersion,
onRestoreVersion,
selectedVersion,
currentVersionNumber,
isSavingDashboard
};
}, [
dashboardVersions,
selectedVersion,
currentVersionNumber,
onRestoreVersion,
selectedQueryVersion,
isSavingDashboard
@ -174,7 +174,7 @@ const useListMetricVersions = ({
const { data: metricData } = useGetMetric(
{
id: type === 'metric' ? assetId : undefined,
version_number: null
versionNumber: null
},
{
select: (x) => ({
@ -184,7 +184,7 @@ const useListMetricVersions = ({
}
);
const metricVersions = metricData?.versions;
const selectedVersion = metricVersionNumber || metricData?.version_number;
const currentVersionNumber = metricVersionNumber || metricData?.version_number;
const onRestoreVersion = useMemoizedFn(async (versionNumber: number) => {
await updateMetric({
@ -203,8 +203,14 @@ const useListMetricVersions = ({
metricVersions,
selectedQueryVersion,
onRestoreVersion,
selectedVersion,
currentVersionNumber,
isSavingMetric
};
}, [metricVersions, onRestoreVersion, selectedQueryVersion, selectedVersion, isSavingMetric]);
}, [
metricVersions,
onRestoreVersion,
selectedQueryVersion,
currentVersionNumber,
isSavingMetric
]);
};

View File

@ -112,8 +112,6 @@ export const DashboardContentController: React.FC<{
}
}, [dashboard?.id, remapMetrics]);
console.log(hasMetrics, dashboardRows, dashboard);
return (
<div className="dashboard-content-controller">
{hasMetrics && !!dashboardRows.length && !!dashboard ? (

View File

@ -10,8 +10,6 @@ import { MetricChartEvaluation } from './MetricChartEvaluation';
import { ChartType } from '@/api/asset_interfaces/metric/charts/enum';
import { AnimatePresence, motion } from 'framer-motion';
import { cn } from '@/lib/classMerge';
import { canEdit } from '@/lib/share';
import { useChatLayoutContextSelector } from '@/layouts/ChatLayout';
import { SaveResetFilePopup } from '@/components/features/popups/SaveResetFilePopup';
import { useIsMetricChanged } from '@/context/Metrics/useIsMetricChanged';
import { useUpdateMetricChart } from '@/context/Metrics';