File size: 1,351 Bytes
394073d
 
 
 
 
 
a17b0ec
394073d
 
 
 
 
a17b0ec
394073d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
a17b0ec
 
 
394073d
 
 
 
 
a17b0ec
394073d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
import { useState } from 'react'
import axios from 'axios'

export const useAdvancedAnalysis = () => {
  const [isLoading, setIsLoading] = useState(false);
  const [comparisonData, setComparisonData] = useState(null);
  const [isError, setIsError] = useState(null);

  const runComparison = async (location, filters, modelA, modelB) => {
    if (!location || location.isSearch) return;
    setIsLoading(true);
    setComparisonData(null);
    setIsError(null);

    const payload = {
      location: { lat: location.lat, lng: location.lng },
      params: {
        bufferKm: filters.radius,
        maxCloudCover: filters.cloudCover,
        daysBack: filters.daysRange,
        modelA,
        modelB
      }
    };

    try {
      const response = await axios.post('/api/advanced-analyze', payload);
      if (response.data.success) {
        setComparisonData({
          modelA: response.data.modelA,
          modelB: response.data.modelB,
          metrics: response.data.metrics
        });
      }
    } catch (error) {
      console.error('Connection error', error);
      const message = error.response?.data?.error || 'Backend connection error. Please try again later.'
      setIsError(message);
    } finally {
      setIsLoading(false);
    }
  };

  return { runComparison, comparisonData, setComparisonData, isLoading, isError };
};