Recents in Beach

Problem with infinite call API - React

async function getData() {
  try {
    const responseVisLog = await fetch(`${baseURL}/api/visitor/log-get`);
    const responseVis = await fetch(`${baseURL}/api/visitor/get`);
    const responseLog = await fetch(`${baseURL}/api/visitor/log-category-wise-visitors`);

   

    const dataVisLog = await responseVisLog.json();
    const dataVis = await responseVis.json();
    const result = await responseLog.json();
    console.log(result.data);
     
    console.log("Visitor Log Data: ", dataVisLog.data);


   
    // 1. total visitors
    const totalVisitors = dataVisLog.data.length;
    // 2. unique visitors
    const uniqueVisitors = dataVis.data.length;

    // 3. new visitors
    const newVisitors = dataVis.data.filter(visitor => visitor.is_new === 1);
    const newVisitorsCount = newVisitors.length; // new visitors count


    const totalTime = dataVisLog.data
    .map(v => v.duration_seconds)      // all duration find
    .filter(v => v != null)            // undefined remove
    .reduce((sum, v) => sum + v, 0);  // all value sum

    // 4. Average time in seconds
    const avgTimeSeconds = totalVisitors > 0
      ? Math.floor(totalTime / totalVisitors)
      : 0;

    console.log("Total Time:", totalTime);

    // 5. Convert seconds to minutes
    const minutes = Math.floor(avgTimeSeconds / 60);
    // const seconds = avgTimeSeconds % 60;
    const seconds = (avgTimeSeconds % 60);

    // 6. All Page Type Fetch
    setCategoryWiseVisitors(result.data);  
   
    setStats({
      totalVisitors: totalVisitors,
      uniqueVisitors: uniqueVisitors,
      newVisitorsCount: newVisitorsCount,
      avgTime: minutes,
    });

    // getData(); // infinity loop call
  } catch (error) {
    console.error("Error fetching data:", error);
  }
}
  // }, []);

  useEffect(() => {
    getData();   // call the function
  }, []);



getData(); // infinity loop call  এটা কমেণ্ট করার পর সমস্যাটি সমাধান হয়েছে।

Post a Comment

0 Comments