From 5bf24bf322ff76585e76dc0331bc39d00de2ff19 Mon Sep 17 00:00:00 2001 From: Nate Kelley Date: Wed, 19 Mar 2025 11:06:52 -0600 Subject: [PATCH] version query updates --- .../api/asset_interfaces/metric/defaults.ts | 1 - .../api/asset_interfaces/metric/interfaces.ts | 1 - web/src/api/buster_rest/metrics/interfaces.ts | 1 + .../api/buster_rest/metrics/queryRequests.ts | 15 +----------- web/src/api/buster_rest/metrics/requests.ts | 4 ++-- web/src/api/query_keys/metric.ts | 4 ++-- web/src/components/ui/buttons/Button.tsx | 24 +++++++++++-------- web/src/mocks/metric.ts | 1 - 8 files changed, 20 insertions(+), 31 deletions(-) diff --git a/web/src/api/asset_interfaces/metric/defaults.ts b/web/src/api/asset_interfaces/metric/defaults.ts index 5ff418fa8..9dd96303d 100644 --- a/web/src/api/asset_interfaces/metric/defaults.ts +++ b/web/src/api/asset_interfaces/metric/defaults.ts @@ -162,7 +162,6 @@ export const DEFAULT_IBUSTER_METRIC: Required = { sent_by_name: '', permission: ShareRole.CAN_VIEW, sent_by_avatar_url: null, - draft_session_id: null, dashboards: [], collections: [], chart_config: DEFAULT_CHART_CONFIG, diff --git a/web/src/api/asset_interfaces/metric/interfaces.ts b/web/src/api/asset_interfaces/metric/interfaces.ts index 5ee2b9fa4..864b6808b 100644 --- a/web/src/api/asset_interfaces/metric/interfaces.ts +++ b/web/src/api/asset_interfaces/metric/interfaces.ts @@ -26,7 +26,6 @@ export type BusterMetric = { sent_by_avatar_url: string | null; code: string | null; feedback: 'negative' | null; - draft_session_id: string | null; //DO WE NEED THIS? dashboards: { id: string; name: string; diff --git a/web/src/api/buster_rest/metrics/interfaces.ts b/web/src/api/buster_rest/metrics/interfaces.ts index c5a247a8b..0cf44b88d 100644 --- a/web/src/api/buster_rest/metrics/interfaces.ts +++ b/web/src/api/buster_rest/metrics/interfaces.ts @@ -5,6 +5,7 @@ import type { ShareRequest } from '@/api/asset_interfaces/shared_interfaces'; export interface GetMetricParams { id: string; password?: string; + version_number?: number; //api will default to latest if not provided } export interface ListMetricsParams { diff --git a/web/src/api/buster_rest/metrics/queryRequests.ts b/web/src/api/buster_rest/metrics/queryRequests.ts index 4342c653a..c4cb54e3e 100644 --- a/web/src/api/buster_rest/metrics/queryRequests.ts +++ b/web/src/api/buster_rest/metrics/queryRequests.ts @@ -131,21 +131,8 @@ export const prefetchGetMetricDataClient = async ( * It will simply use the params passed in and not do any special logic. */ export const useSaveMetric = () => { - const queryClient = useQueryClient(); return useMutation({ - mutationFn: updateMetric, - onSuccess: (data) => { - const hasDraftSessionId = data.draft_session_id; - const metricId = data.id; - const options = metricsQueryKeys.metricsGetMetric(metricId); - const currentMetric = queryClient.getQueryData(options.queryKey); - if (hasDraftSessionId && !currentMetric?.draft_session_id && currentMetric) { - queryClient.setQueryData(options.queryKey, { - ...currentMetric, - draft_session_id: data.draft_session_id - }); - } - } + mutationFn: updateMetric }); }; diff --git a/web/src/api/buster_rest/metrics/requests.ts b/web/src/api/buster_rest/metrics/requests.ts index bbdf0929b..9ad11760d 100644 --- a/web/src/api/buster_rest/metrics/requests.ts +++ b/web/src/api/buster_rest/metrics/requests.ts @@ -7,10 +7,10 @@ import type { BusterMetricListItem } from '@/api/asset_interfaces/metric'; -export const getMetric = async ({ id, password }: GetMetricParams) => { +export const getMetric = async ({ id, password, version_number }: GetMetricParams) => { return mainApi .get(`/metrics/${id}`, { - params: { ...(password && { password }) } + params: { password, version_number } }) .then((res) => res.data); }; diff --git a/web/src/api/query_keys/metric.ts b/web/src/api/query_keys/metric.ts index 435cfeae5..8872a4b3e 100644 --- a/web/src/api/query_keys/metric.ts +++ b/web/src/api/query_keys/metric.ts @@ -6,9 +6,9 @@ import type { } from '@/api/asset_interfaces/metric'; import { ListMetricsParams } from '../buster_rest/metrics'; -export const metricsGetMetric = (metricId: string) => { +export const metricsGetMetric = (metricId: string, version_number?: number) => { return queryOptions({ - queryKey: ['metrics', 'get', metricId] as const, + queryKey: ['metrics', 'get', metricId, version_number] as const, staleTime: 30 * 60 * 1000 }); }; diff --git a/web/src/components/ui/buttons/Button.tsx b/web/src/components/ui/buttons/Button.tsx index 0d4c51cb0..0ffc210ba 100644 --- a/web/src/components/ui/buttons/Button.tsx +++ b/web/src/components/ui/buttons/Button.tsx @@ -80,19 +80,23 @@ export const buttonVariants = cva( export const buttonIconVariants = cva('', { variants: { variant: { - default: 'text-icon-color!', - black: 'text-white!', - primary: 'text-white!', - ghost: 'text-icon-color!', - link: 'text-icon-color!', - danger: 'text-danger-foreground!', - warning: 'text-warning-foreground!', - success: 'text-success-foreground!' + default: 'text-icon-color', + black: 'text-white', + primary: 'text-white', + ghost: 'text-icon-color', + link: 'text-icon-color', + danger: 'text-danger-foreground', + warning: 'text-warning-foreground', + success: 'text-success-foreground' }, size: { default: 'text-icon-size', tall: 'text-icon-size-lg', small: 'text-icon-size-sm' + }, + disabled: { + true: 'text-gray-light', + false: '' } } }); @@ -158,14 +162,14 @@ export const Button = React.forwardRef( ) : ( prefix && ( - + {prefix} ) )} {hasChildren && {children}} {suffix && ( - + {suffix} )} diff --git a/web/src/mocks/metric.ts b/web/src/mocks/metric.ts index a7484ea55..61c379c6c 100644 --- a/web/src/mocks/metric.ts +++ b/web/src/mocks/metric.ts @@ -154,7 +154,6 @@ export const createMockMetric = (id: string): IBusterMetric => { ) SELECT * FROM records;`, feedback: null, - draft_session_id: null, collections: [], dashboards: [], sharingKey: '',