diff --git a/src/components/httprequestviewer/HTTPRequestViewer.tsx b/src/components/httprequestviewer/HTTPRequestViewer.tsx index bed1170..24bdb45 100644 --- a/src/components/httprequestviewer/HTTPRequestViewer.tsx +++ b/src/components/httprequestviewer/HTTPRequestViewer.tsx @@ -1,12 +1,49 @@ -import { useState, useMemo, useEffect } from 'react' +import { useState, useMemo, useEffect, lazy, Suspense } from 'react' import { useDatabaseTraceData } from '../../hooks/useDatabaseTraceData' import { getUrlParams, updateUrlWithTraceId } from '../../App' -import BabylonViewer from '../../BabylonViewer' -import BabylonTimelineViewer from '../../BabylonTimelineViewer' import RequestFilters from './RequestFilters' import RequestsTable from './RequestsTable' import styles from './HTTPRequestViewer.module.css' +// Lazy load 3D viewers to reduce main bundle size +const BabylonViewer = lazy(() => import('../../BabylonViewer')) +const BabylonTimelineViewer = lazy(() => import('../../BabylonTimelineViewer')) + +// Loading component for 3D viewers +const ThreeDViewerLoading = () => ( +
+
+
+ Loading 3D Viewer... +
+
+ Initializing Babylon.js +
+ +
+) + // Imported utilities import { ITEMS_PER_PAGE, SSIM_SIMILARITY_THRESHOLD } from './lib/httpRequestConstants' import { extractScreenshots, findUniqueScreenshots } from './lib/screenshotUtils' @@ -346,7 +383,9 @@ export default function HTTPRequestViewer({ traceId }: HTTPRequestViewerProps) {
- + }> + +
Legend:
@@ -385,7 +424,9 @@ export default function HTTPRequestViewer({ traceId }: HTTPRequestViewerProps) {
- + }> + +
Legend: