@@ -43,11 +43,12 @@ const ConfigurationApp: React.FC = () => {
4343 const [ selectedFire , setSelectedFire ] = useState < FireOption | null > ( null ) ;
4444 // const [fires, setFires] = useState<Fire[]>([]);
4545 const [ analysisFire , setAnalysisFire ] = useState < string | null > ( null ) ;
46- const resultsLayerRef = useRef < VectorLayer | null > ( null ) ;
47- const [ resultsFeatureCollection , setResultsFeatureCollection ] = useState < any | null > ( null ) ;
46+ // const resultsLayerRef = useRef<VectorLayer | null>(null);
47+ // const [resultsFeatureCollection, setResultsFeatureCollection] = useState<any | null>(null);
4848 const currentYear = String ( new Date ( ) . getFullYear ( ) ) ;
4949 const [ visibleFireNumbers , setVisibleFireNumbers ] = useState < string [ ] | null > ( null ) ;
5050 const [ error , setError ] = useState < string | null > ( null ) ;
51+ const [ refreshTrigger , setRefreshTrigger ] = useState < number > ( 0 ) ;
5152
5253
5354 const availableYears = useMemo ( ( ) => {
@@ -149,61 +150,64 @@ const ConfigurationApp: React.FC = () => {
149150 // };
150151
151152
152- const fetchAndDisplayBurnGeometry = useCallback ( async ( fireNumber : string ) => {
153- if ( ! mapInstance ) return ;
154- try {
155- const featureCollection = await getFireData ( selectedYear , fireNumber ) ;
153+ // const fetchAndDisplayBurnGeometry = useCallback(async (fireNumber: string) => {
154+ // if (!mapInstance) return;
155+ // try {
156+ // const featureCollection = await getFireData(selectedYear, fireNumber);
156157
157- setResultsFeatureCollection ( featureCollection ) ;
158-
159- if ( resultsLayerRef . current ) {
160- mapInstance . removeLayer ( resultsLayerRef . current ) ;
161- }
158+ // setResultsFeatureCollection(featureCollection);
162159
163- const vectorSource = new VectorSource ( {
164- features : new GeoJSON ( ) . readFeatures ( featureCollection , {
165- featureProjection : 'EPSG:3857' ,
166- dataProjection : 'EPSG:4326'
167- } )
168- } ) ;
160+ // if (resultsLayerRef.current) {
161+ // mapInstance.removeLayer(resultsLayerRef.current);
162+ // }
169163
170- const newLayer = new VectorLayer ( {
171- source : vectorSource ,
172- opacity : 0.6 ,
173- style : ( feature ) => {
174- const burnSeverity = feature . get ( 'BURN_SEVERITY_RATING' ) || feature . get ( 'severity_class' ) || 'Unknown' ;
175- let fillColor = BURN_SEVERITY_COLOURS [ burnSeverity . toLowerCase ( ) as keyof typeof BURN_SEVERITY_COLOURS ] ;
176- // if (burnSeverity === 'High') fillColor = 'rgba(214,26,29,0.7)';
177- // else if (burnSeverity === 'Medium') fillColor = 'rgba(230,152,0,0.7)';
178- // else if (burnSeverity === 'Low') fillColor = 'rgba(255,255,0,0.7)';
179- // else if (burnSeverity === 'Unburned') fillColor = 'rgba(152,230,0,0.7)'
180- return new Style ( { fill : new Fill ( { color : fillColor } ) , stroke : new Stroke ( { color : '#333' , width : 1 } ) } ) ;
181- }
182- } ) ;
183- newLayer . setOpacity ( 0.6 ) ;
184- mapInstance . addLayer ( newLayer ) ;
185- resultsLayerRef . current = newLayer ;
164+ // const vectorSource = new VectorSource({
165+ // features: new GeoJSON().readFeatures(featureCollection, {
166+ // featureProjection: 'EPSG:3857',
167+ // dataProjection: 'EPSG:4326'
168+ // })
169+ // });
186170
187- if ( vectorSource . getFeatures ( ) . length > 0 ) {
188- const extent = vectorSource . getExtent ( ) ;
189- //fitMapToExtent(extent);
190- }
191- } catch ( error ) {
192- console . error ( 'Failed to fetch or display burn geometry:' , error ) ;
193- if ( resultsLayerRef . current ) {
194- mapInstance . removeLayer ( resultsLayerRef . current ) ;
195- resultsLayerRef . current = null ;
196- }
197- }
198- } , [ mapInstance , selectedYear ] ) ;
171+ // const newLayer = new VectorLayer({
172+ // source: vectorSource,
173+ // opacity: 0.6,
174+ // style: (feature) => {
175+ // const burnSeverity = feature.get('BURN_SEVERITY_RATING') || feature.get('severity_class') || 'Unknown';
176+ // let fillColor = BURN_SEVERITY_COLOURS[burnSeverity.toLowerCase() as keyof typeof BURN_SEVERITY_COLOURS];
177+ // // if (burnSeverity === 'High') fillColor = 'rgba(214,26,29,0.7)';
178+ // // else if (burnSeverity === 'Medium') fillColor = 'rgba(230,152,0,0.7)';
179+ // // else if (burnSeverity === 'Low') fillColor = 'rgba(255,255,0,0.7)';
180+ // // else if (burnSeverity === 'Unburned') fillColor = 'rgba(152,230,0,0.7)'
181+ // return new Style({ fill: new Fill({ color: fillColor })});
182+ // // return new Style({ fill: new Fill({ color: fillColor }), stroke: new Stroke({ color: '#333', width: 1 }) });
183+ // }
184+ // });
185+ // newLayer.setOpacity(0.6);
186+ // mapInstance.addLayer(newLayer);
187+ // resultsLayerRef.current = newLayer;
188+
189+ // if (vectorSource.getFeatures().length > 0) {
190+ // const extent = vectorSource.getExtent();
191+ // //fitMapToExtent(extent);
192+ // }
193+ // } catch (error) {
194+ // console.error('Failed to fetch or display burn geometry:', error);
195+ // if (resultsLayerRef.current) {
196+ // mapInstance.removeLayer(resultsLayerRef.current);
197+ // resultsLayerRef.current = null;
198+ // }
199+ // }
200+ // }, [mapInstance, selectedYear]);
199201
200202 const addAnalysisLayer = useCallback ( ( ) => {
201- if ( ! mapInstance ) return ;
203+ console . log ( 'Analysis complete. triggering map results' )
204+ setRefreshTrigger ( prev => prev + 1 ) ;
205+ // if (!mapInstance) return;
202206
203- if ( selectedFire && selectedFire . fireNumber ) {
204- fetchAndDisplayBurnGeometry ( selectedFire . fireNumber ) ;
205- }
206- } , [ mapInstance , selectedFire , fetchAndDisplayBurnGeometry ] ) ;
207+ // if (selectedFire && selectedFire.fireNumber) {
208+ // fetchAndDisplayBurnGeometry(selectedFire.fireNumber);
209+ // }
210+ } , [ ] ) ;
207211
208212 //useEffect for init of map
209213 useEffect ( ( ) => {
@@ -289,21 +293,21 @@ const ConfigurationApp: React.FC = () => {
289293 } , [ center , zoom , mapInstance ] ) ;
290294
291295 // useEffect to update map with analysis results
292- useEffect ( ( ) => {
293- if ( ! mapInstance ) return ;
296+ // useEffect(() => {
297+ // if (!mapInstance) return;
294298
295- // This effect runs when a new fire is selected, or when an analysis is triggered.
296- console . log ( 'selectedFire' , selectedFire )
297- if ( selectedFire && selectedFire . fireNumber ) {
298- fetchAndDisplayBurnGeometry ( selectedFire . fireNumber ) ;
299- } else {
300- // If no fire is selected, clear the results layer.
301- if ( resultsLayerRef . current ) {
302- mapInstance . removeLayer ( resultsLayerRef . current ) ;
303- resultsLayerRef . current = null ;
304- }
305- }
306- } , [ selectedFire , analysisFire , fetchAndDisplayBurnGeometry , mapInstance ] ) ;
299+ // // This effect runs when a new fire is selected, or when an analysis is triggered.
300+ // console.log('selectedFire', selectedFire)
301+ // if (selectedFire && selectedFire.fireNumber) {
302+ // fetchAndDisplayBurnGeometry(selectedFire.fireNumber);
303+ // } else {
304+ // // If no fire is selected, clear the results layer.
305+ // if (resultsLayerRef.current) {
306+ // mapInstance.removeLayer(resultsLayerRef.current);
307+ // resultsLayerRef.current = null;
308+ // }
309+ // }
310+ // }, [selectedFire,analysisFire, fetchAndDisplayBurnGeometry, mapInstance]);
307311 return (
308312 < MapContext . Provider value = { {
309313 map : mapInstance ,
@@ -351,6 +355,7 @@ const ConfigurationApp: React.FC = () => {
351355 onVisibleFiresChange = { setVisibleFireNumbers }
352356 selectedDbFire = { selectedDbFire }
353357 selectedDbYear = { selectedYear }
358+ refreshTrigger = { refreshTrigger }
354359 />
355360 </ div >
356361 < div className = "bcgov-basemap-selector" >
0 commit comments