Conversation
There was a problem hiding this comment.
Pull Request Overview
This is a large refactoring pull request that modernizes the Cesium integration in the geoportal codebase. The main purpose is to improve the architecture by removing dependencies on the CesiumContextType and moving towards direct scene and instance management, while also updating transition state handling and fixing various Cesium-related issues.
- Refactored Cesium context to use direct scene references instead of context dependencies
- Updated all hooks and utilities to work with scene instances directly rather than through context callbacks
- Replaced viewer animation map with scene-based animation map for better encapsulation
- Modernized transition state management with lifecycle handlers instead of Redux state
Reviewed Changes
Copilot reviewed 100 out of 101 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| playgrounds/cesium/src/app/views/tests/standalone/HQ500.tsx | Updated to use destructured context instead of ctx variable |
| playgrounds/cesium-reference/src/views/NavigationControl.tsx | Renamed animation map variables and updated function calls |
| playgrounds/carmamap/src/app/components/CarmaMap/topicmap.utils.ts | Simplified type imports using Leaflet namespace |
| libraries/mapping/engines/cesium/src/lib/utils/tiledMapToCesium.ts | Major refactor to use elevation providers async callback instead of context |
| libraries/mapping/engines/cesium/src/lib/utils/sceneStyles.ts | Updated to work with scene instances and callbacks instead of context |
| libraries/mapping/engines/cesium/src/lib/hooks/useZoomControls.ts | Refactored to use scene ref and animation map instead of context |
| libraries/mapping/engines/cesium/src/lib/CesiumContextProvider.tsx | Added scene ref and transition state management |
| apps/geoportal/src/app/oblique/hooks/useObliqueInitializer.ts | Updated to use scene ref instead of viewer ref for camera controls |
Comments suppressed due to low confidence (2)
libraries/mapping/engines/cesium/src/lib/utils/cesiumHelpers.ts:1
- Corrected spelling of 'resoures' to 'resources'.
import {
libraries/mapping/engines/cesium/src/lib/utils/cesiumCameraForceOblique.ts:1
- Corrected spelling of 'wasing' to 'easing'.
import { clampToToleranceRange } from "@carma-commons/utils";
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
18587f1 to
abd934d
Compare
- Split GeoportalMap into TopicMapComponentWrapper and CesiumMapComponentWrapper - Separate hash routing logic for Leaflet-like maps (useMapHashRoutingLeafletLike) and Cesium (useMapHashRoutingCesium) - Extract feature info lifecycle hooks and modal menu logic - Remove transition state from Redux store to avoid unnecessary rerenders - Track transition state via ref in MapTypeSwitcher for better performance - Improve topicmap hooks organization and stability - Add overlay helper hooks - Stabilize onChange handlers with refs to prevent rerender triggers - Handle oblique mode lifecycle via ref - Clean up topicmap utilities and Leaflet zoom controls
1ff376e to
6a6df0b
Compare
ba4bfec to
9a32b23
Compare
…to core and api move oblique mode into cesium engine scope
…RANSITIONS_CONFIG
- Created CesiumErrorIndicator component with error count and timestamp - Re-enabled error handling in cesium/core with recovery mode - Auto-remount widget on render errors (no full page reload) - Modal shows error history and stack traces - Fixed 'This object was destroyed' crashes
|
superseeeded see #441 |
large refactor of monorepo
consider splitting PR and merging by topical cherrypicked spin-off PRs
Done:
Done but with blocking dependencies
WIP:
Before Merge