11/** Check for null and undefined */
22
3- import { _GlobeView as GlobeView } from "@deck.gl/core" ;
3+ import {
4+ _GlobeView as GlobeView ,
5+ GlobeViewState ,
6+ MapView ,
7+ MapViewState ,
8+ } from "@deck.gl/core" ;
49
510import { MapRendererProps } from "./renderers" ;
611
@@ -17,3 +22,31 @@ export function isGlobeView(views: MapRendererProps["views"]) {
1722 const firstView = Array . isArray ( views ) ? views [ 0 ] : views ;
1823 return firstView instanceof GlobeView ;
1924}
25+
26+ export function isMapView ( views : MapRendererProps [ "views" ] ) {
27+ const firstView = Array . isArray ( views ) ? views [ 0 ] : views ;
28+ return firstView instanceof MapView ;
29+ }
30+
31+ export function sanitizeViewState (
32+ views : MapRendererProps [ "views" ] ,
33+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
34+ viewState : ( MapViewState | GlobeViewState ) & Record < string , any > ,
35+ ) : MapViewState | GlobeViewState {
36+ const sanitized : MapViewState | GlobeViewState = {
37+ longitude : Number . isFinite ( viewState . longitude ) ? viewState . longitude : 0 ,
38+ latitude : Number . isFinite ( viewState . latitude ) ? viewState . latitude : 0 ,
39+ zoom : Number . isFinite ( viewState . zoom ) ? viewState . zoom : 0 ,
40+ ...( Number . isFinite ( viewState . minZoom )
41+ ? {
42+ minZoom : viewState . minZoom ,
43+ }
44+ : 0 ) ,
45+ ...( Number . isFinite ( viewState . maxZoom )
46+ ? {
47+ maxZoom : viewState . maxZoom ,
48+ }
49+ : 0 ) ,
50+ } ;
51+ return sanitized ;
52+ }
0 commit comments