aboutsummaryrefslogtreecommitdiff
path: root/examples/docs/src/components/Header/Search.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'examples/docs/src/components/Header/Search.tsx')
-rw-r--r--examples/docs/src/components/Header/Search.tsx97
1 files changed, 0 insertions, 97 deletions
diff --git a/examples/docs/src/components/Header/Search.tsx b/examples/docs/src/components/Header/Search.tsx
deleted file mode 100644
index 620941e3a..000000000
--- a/examples/docs/src/components/Header/Search.tsx
+++ /dev/null
@@ -1,97 +0,0 @@
-/** @jsxImportSource react */
-import { useState, useCallback, useRef } from 'react';
-import { ALGOLIA } from '../../consts';
-import '@docsearch/css';
-import './Search.css';
-
-import { createPortal } from 'react-dom';
-import * as docSearchReact from '@docsearch/react';
-
-/** FIXME: This is still kinda nasty, but DocSearch is not ESM ready. */
-const DocSearchModal =
- docSearchReact.DocSearchModal || (docSearchReact as any).default.DocSearchModal;
-const useDocSearchKeyboardEvents =
- docSearchReact.useDocSearchKeyboardEvents ||
- (docSearchReact as any).default.useDocSearchKeyboardEvents;
-
-export default function Search() {
- const [isOpen, setIsOpen] = useState(false);
- const searchButtonRef = useRef<HTMLButtonElement>(null);
- const [initialQuery, setInitialQuery] = useState('');
-
- const onOpen = useCallback(() => {
- setIsOpen(true);
- }, [setIsOpen]);
-
- const onClose = useCallback(() => {
- setIsOpen(false);
- }, [setIsOpen]);
-
- const onInput = useCallback(
- (e) => {
- setIsOpen(true);
- setInitialQuery(e.key);
- },
- [setIsOpen, setInitialQuery]
- );
-
- useDocSearchKeyboardEvents({
- isOpen,
- onOpen,
- onClose,
- onInput,
- searchButtonRef,
- });
-
- return (
- <>
- <button type="button" ref={searchButtonRef} onClick={onOpen} className="search-input">
- <svg width="24" height="24" fill="none">
- <path
- d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"
- stroke="currentColor"
- strokeWidth="2"
- strokeLinecap="round"
- strokeLinejoin="round"
- />
- </svg>
-
- <span>Search</span>
-
- <span className="search-hint">
- <span className="sr-only">Press </span>
-
- <kbd>/</kbd>
-
- <span className="sr-only"> to search</span>
- </span>
- </button>
-
- {isOpen &&
- createPortal(
- <DocSearchModal
- initialQuery={initialQuery}
- initialScrollY={window.scrollY}
- onClose={onClose}
- indexName={ALGOLIA.indexName}
- appId={ALGOLIA.appId}
- apiKey={ALGOLIA.apiKey}
- transformItems={(items) => {
- return items.map((item) => {
- // We transform the absolute URL into a relative URL to
- // work better on localhost, preview URLS.
- const a = document.createElement('a');
- a.href = item.url;
- const hash = a.hash === '#overview' ? '' : a.hash;
- return {
- ...item,
- url: `${a.pathname}${hash}`,
- };
- });
- }}
- />,
- document.body
- )}
- </>
- );
-}