refactor: consolidate loading/error states and extract instance actions hook

Frontend:
- Create reusable DataStates components (LoadingState, ErrorState, EmptyState)
- Refactor 12 pages to use shared state components instead of inline JSX
- Extract useInstanceActions hook to eliminate session action duplication
- Update dashboard and sessions pages to use shared hook

OpenSpec:
- Archive completed mobile-app-usability change (44/44 tasks)
- Archive completed add-config-profiles change (15/15 tasks)

Quality: TypeScript check passes, production build succeeds
This commit is contained in:
Alex Blank
2026-05-25 22:50:18 +02:00
parent 4c216dd1ca
commit ab79080f0b
31 changed files with 258 additions and 266 deletions
@@ -0,0 +1,22 @@
## ADDED Requirements
### Requirement: Mobile Instance Controls
The system SHALL ensure instance control actions are usable on mobile viewports.
#### Scenario: Control button visibility on mobile
- **GIVEN** an instance card or detail view on mobile
- **THEN** control buttons (Start, Stop, Restart, Delete) have minimum 44px height
- **AND** buttons have adequate spacing between them
- **AND** button labels are readable at mobile font sizes
#### Scenario: Instance status display on mobile
- **GIVEN** an instance on mobile
- **THEN** the status indicator is clearly visible
- **AND** status text does not wrap awkwardly
- **AND** health/probe information is accessible without horizontal scrolling
#### Scenario: Instance creation form on mobile
- **GIVEN** the instance creation flow on mobile
- **THEN** all configuration fields stack vertically
- **AND** dropdowns and selects are usable with touch
- **AND** the submit button is prominent and reachable