respira/src
Jan-Henrik Bruhn 711f291eff Add immediate loading states for Upload and Delete operations
Fix UI delay issue where buttons remained clickable during BLE communication
setup. Now provides instant visual feedback when operations begin.

Changes:
- Add isUploading and isDeleting state tracking in useBrotherMachine hook
- Set loading states immediately on button click, before BLE communication
- Update FileUpload component to disable upload button and show spinner
- Update ProgressMonitor to disable delete button with loading indicator
- Add PatternCacheService.deletePattern() method for proper cache cleanup
- Pass loading state props through App.tsx to child components

The UI now responds immediately with disabled buttons and loading spinners,
preventing double-clicks and providing clear feedback during the initial
BLE setup period before progress reporting begins.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-06 23:20:01 +01:00
..
assets initial 2025-11-30 22:18:14 +01:00
components Add immediate loading states for Upload and Delete operations 2025-12-06 23:20:01 +01:00
hooks Add immediate loading states for Upload and Delete operations 2025-12-06 23:20:01 +01:00
services Add immediate loading states for Upload and Delete operations 2025-12-06 23:20:01 +01:00
styles Implement comprehensive UI/UX improvements 2025-12-06 13:15:51 +01:00
types initial 2025-11-30 22:18:14 +01:00
utils Add comprehensive error descriptions and solutions for all machine error codes 2025-12-06 20:38:02 +01:00
App.css Enhance UI/UX with loading states, animations, and pattern lock functionality 2025-12-06 19:28:24 +01:00
App.tsx Add immediate loading states for Upload and Delete operations 2025-12-06 23:20:01 +01:00
index.css Migrate to Tailwind CSS and fix canvas zoom issues 2025-12-05 23:25:55 +01:00
main.tsx initial 2025-11-30 22:18:14 +01:00
web-bluetooth.d.ts initial 2025-11-30 22:18:14 +01:00