Files
T
Alex Blank ab79080f0b 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
2026-05-25 22:50:18 +02:00

1.4 KiB

ADDED Requirements

Requirement: Mobile Bottom Navigation

The system SHALL display a bottom tab bar for navigation on mobile viewports (width < 768px).

Scenario: Mobile viewport shows bottom nav

  • WHEN the app is viewed on a device with width less than 768px
  • THEN a bottom tab bar is displayed at the bottom of the screen
  • AND it contains tabs for: Home, Projects, Sessions, Tools, Settings
  • AND the desktop sidebar navigation is hidden

Scenario: Bottom nav tab selection

  • WHEN user taps a tab in the bottom navigation
  • THEN the app navigates to the corresponding route
  • AND the selected tab shows an active state

Scenario: Bottom nav session badge

  • GIVEN the user has active sessions
  • WHEN viewing the bottom navigation
  • THEN the Sessions tab displays a badge with the active session count

Scenario: Desktop viewport shows sidebar

  • WHEN the app is viewed on a device with width 768px or greater
  • THEN the desktop sidebar navigation is displayed
  • AND the bottom tab bar is hidden

Requirement: Safe Area Support

The system SHALL account for mobile safe areas (notch, home indicator) in the bottom navigation.

Scenario: iPhone with home indicator

  • GIVEN an iPhone with a home indicator
  • WHEN the bottom navigation is displayed
  • THEN it includes additional padding to avoid the home indicator
  • AND all navigation tabs remain fully tappable