// networkUtils.js
export function sendRequest(url, method = "GET", data = null) {
  console.log("Sending request to:", url, "with method:", method);
  const options = {
    method,
    credentials: 'include', // include cookies in requests
    headers: {}
  };

  // If data is provided and is not FormData, assume JSON.
  if (data && !(data instanceof FormData)) {
    options.headers["Content-Type"] = "application/json";
    options.body = JSON.stringify(data);
  } else if (data instanceof FormData) {
    // For FormData, don't set the Content-Type header; the browser will handle it.
    options.body = data;
  }

  return fetch(url, options)
    .then(response => {
      console.log("Response status:", response.status);
      if (!response.ok) {
        return response.text().then(text => {
          throw new Error(`HTTP error ${response.status}: ${text}`);
        });
      }
      return response.json().catch(() => {
        console.warn("Response is not JSON, returning as text");
        return response.text();
      });
    });
}