import PocketBase from 'pocketbase';

const pbUrl = import.meta.env.VITE_PB_URL ||
  (typeof window !== 'undefined' ? window.location.origin : 'http://localhost:8090');

export const pb = new PocketBase(pbUrl);

// Globally disable auto cancellation to prevent React StrictMode from aborting requests
pb.autoCancellation(false);

// Detect auth portal session expiry: the portal returns HTML instead of JSON.
// This prevents cryptic "Unexpected token '<'" errors when the session expires.
pb.afterSend = function (response, data) {
  const contentType = response.headers.get('content-type') || '';
  if (contentType.includes('text/html')) {
    throw new Error('Your session has expired. Please refresh the page and log in again.');
  }
  return data;
};
