• Adeniji Adekunle James's avatar
    feat: add hotkey to toggle chat modes (#1274) (#995) (#1284) · 3b68fb4e
    Adeniji Adekunle James 提交于
    Adds Ctrl+Shift+A (Cmd+Shift+A on Mac) keyboard shortcut to toggle
    between Ask and Build chat modes.
    
    **Changes:**
    - Created `useChatModeToggle` hook for shared logic
    - Added shortcut to ChatInput and HomeChatInput components
    
    **Usage:**
    Press Ctrl+Shift+A (or Cmd+Shift+A on Mac) to quickly switch between
    chat modes without using the UI.
    
    <img width="434" height="123" alt="image"
    src="https://github.com/user-attachments/assets/a8c167b6-2b54-46f5-8191-5019991fc8e5"
    />
    
    Closes (#995)
        
    <!-- This is an auto-generated description by cubic. -->
    ---
    
    ## Summary by cubic
    Add a global hotkey to toggle between Ask and Build modes: Ctrl+Shift+A
    (Cmd+Shift+A on Mac). Makes switching faster without touching the UI and
    fulfills Linear #995.
    
    - **New Features**
    - Added useChatModeToggle hook to flip selectedChatMode, detect
    platform, and track PostHog event chat:mode_toggle.
    - Wired the hotkey into ChatInput and HomeChatInput via
    useChatModeToggle.
      - Updated ChatModeSelector tooltip to show the shortcut.
    
    <!-- End of auto-generated description by cubic. -->
    
    <!-- CURSOR_SUMMARY -->
    ---
    
    > [!NOTE]
    > Adds Cmd/Ctrl + . shortcut to cycle chat modes via a new hook, and
    updates the mode selector tooltip to show the shortcut.
    > 
    > - **UX/Hotkey**:
    > - Introduces `useChatModeToggle` to cycle `settings.selectedChatMode`
    (captures `chat:mode_toggle`), with platform detection
    (`detectIsMac`/`useIsMac`) and `useShortcut` binding for `Cmd/Ctrl + .`.
    > - **Integrations**:
    > - Wires `useChatModeToggle()` into `components/chat/ChatInput.tsx` and
    `components/chat/HomeChatInput.tsx` to enable the shortcut in chat
    inputs.
    > - **UI**:
    > - Enhances `components/ChatModeSelector.tsx` tooltip to display the
    platform-specific shortcut hint (`⌘ + .` or `Ctrl + .`).
    > 
    > <sup>Written by [Cursor
    Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
    d8cc3fff43b6eb3227623f1c084410f42392c0b3. This will update automatically
    on new commits. Configure
    [here](https://cursor.com/dashboard?tab=bugbot).</sup>
    <!-- /CURSOR_SUMMARY -->
    
    ---------
    Co-authored-by: 's avatarWill Chen <willchen90@gmail.com>
    3b68fb4e
ChatModeSelector.tsx 3.0 KB