# API Client Component Frontend helper for making authenticated requests to the backend. ## Usage ```typescript import { createApiClient } from './components/api-client'; import { STORAGE_KEYS } from './components/auth'; // Create client with token getter const api = createApiClient({ baseUrl: '/api', // or 'http://localhost:3005/api' getToken: () => localStorage.getItem(STORAGE_KEYS.PB_TOKEN), }); // Make requests const result = await api.get('/users'); if (result.ok) { console.log(result.data); // User[] } else { console.error(result.error); // Error message } // POST with body const created = await api.post('/jobs', { title: 'New Job', status: 'open', }); ``` ## Methods - `api.get(path)` - GET request - `api.post(path, body?)` - POST request - `api.put(path, body?)` - PUT request - `api.patch(path, body?)` - PATCH request - `api.delete(path)` - DELETE request ## Response Type ```typescript interface ApiResponse { ok: boolean; // true if status 2xx status: number; // HTTP status code data?: T; // Response data (if ok) error?: string; // Error message (if not ok) } ``` ## Copying to a Mode 1. Copy `components/api-client/` to your mode's `frontend/lib/api-client/` 2. Update imports ## Dependencies None - fully self-contained. No package.json needed - inherits from consuming project.