From e4b5ba96c11343cb017351887e008440332bcd9d Mon Sep 17 00:00:00 2001 From: Tola Leng Date: Tue, 20 May 2025 16:45:31 +0800 Subject: [PATCH] Updated Pocket API Connection for production --- application/src/lib/pocketbase.ts | 30 ++++++++++++------------------ 1 file changed, 12 insertions(+), 18 deletions(-) diff --git a/application/src/lib/pocketbase.ts b/application/src/lib/pocketbase.ts index 4ad1dfb..8baea56 100644 --- a/application/src/lib/pocketbase.ts +++ b/application/src/lib/pocketbase.ts @@ -1,17 +1,16 @@ import PocketBase from 'pocketbase'; -// Dynamically detect API base URL from current host (for use in browser) +// Auto-detect base URL from browser location const dynamicBaseUrl = typeof window !== 'undefined' - ? `${window.location.protocol}//${window.location.hostname}:8090` + ? window.location.origin : 'http://localhost:8090'; -// Define available API endpoints +// Define API endpoints export const API_ENDPOINTS = { REMOTE: dynamicBaseUrl }; -// Get the current endpoint from localStorage or use remote as default export const getCurrentEndpoint = (): string => { if (typeof window !== 'undefined') { const savedEndpoint = localStorage.getItem('pocketbase_endpoint'); @@ -20,26 +19,19 @@ export const getCurrentEndpoint = (): string => { return API_ENDPOINTS.REMOTE; }; -// Set the API endpoint and reinitialize PocketBase export const setApiEndpoint = (endpoint: string): void => { if (typeof window !== 'undefined') { localStorage.setItem('pocketbase_endpoint', endpoint); - window.location.reload(); // Reload to reinitialize PocketBase with new endpoint + window.location.reload(); } }; -// Initialize the PocketBase client with the current API URL export const pb = new PocketBase(getCurrentEndpoint()); -// Helper to check if user is authenticated -export const isAuthenticated = () => { - return pb.authStore.isValid; -}; +export const isAuthenticated = () => pb.authStore.isValid; -// Export the auth store for use in components export const authStore = pb.authStore; -// Configure PocketBase to persist authentication between page reloads if (typeof window !== 'undefined') { const storedAuthData = localStorage.getItem('pocketbase_auth'); if (storedAuthData) { @@ -52,13 +44,15 @@ if (typeof window !== 'undefined') { } } - // Subscribe to authStore changes to persist authentication pb.authStore.onChange(() => { if (pb.authStore.isValid) { - localStorage.setItem('pocketbase_auth', JSON.stringify({ - token: pb.authStore.token, - model: pb.authStore.model - })); + localStorage.setItem( + 'pocketbase_auth', + JSON.stringify({ + token: pb.authStore.token, + model: pb.authStore.model + }) + ); } else { localStorage.removeItem('pocketbase_auth'); }