Skip to content

Add ESC key navigation support in settings menus #24

@bvdr

Description

@bvdr

Summary

Implement ESC key navigation support throughout the settings menu system to improve user experience and provide intuitive navigation.

Features

ESC Key Navigation

  • Nested menus: Pressing ESC returns to parent menu
  • Top-level menu: Pressing ESC exits settings entirely
  • Exit option: Added explicit "← Exit Settings" and "← Back to Settings" options

Menu Flow Improvements

  • Settings menu now loops - after completing an action, returns to settings menu
  • Can navigate back from credential update submenu
  • Clean exit messaging for better UX

Implementation Details

Files Modified

  1. index.js
    • Wrapped showSettings() in a while(true) loop for continuous menu navigation
    • Added ESC handling with isCancel() checks and continue statements
    • Modified updateCredentials() to return navigation signals ('back', 'continue')
    • Added "← Exit Settings" option to main settings menu
    • Added "← Back to Settings" option to credential update submenu
    • All ESC presses return to previous menu level

User Experience Flow

  1. Main Settings Menu → ESC exits settings
  2. Credential Update Menu → ESC returns to settings
  3. Provider Selection → ESC returns to settings
  4. Model Selection → ESC returns to settings
  5. After any action → Returns to settings menu automatically

Benefits

  • Intuitive navigation matching standard UI patterns
  • Users can easily navigate back without completing unwanted actions
  • Better discoverability with explicit back/exit options
  • Consistent behavior across all menu levels
  • Reduced frustration from being "stuck" in menus

Acceptance Criteria

  • ESC in top-level settings menu exits
  • ESC in nested menus returns to parent
  • Explicit back/exit options visible
  • Settings loop after completing actions
  • All menu flows tested

Related

Improves navigation and UX for settings management interface.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions