From 9f4f195280ce845c25c2251f7afe7f643ee7c80a Mon Sep 17 00:00:00 2001 From: Nate Kelley Date: Fri, 26 Sep 2025 12:11:41 -0600 Subject: [PATCH 1/2] extended refer --- .../ShareMenu/ShareMenuContentEmbed.tsx | 14 ++++++++++++++ .../src/components/ui/inputs/InputTextArea.tsx | 17 +++++++++-------- .../ui/inputs/InputTextAreaButton.tsx | 6 +++--- .../DashboardEditTitle.tsx | 2 +- 4 files changed, 27 insertions(+), 12 deletions(-) diff --git a/apps/web/src/components/features/ShareMenu/ShareMenuContentEmbed.tsx b/apps/web/src/components/features/ShareMenu/ShareMenuContentEmbed.tsx index 604d4de81..356c99924 100644 --- a/apps/web/src/components/features/ShareMenu/ShareMenuContentEmbed.tsx +++ b/apps/web/src/components/features/ShareMenu/ShareMenuContentEmbed.tsx @@ -59,6 +59,20 @@ export const ShareMenuContentEmbedFooter = ({ openSuccessMessage('Succuessfully published'); }; + const text = useMemo(() => { + if (assetType === 'metric_file') { + return 'Your metric currently isn’t published.'; + } else if (assetType === 'dashboard_file') { + return 'Your dashboard currently isn’t published.'; + } else if (assetType === 'chat') { + return 'Your chat currently isn’t published.'; + } else if (assetType === 'report_file') { + return 'Your report currently isn’t published.'; + } else { + return 'Your item currently isn’t published.'; + } + }, [assetType]); + return (
diff --git a/apps/web/src/components/ui/inputs/InputTextArea.tsx b/apps/web/src/components/ui/inputs/InputTextArea.tsx index 146597ec0..6abcebf1b 100644 --- a/apps/web/src/components/ui/inputs/InputTextArea.tsx +++ b/apps/web/src/components/ui/inputs/InputTextArea.tsx @@ -28,8 +28,8 @@ export interface InputTextAreaProps onPressEnter?: (e: React.KeyboardEvent) => void; } -export interface InputTextAreaRef { - forceRecalculateHeight: () => void; +export interface InputTextAreaRef extends HTMLTextAreaElement { + forceRecalculateHeight?: () => void; } export const InputTextArea = React.forwardRef( @@ -48,9 +48,11 @@ export const InputTextArea = React.forwardRef { const textareaRef = useRef(null); - useImperativeHandle( - ref, - () => ({ + useImperativeHandle(ref, () => { + if (!textareaRef.current) { + return null as unknown as InputTextAreaRef; + } + return Object.assign(textareaRef.current, { forceRecalculateHeight: () => { if (textareaRef.current) { // Force a recalculation by triggering an input event @@ -58,9 +60,8 @@ export const InputTextArea = React.forwardRef) => { if (e.key === 'Enter') { diff --git a/apps/web/src/components/ui/inputs/InputTextAreaButton.tsx b/apps/web/src/components/ui/inputs/InputTextAreaButton.tsx index e9fca6c76..9df7f2b31 100644 --- a/apps/web/src/components/ui/inputs/InputTextAreaButton.tsx +++ b/apps/web/src/components/ui/inputs/InputTextAreaButton.tsx @@ -4,7 +4,7 @@ import { cn } from '@/lib/classMerge'; import { Button } from '../buttons/Button'; import ShapeSquare from '../icons/NucleoIconFilled/shape-square'; import { ArrowUp } from '../icons/NucleoIconOutlined'; -import { InputTextArea, type InputTextAreaProps } from './InputTextArea'; +import { InputTextArea, type InputTextAreaProps, type InputTextAreaRef } from './InputTextArea'; const inputTextAreaButtonVariants = cva( 'relative flex flex-col w-full items-center overflow-visible rounded-xl cursor-text border border-border transition-all duration-200', @@ -29,7 +29,7 @@ export interface InputTextAreaButtonProps extends Omit( +export const InputTextAreaButton = forwardRef( ( { className, @@ -51,7 +51,7 @@ export const InputTextAreaButton = forwardRef { const onSubmitPreflight = () => { if (disabled) return; - const text = (textRef as React.RefObject).current?.value || ''; + const text = (textRef as React.RefObject).current?.value || ''; onSubmit(text); }; diff --git a/apps/web/src/controllers/DashboardController/DashboardViewDashboardController/DashboardEditTitle.tsx b/apps/web/src/controllers/DashboardController/DashboardViewDashboardController/DashboardEditTitle.tsx index b214f6d28..ee2554ca6 100644 --- a/apps/web/src/controllers/DashboardController/DashboardViewDashboardController/DashboardEditTitle.tsx +++ b/apps/web/src/controllers/DashboardController/DashboardViewDashboardController/DashboardEditTitle.tsx @@ -44,7 +44,7 @@ export const DashboardEditTitles: React.FC<{ useEffect(() => { if (debouncedWidth) { - inputTextAreaRef.current?.forceRecalculateHeight(); + inputTextAreaRef.current?.forceRecalculateHeight?.(); } }, [debouncedWidth]); From 6753f34dbc2040dd99f4bd2e837d159b0e59534e Mon Sep 17 00:00:00 2001 From: Nate Kelley Date: Fri, 26 Sep 2025 12:31:57 -0600 Subject: [PATCH 2/2] Update healthcheck.tsx --- .../buster_rest/healthcheck/queryRequests.ts | 2 +- apps/web/src/api/createAxiosInstance.ts | 3 +- apps/web/src/routes/healthcheck.tsx | 37 +++++++++++-------- 3 files changed, 23 insertions(+), 19 deletions(-) diff --git a/apps/web/src/api/buster_rest/healthcheck/queryRequests.ts b/apps/web/src/api/buster_rest/healthcheck/queryRequests.ts index 92d494f5e..0c368bb34 100644 --- a/apps/web/src/api/buster_rest/healthcheck/queryRequests.ts +++ b/apps/web/src/api/buster_rest/healthcheck/queryRequests.ts @@ -3,7 +3,7 @@ import { getHealthcheck } from './requests'; export const useHealthcheck = () => { return useQuery({ - queryKey: ['healthcheck'], + queryKey: ['healthcheck'] as const, queryFn: getHealthcheck, refetchInterval: 1000 * 30, // 30 seconds }); diff --git a/apps/web/src/api/createAxiosInstance.ts b/apps/web/src/api/createAxiosInstance.ts index e3d69827f..ffaec40b1 100644 --- a/apps/web/src/api/createAxiosInstance.ts +++ b/apps/web/src/api/createAxiosInstance.ts @@ -3,7 +3,6 @@ import type { AxiosRequestHeaders } from 'axios'; import axios, { type AxiosError, type InternalAxiosRequestConfig } from 'axios'; import qs from 'qs'; import { getSupabaseSession } from '@/integrations/supabase/getSupabaseUserClient'; -import { Route as AuthRoute } from '@/routes/auth.login'; import { BASE_URL_V2 } from './config'; import { rustErrorHandler } from './errors'; @@ -50,7 +49,7 @@ export const defaultAxiosRequestHandler = async (config: InternalAxiosRequestCon const { accessToken: token } = session; if (!token) { - console.warn('No token found', config); + console.warn('No token found', config.url, session); //embed route were having an issue with this... //window.location.href = AuthRoute.to; //return Promise.reject(new Error('No token found')); diff --git a/apps/web/src/routes/healthcheck.tsx b/apps/web/src/routes/healthcheck.tsx index 5816b9a3a..761e94609 100644 --- a/apps/web/src/routes/healthcheck.tsx +++ b/apps/web/src/routes/healthcheck.tsx @@ -9,7 +9,6 @@ import { Card, CardContent, CardDescription, - CardFooter, CardHeader, CardTitle, } from '@/components/ui/card/CardBase'; @@ -61,7 +60,7 @@ function RouteComponent() { function LoadingState() { return ( -
+
@@ -76,7 +75,7 @@ function LoadingState() { function ErrorState({ error }: { error: Error | RustApiError }) { return ( -
+
@@ -206,8 +205,8 @@ function HealthcheckDashboard({ }; return ( -
-
+
+
{/* Header */}
@@ -274,10 +273,16 @@ function HealthcheckDashboard({ -
-
-                  {JSON.stringify(user, null, 2)}
-                
+
+ {user ? ( +
+                    {JSON.stringify(user, null, 2)}
+                  
+ ) : ( + + No user data available + + )}
@@ -473,6 +478,11 @@ function HealthcheckDashboard({
+ {check.responseTime && ( + + {check.responseTime}ms + + )} {check.status} - {check.responseTime && ( - - {check.responseTime}ms - - )}
@@ -494,9 +499,9 @@ function HealthcheckDashboard({ {/* Footer */} -
+
- System health is monitored continuously. Data refreshes automatically. + System health is monitored continuously. Data refreshes about every 30 seconds.