import { useRef } from 'react';
import { useQuery } from 'react-query';
import axios from 'axios';

const fetchData = async (param1, param2) => {
  const { data } = await axios.get(`/api/data?param1=${param1}&param2=${param2}`);
  return data;
};

export const useDataQuery = (initialParam1, initialParam2) => {
  const param1Ref = useRef(initialParam1);
  const param2Ref = useRef(initialParam2);

  const { data, error, isLoading, refetch } = useQuery(
    ['dataKey', param1Ref.current, param2Ref.current],
    () => fetchData(param1Ref.current, param2Ref.current),
    {
      enabled: false, // Başlangıçta otomatik olarak fetch etmesini engeller
    }
  );

  const updateParamsAndRefetch = (newParam1, newParam2) => {
    param1Ref.current = newParam1;
    param2Ref.current = newParam2;
    refetch();
  };

  return { data, error, isLoading, updateParamsAndRefetch };
};