// Clients Page Module class ClientsPage { constructor() { this.clients = []; this.init(); } async init() { // Load data await Promise.all([ this.loadClients(), this.loadClientUsageChart() ]); // Setup event listeners this.setupEventListeners(); } async loadClients() { try { const data = await window.api.get('/clients'); this.clients = data; this.renderClientsTable(); } catch (error) { console.error('Error loading clients:', error); window.authManager.showToast('Failed to load clients', 'error'); } } renderClientsTable() { const tableBody = document.querySelector('#clients-table tbody'); if (!tableBody) return; if (this.clients.length === 0) { tableBody.innerHTML = '
sk-••••${client.id.substring(client.id.length - 4)}