ipfs-webui icon indicating copy to clipboard operation
ipfs-webui copied to clipboard

Add Keyboard Shortcuts System

Open george-hub331 opened this issue 6 months ago • 3 comments

Fixes #2350

Summary

This PR adds a centralized keyboard shortcuts system using React Context, making it easier to manage and customize keyboard shortcuts throughout the application.

Changes

  • Added ShortcutsContext to manage global keyboard shortcuts
  • Created useShortcuts hook for easy shortcut registration
  • Converted ShortcutModal to TypeScript
  • Added support for key combinations (e.g. Shift + ?)
  • Improved modal layout using CSS Grid
  • Added proper TypeScript types and interfaces
  • Prevented shortcut execution in modal inputs
  • Added automatic grouping of shortcuts by category

Implementation Details

  • Used React Context for centralized state management
  • Added support for modifier keys (Shift, Ctrl, Alt, Meta)
  • Added proper cleanup of event listeners
  • Made shortcuts configurable per component
  • Maintained backwards compatibility with existing shortcuts

New improvements

  • Resolved bugs on shortcut hooks, prevent shortcuts from interfering with inputs / modals / other operations
  • Added new general shortcuts for showing tour help(shift + H), focusing on QmHash or CID input(on all screens)(/)
  • Added shortcuts on peers page
  • Rearraged shortcut sections

Short Demo

https://github.com/user-attachments/assets/c860a977-eb36-418a-92c6-aa2613f95e1e

george-hub331 avatar Apr 06 '25 22:04 george-hub331