use-command-palette-triggers.ts 605 B

1234567891011121314151617181920
  1. import useEventListener from '@/shared/hooks/use-event-listener'
  2. import { Dispatch, SetStateAction, useCallback } from 'react'
  3. import { isMac } from '@/shared/utils/os'
  4. const useCommandPaletteTriggers = (show: Dispatch<SetStateAction<boolean>>) => {
  5. const onKeyDown = useCallback(
  6. (event: KeyboardEvent) => {
  7. const modifierKey = isMac ? event.metaKey : event.ctrlKey
  8. if (modifierKey && event.code === 'KeyP') {
  9. event.preventDefault()
  10. show(prev => !prev)
  11. }
  12. },
  13. [show]
  14. )
  15. useEventListener('keydown', onKeyDown)
  16. }
  17. export default useCommandPaletteTriggers