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; };