Files
learning-platform/src/lib/pb.js
RaymondVerhoef b28956bbe7
All checks were successful
On Push to Main / test (push) Successful in 30s
On Push to Main / publish (push) Successful in 57s
On Push to Main / deploy-dev (push) Successful in 1m33s
feat: initialize PocketBase client with global auto-cancellation disabled and custom session expiry handling
2026-05-17 15:27:34 +02:00

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