@@ -5,12 +5,16 @@ import {
55} from "@chakra-ui/react" ;
66import { QueryClient , QueryClientProvider } from "@tanstack/react-query" ;
77import "maplibre-gl/dist/maplibre-gl.css" ;
8- import { type ReactNode , useEffect , useMemo } from "react" ;
9- import { MapProvider } from "react-map-gl/maplibre" ;
8+ import { useEffect , useMemo , type ReactNode } from "react" ;
9+ import {
10+ MapProvider ,
11+ type LayerProps ,
12+ type SourceProps ,
13+ } from "react-map-gl/maplibre" ;
1014import { AuthProvider , type AuthProviderProps } from "react-oidc-context" ;
11- import App from "../app" ;
1215import { AuthEnabledProvider } from "../contexts/auth-enabled" ;
1316import { StacBrowserUrlProvider } from "../contexts/stac-browser" ;
17+ import App from "./app" ;
1418import { HrefBootstrap } from "./href-bootstrap" ;
1519import { OidcTokenSync } from "./oidc-token-sync" ;
1620import { LoginSplash } from "./ui/auth" ;
@@ -19,6 +23,11 @@ import {
1923 type ColorModeProviderProps ,
2024} from "./ui/color-mode" ;
2125
26+ export interface ExtraLayerProps {
27+ source : SourceProps ;
28+ layer : LayerProps ;
29+ }
30+
2231export interface StacMapProps {
2332 /** Initial STAC URL to load on mount when no `?href=` is present in the URL. */
2433 defaultHref ?: string ;
@@ -36,6 +45,8 @@ export interface StacMapProps {
3645 stacBrowserUrl ?: string ;
3746 /** Optional footer rendered below the map (e.g. version + changelog). */
3847 footer ?: ReactNode ;
48+ /** Source and layer information for extra maplibre layers */
49+ extraLayers ?: ExtraLayerProps [ ] ;
3950}
4051
4152let mountCount = 0 ;
@@ -54,6 +65,7 @@ export function StacMap({
5465 auth,
5566 stacBrowserUrl,
5667 footer,
68+ extraLayers,
5769} : StacMapProps ) {
5870 useEffect ( ( ) => {
5971 mountCount += 1 ;
@@ -82,7 +94,7 @@ export function StacMap({
8294 < StacBrowserUrlProvider url = { stacBrowserUrl } >
8395 < MapProvider >
8496 < HrefBootstrap defaultHref = { defaultHref } syncWithUrl = { syncWithUrl } >
85- < App footer = { footer } />
97+ < App footer = { footer } extraLayers = { extraLayers } />
8698 </ HrefBootstrap >
8799 </ MapProvider >
88100 </ StacBrowserUrlProvider >
0 commit comments