• 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
名称
最后提交
最后更新
.cursor/rules 正在载入提交数据...
.devcontainer 正在载入提交数据...
.github 正在载入提交数据...
.husky 正在载入提交数据...
assets 正在载入提交数据...
docs 正在载入提交数据...
drizzle 正在载入提交数据...
e2e-tests 正在载入提交数据...
packages/@dyad-sh 正在载入提交数据...
scaffold 正在载入提交数据...
scripts 正在载入提交数据...
shared 正在载入提交数据...
src 正在载入提交数据...
testing 正在载入提交数据...
tools 正在载入提交数据...
worker 正在载入提交数据...
workers/tsc 正在载入提交数据...
.cursorignore 正在载入提交数据...
.env.example 正在载入提交数据...
.eslintrc.json 正在载入提交数据...
.gitattributes 正在载入提交数据...
.gitignore 正在载入提交数据...
.oxlintrc.json 正在载入提交数据...
.prettierignore 正在载入提交数据...
.prettierrc 正在载入提交数据...
CONTRIBUTING.md 正在载入提交数据...
LICENSE 正在载入提交数据...
README.md 正在载入提交数据...
SECURITY.md 正在载入提交数据...
biome.json 正在载入提交数据...
components.json 正在载入提交数据...
drizzle.config.ts 正在载入提交数据...
forge.config.ts 正在载入提交数据...
forge.env.d.ts 正在载入提交数据...
index.html 正在载入提交数据...
merge.config.ts 正在载入提交数据...
package-lock.json 正在载入提交数据...
package.json 正在载入提交数据...
playwright.config.ts 正在载入提交数据...
tsconfig.app.json 正在载入提交数据...
tsconfig.json 正在载入提交数据...
tsconfig.node.json 正在载入提交数据...
vite.main.config.mts 正在载入提交数据...
vite.preload.config.mts 正在载入提交数据...
vite.renderer.config.mts 正在载入提交数据...
vite.worker.config.mts 正在载入提交数据...
vitest.config.ts 正在载入提交数据...