# Recent Changes - BinectChrome ## Summary Three new features have been implemented: 1. ✅ Password visibility toggle with eye icon 2. ✅ Default badge on extension icon 3. ✅ Enhanced API error logging for debugging ## 1. Password Visibility Toggle **Location:** Login form in popup **What it does:** - Adds an eye icon button next to the password field - Click to toggle between showing and hiding password - Icon changes: 👁️ (show) ↔ 🚫👁️ (hide) **Files changed:** - `src/popup/popup.html` - Added password wrapper and eye icon SVGs - `src/popup/popup.css` - Styled the toggle button - `src/popup/popup.ts` - Added toggle functionality **How to use:** 1. Open the extension popup 2. Enter username 3. Start typing password 4. Click the eye icon to reveal/hide password ## 2. Default Badge on Extension Icon **What it does:** - Extension icon now always shows a blue dot (•) badge - Badge changes to "1" when PDF is detected - Badge resets to dot (•) after PDF is sent or cleared - Makes extension more visible in the toolbar **Files changed:** - `src/background/service-worker.ts` - Added `initializeBadge()` function **Badge states:** - `•` (blue dot) - Extension active, no PDF detected - `1` (blue) - PDF detected and ready to send - Returns to `•` after sending or clearing **Visual:** - Before: No badge (extension hard to notice) - Now: Blue dot always visible (easy to spot in toolbar) ## 3. Enhanced API Error Logging **What it does:** - Detailed console logging for all Binect API calls - Shows request details (URL, username, payload) - Logs response status and headers - Captures and displays error responses - Better error messages for common issues **Files changed:** - `src/utils/binect-api.ts` - Added console logging throughout **Console output example (authentication):** ``` [Binect API] Authenticating with Binect API... [Binect API] URL: https://api.binect.de/auth/login [Binect API] Username: testuser [Binect API] Response status: 200 [Binect API] Response content-type: application/json [Binect API] Authentication successful! [Binect API] Response data: {token: "...", expiresAt: "..."} ``` **Console output example (error):** ``` [Binect API] Authenticating with Binect API... [Binect API] URL: https://api.binect.de/auth/login [Binect API] Username: wronguser [Binect API] Response status: 401 [Binect API] Error response body: {"error": "Invalid credentials"} [Binect API] Authentication error: BinectAPIError: Invalid credentials ``` **Error improvements:** - Network errors now show: "Cannot reach Binect API at https://api.binect.de. Please check your internet connection." - Auth errors show: "Invalid credentials" (401) - Upload errors show specific issue (file format, size limit, etc.) ## How to Test ### 1. Reload Extension ```bash # Extension is already built # Just reload at chrome://extensions/ ``` ### 2. Test Password Toggle 1. Click extension icon 2. If not logged in, you'll see the login form 3. Type in the password field 4. Click the eye icon - password should become visible 5. Click again - password should hide ### 3. Test Default Badge 1. Look at your Chrome toolbar 2. Find the BinectChrome icon 3. Should see a small blue dot (•) badge 4. Download or view a PDF 5. Badge should change to "1" ### 4. Test API Error Logging 1. Right-click popup → "Inspect" (opens DevTools) 2. Go to Console tab 3. Try to sign in (with wrong or correct credentials) 4. Watch for `[Binect API]` log messages 5. All API calls are now logged with details ## Debugging Binect API Login Issues **With the new logging, you can now:** 1. **See the exact error from Binect:** - Open popup DevTools (right-click → Inspect) - Try to sign in - Check console for `[Binect API] Error response body:` - This shows what the Binect API actually returned 2. **Verify the request is correct:** - Console shows the URL being called - Shows the username being sent - Confirms request format 3. **Check network connectivity:** - If you see "Cannot reach Binect API", it's a network issue - If you see status codes (401, 400, etc.), the API is reachable but rejecting the request **Common login issues:** | Console Log | Problem | Solution | |------------|---------|----------| | "Cannot reach Binect API" | Network issue | Check internet connection | | "Response status: 401" + "Invalid credentials" | Wrong username/password | Verify credentials | | "Response status: 404" | API endpoint changed | Check API_BASE_URL in code | | "Response status: 500" | Server error | Check Binect API status | | "TypeError: Failed to fetch" | CORS or network | Check browser permissions | ## Testing Checklist - [ ] Extension icon shows blue dot badge - [ ] Password field has eye icon - [ ] Clicking eye icon toggles password visibility - [ ] Console shows `[Binect API]` logs when signing in - [ ] Error messages are clear and helpful - [ ] Badge updates when PDF detected - [ ] Badge resets after sending PDF ## Next Steps for API Debugging 1. **Try to sign in with your Binect credentials** 2. **Open popup DevTools** (right-click popup → Inspect) 3. **Check the Console tab** for `[Binect API]` messages 4. **Share the console output** if login fails The detailed logs will show exactly what's happening with the API request and response, making it much easier to diagnose the login problem. ## Files Modified ``` src/popup/popup.html - Added password toggle UI src/popup/popup.css - Styled password toggle src/popup/popup.ts - Added toggle functionality src/background/service-worker.ts - Added default badge src/utils/binect-api.ts - Enhanced error logging ``` ## Build Info - Build completed successfully - Extension size: ~17KB (popup.js: 10.4KB, background.js: 4.18KB) - All assets compiled and minified - Ready for testing!