// JChat Client Configuration window.JChatConfig = { // Server configuration API_BASE_URL: 'http://api.jchat.localhost', WEB_BASE_URL: 'http://web.jchat.localhost', // Feature flags FEATURES: { REGISTRATION_ENABLED: true, GUEST_ACCESS: false, FILE_UPLOADS: true, REAL_TIME_UPDATES: true }, // UI configuration UI: { THEME: 'light', AUTO_FOCUS_MESSAGE_INPUT: true, SHOW_TYPING_INDICATORS: true, MESSAGE_PAGE_SIZE: 50, CONVERSATION_PAGE_SIZE: 20 }, // Polling configuration POLLING: { INTERVAL_MS: 2000, MAX_RETRIES: 3, BACKOFF_MULTIPLIER: 2 }, // Authentication AUTH: { TOKEN_STORAGE_KEY: 'jchat_auth_token', USER_STORAGE_KEY: 'jchat_user_data', AUTO_LOGOUT_ON_TOKEN_EXPIRE: true }, // Development/Debug DEBUG: { LOG_LEVEL: 'info', // 'debug', 'info', 'warn', 'error' SHOW_NETWORK_REQUESTS: false, MOCK_SLOW_NETWORK: false } }; // Environment-specific overrides if (window.location.hostname === 'localhost' || window.location.hostname === '127.0.0.1') { // Development overrides window.JChatConfig.DEBUG.LOG_LEVEL = 'debug'; window.JChatConfig.DEBUG.SHOW_NETWORK_REQUESTS = true; } // Make config immutable Object.freeze(window.JChatConfig);