@@ -4,8 +4,8 @@ import RouterLink from '@docusaurus/Link';
44// import { useHistory, useLocation } from '@docusaurus/router';
55import useDocusaurusContext from '@docusaurus/useDocusaurusContext' ;
66import clsx from 'clsx' ;
7- // import React, { useCallback } from 'react';
87import React , { useEffect , useState } from 'react' ;
8+ import { useHotkeys } from 'react-hotkeys-hook' ;
99
1010// import { ApifySearch } from '@apify/docs-search-modal';
1111import { ControlKeyIcon , SearchIcon } from '@apify/docs-search-modal/dist/utils/icons' ;
@@ -82,6 +82,7 @@ export function Link(props) {
8282
8383export default function SearchBar ( { onClick } ) {
8484 const [ variant , setVariant ] = useState ( null ) ;
85+ const [ opened , setOpened ] = useState ( false ) ;
8586 const { siteConfig } = useDocusaurusContext ( ) ;
8687 const { inkeepApiKey } = siteConfig . customFields ;
8788
@@ -98,9 +99,18 @@ export default function SearchBar({ onClick }) {
9899 } , [ ] ) ;
99100
100101 onClick = ( ) => {
102+ if ( opened ) {
103+ return ;
104+ }
105+
106+ setOpened ( true ) ;
107+
101108 if ( variant === 'kapa' ) {
102109 if ( window . Kapa && typeof window . Kapa . open === 'function' ) {
103110 window . Kapa . open ( ) ;
111+ window . Kapa ( 'onModalClose' , ( ) => {
112+ setOpened ( false ) ;
113+ } ) ;
104114 } else {
105115 console . error ( 'Kapa.ai widget is not available.' ) ;
106116 }
@@ -178,11 +188,13 @@ export default function SearchBar({ onClick }) {
178188 } ,
179189 ] ,
180190 } ,
191+ defaultView : 'chat' ,
181192 } ;
182193 const modal = window . Inkeep . ModalSearchAndChat ( config ) ;
183194
184195 function handleOpenChange ( newOpen ) {
185196 modal . update ( { modalSettings : { isOpen : newOpen } } ) ;
197+ setOpened ( newOpen ) ;
186198 }
187199
188200 modal . update ( { modalSettings : { isOpen : true } } ) ;
@@ -200,6 +212,10 @@ export default function SearchBar({ onClick }) {
200212 }
201213 } , [ ] ) ;
202214
215+ useHotkeys ( 'mod+k, /' , ( ) => {
216+ onClick ( ) ;
217+ } , { preventDefault : true } ) ;
218+
203219 return (
204220 < BrowserOnly >
205221 { ( ) => (
0 commit comments