MCPcopy Create free account
hub / github.com/editablejs/editable / useDocSearchKeyboardEvents

Function useDocSearchKeyboardEvents

apps/docs/src/components/search.tsx:49–86  ·  view source on GitHub ↗
({
  isOpen,
  onOpen,
  onClose,
}: {
  isOpen: boolean
  onOpen: () => void
  onClose: () => void
})

Source from the content-addressed store, hash-verified

47 )
48}
49function useDocSearchKeyboardEvents({
50 isOpen,
51 onOpen,
52 onClose,
53}: {
54 isOpen: boolean
55 onOpen: () => void
56 onClose: () => void
57}) {
58 React.useEffect(() => {
59 function onKeyDown(event: any) {
60 function open() {
61 // We check that no other DocSearch modal is showing before opening
62 // another one.
63 if (!document.body.classList.contains('DocSearch--active')) {
64 onOpen()
65 }
66 }
67 if (
68 (event.keyCode === 27 && isOpen) ||
69 (event.key === 'k' && (event.metaKey || event.ctrlKey)) ||
70 (!isEditingContent(event) && event.key === '/' && !isOpen)
71 ) {
72 event.preventDefault()
73 if (isOpen) {
74 onClose()
75 } else if (!document.body.classList.contains('DocSearch--active')) {
76 open()
77 }
78 }
79 }
80
81 window.addEventListener('keydown', onKeyDown)
82 return function () {
83 window.removeEventListener('keydown', onKeyDown)
84 }
85 }, [isOpen, onOpen, onClose])
86}
87
88const options = {
89 appId: siteConfig.algolia.appId,

Callers 1

SearchFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…