20 lines
756 B
JavaScript
20 lines
756 B
JavaScript
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;
|
|
};
|