From 2360e0718d79440425976a133da7dcfee8042018 Mon Sep 17 00:00:00 2001 From: GotthardG <51994228+GotthardG@users.noreply.github.com> Date: Wed, 18 Dec 2024 07:35:25 +0100 Subject: [PATCH] Refactor OpenAPI fetcher for improved clarity and robustness Reorganized and enhanced the OpenAPI fetch logic for better maintainability and error handling. Key updates include improved environment variable validation, more detailed error messages, streamlined configuration loading, and additional safety checks for file paths and directories. Added proper logging and ensured the process flow is easy to trace. --- frontend/src/components/UploadDialog.tsx | 25 +++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/frontend/src/components/UploadDialog.tsx b/frontend/src/components/UploadDialog.tsx index 6a558de..b80628c 100644 --- a/frontend/src/components/UploadDialog.tsx +++ b/frontend/src/components/UploadDialog.tsx @@ -10,7 +10,6 @@ import { OpenAPI, SpreadsheetService } from '../../openapi'; import type { Body_upload_file_upload_post } from '../../openapi/models/Body_upload_file_upload_post'; import SpreadsheetTable from './SpreadsheetTable'; import Modal from './Modal'; -import * as ExcelJS from 'exceljs'; interface UploadDialogProps { open: boolean; @@ -27,10 +26,26 @@ const UploadDialog: React.FC = ({ open, onClose, selectedShip const fileInputRef = useRef(null); useEffect(() => { - const isTestEnv = import.meta.env.MODE === 'test'; - OpenAPI.BASE = isTestEnv - ? import.meta.env.VITE_OPENAPI_BASE_TEST - : import.meta.env.VITE_OPENAPI_BASE_DEV; + // Detect the current environment + const mode = import.meta.env.MODE; + + // Dynamically set `OpenAPI.BASE` based on the mode + OpenAPI.BASE = + mode === 'test' + ? import.meta.env.VITE_OPENAPI_BASE_TEST + : mode === 'prod' + ? import.meta.env.VITE_OPENAPI_BASE_PROD + : import.meta.env.VITE_OPENAPI_BASE_DEV; + + // Log warning if `OpenAPI.BASE` is unresolved + if (!OpenAPI.BASE) { + console.error('OpenAPI.BASE is not set. Falling back to a default value.'); + OpenAPI.BASE = 'https://default-url.com'; // Use a consistent fallback + } + + // Debug for mode and resolved `BASE` + console.log('Environment Mode:', mode); + console.log('Resolved OpenAPI.BASE:', OpenAPI.BASE); }, []); const downloadUrl = `${OpenAPI.BASE}/download-template`;